npm 包 wdio-bv-image-comparison-service 使用教程

前言

在软件开发中,自动化测试是非常重要的一环。而在自动化测试中,图像比对又是一项特别重要的任务。而有了npm包 wdio-bv-image-comparison-service,图像比对的工作将变得非常简单。

本文将介绍如何使用 wdio-bv-image-comparison-service 进行自动化测试中的图像比对,而我们会基于示例代码来进行说明。

安装 wdio-bv-image-comparison-service

我们需要先安装 wdio-bv-image-comparison-service。可以通过 npm 来进行安装:

--- ------- -------------------------------- ----------

配置 wdio-bv-image-comparison-service

为了在测试中使用 wdio-bv-image-comparison-service,我们需要修改 wdio.conf.js 文件,配置其插件。

首先,让我们在这个文件中声明两个全局变量:

--------------------- - -------------------- -----------------
----------------------- - -------------------- -------------------

这里我们定义了 actualImageDirexpectedImageDir。它们分别用于存放我们实际测试得到的图片和预期的图片。

接下来,我们需要在我们的 wdio.conf.js 文件中声明我们想要使用的插件。在 services 属性中,添加以下代码:

--------- -
  -------------------- -
    --------------- ------------------------
    ---------------- -----------------------------------
    --------------- ----------------------
    ---------------- -----
    ----------------- -----
    ------------------ -----
    ---------------- -----
    ------------------- -----
  --
--

这里我们声明了 image-comparison 插件,并且定义了一些可选的属性。这些属性分别如下:

  • baselineFolder: 这个属性指向存放预期图片的文件夹。在你第一次使用时,该文件夹将会被用来写入一些空白的基准图片。这些图片将会用来和你实际获得的图片进行比对。
  • formatImageName: 这个属性指定了用来指定图片文件名的字符串。段落之间用 - 分隔,其中可以插入占位符,如 {tag}, {browserName}, {width}{height}。你需要指定你自己的占位符,以适应自己的需求。
  • screenshotPath: 这个属性指定了存放实际测试得到的图片的文件夹。这些图片将会被用来和预期图片进行比对。
  • savePerInstance: 这个属性指定了是否每个实例都要保存一份截图。
  • autoSaveBaseline: 这个属性指定了是否自动保存基准图片。如果这个值为 true,则基准图片会在首次执行测试时自动保存。
  • blockOutStatusBar: 这个属性指定了是否要把状态栏加黑。
  • blockOutToolBar: 这个属性指定了是否要把工具栏加黑。
  • clearRuntimeFolder: 这个属性指定了是否要在每次测试后清空运行时文件夹。

比对图像

现在,我们已经完成了插件的配置。从现在开始,我们就可以在我们的测试代码中用插件来比对两张图片,从而进行自动化测试。

在我们的测试代码中,我们可以使用下面这个方法来比对两张图片:

---------------------
  ------------------------------------
  -------------
  - --------------- ---- -
--

这里,我们调用了 checkElement 方法。这个方法用来比对某个元素的视觉效果。

这个方法需要三个参数:

  1. elementSelector: 元素选择器,用来指定测试的元素。
  2. tag: 如果你想给测试定义一个标签,这里可以指定一个需要展示的标签。
  3. options: 可选的选项对象。这里,我们使用 hideScrollBars 选项来指定是否要隐藏滚动条。

完整示例

----- ---- - ----------------
--------------------- - -------------------- -----------------
----------------------- - -------------------- -------------------

------------ --- ------------- -- -- -
  ---------- ------- --- ---- ------ -- -- -
    --------------------------------------
    ---------------------
      ------------------------------------
      -------------
      - --------------- ---- -
    --
  ---

  ------------ -- -
    ---------------------------------------
  ---
---

以上是一个完整的示例,其中我们测试了打开一个网站后某个元素的效果。该测试会自动把实际测试得到的图片保存到 actual-images 文件夹中,同时会将对应的预期图片保存到 expected-images 文件夹中。然后,这个插件会自动帮我们对这两个文件夹中相应的图片进行比对。

总结

npm包 wdio-bv-image-comparison-service 是一款非常好用的图像比对工具。使用该工具,你可以在你的自动化测试中快速、方便地完成图像比对。本文介绍了 wdio-bv-image-comparison-service 的基本使用方法和示例代码,相信大家已经简单了解如何使用它了。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60067357890c4f7277583cc3


猜你喜欢

  • npm 包 spamd-client 使用教程

    简介 spamd-client 是一个 Node.js 的 npm 包,它提供了对 SpamAssassin 守护进程的访问,让你可以通过 Node.js 代码来检测和处理垃圾邮件。

    4 年前
  • NPM 包 jspdfmake 使用教程

    简介 Jspdfmake 是一个基于 jsPDF 的 JavaScript PDF 库,它可以帮助我们在前端快速生成 PDF 文档。相对于传统方式,使用 Jspdfmake 生成 PDF 文件对我们来...

    4 年前
  • npm 包 @hiro0218/accordion.js 使用教程

    前端开发中,经常需要添加展开/收起功能,比如列表展示、菜单等等。而 @hiro0218/accordion.js 就是一款非常好用的展开/收起插件。本文将详细介绍 npm 包 @hiro0218/ac...

    4 年前
  • npm 包 Vux-Fix 使用教程

    简介 Vux-Fix 是一个专门为 Vux 组件库开发的 npm 包,主要用于解决 Vux 组件在 iOS 设备中因为输入法挡住表单导致无法正常输入的问题。通过 Vux-Fix,我们可以很方便地解决这...

    4 年前
  • npm 包 alpha.css 使用教程

    NPM (Node Package Manager) 是目前 Node.js 上最受欢迎的包管理工具,它为开发者提供了一种便捷、简单的方式来共享和使用代码。在前端开发领域,我们通常使用 NPM 来管理...

    4 年前
  • npm 包 dotted-logootsplit 使用教程

    dotted-logootsplit 是一款前端开发用于 OT(操作转移)算法的框架。它基于 CRDT(协作复制数据类型)和 LogootSplit 算法实现,用于实现互联网应用的协同编辑功能。

    4 年前
  • npm 包 amd-unpack 使用教程

    AMD(Asynchronous Module Definition,异步模块定义)是 JavaScript 中一种模块加载机制,AMD 规范定义了一种定义模块及其依赖的方式,并且旨在通过异步加载模块...

    4 年前
  • npm 包 umr 使用教程

    作为前端开发者,我们经常会使用各种各样的 npm 包来加快我们的开发效率。但是在使用这些包的时候,我们有时会遇到一些不兼容的问题,导致打包之后的代码出现了各种问题。

    4 年前
  • npm 包 @jf/data-types 使用教程

    简介 @jf/data-types 是一个 JavaScript 库,提供多种数据类型的操作和转换方法,适用于前端开发中的数据处理。通过 npm 包管理工具可以快速引入该库,使得前端开发更加高效。

    4 年前
  • npm 包 vue-resource-manager 使用教程

    随着 VueJS 等现代前端框架的普及,前端开发越来越注重可复用、可扩展和易于维护。NPM 包已经成为了分享前端代码的标准方式。而 vue-resource-manager 是一个非常有用的 NPM ...

    4 年前
  • npm 包 @sage-cli/plugin-preset 使用教程

    简介 @sage-cli/plugin-preset 是 Sage CLI 的预设插件,它为前端项目提供了许多预设的配置和工具,使得我们可以专注于业务代码的开发。 该 npm 包包含了一些脚本命令用于...

    4 年前
  • NPM 包 @lywzx/vue.access.control 使用教程

    NPM 包 @lywzx/vue.access.control 是一个用于 Vue.js 的权限管理组件。它提供了一种简单的方式来管理和控制您的 Vue 应用程序中的用户访问权限。

    4 年前
  • npm 包 sanity-plugin-json-input 使用教程

    简介 sanity-plugin-json-input 是一个用于 Sanity Studio 的 npm 包,它可以帮助开发者在 Sanity Studio 中使用 JSON 输入框,快速管理大型数...

    4 年前
  • npm 包 react-bootstrap-3-legacy 使用教程

    简介 react-bootstrap-3-legacy 是一个基于 Bootstrap 3 的 React UI 组件库,它提供了大量常用的 UI 组件,以及与 Bootstrap 3 风格相匹配的样...

    4 年前
  • npm 包 bn0 使用教程

    简介 bn0 是一个 npm 包,它是用于处理大数的 JavaScript 库。通过 bn0 可以方便地进行高精度计算,并且可以避免 JavaScript 中的精度误差问题。

    4 年前
  • npm 包 froala-bootstrap 使用教程

    前言 当今,Web前端技术日新月异,各种新的库、框架层出不穷。在前端开发中,我们经常会使用一些富文本编辑器来丰富我们的页面。而froala-bootstrap便是其中一个优秀的npm包,它的强大功能和...

    4 年前
  • npm 包 babel-plugin-transform-phonetize 使用教程

    什么是 babel-plugin-transform-phonetize? babel-plugin-transform-phonetize 是一个基于 Babel 的插件,它可以将代码中的中文字符转...

    4 年前
  • NPM 包 react-components-cli 使用教程

    React 是一个流行的 JavaScript 库,而且它在前端开发中被广泛地使用。如果你正在使用 React 构建应用程序,那么您一定会需要一些可复用的组件来帮助简化开发工作。

    4 年前
  • npm 包 babel-preset-unminify 使用教程

    前言 在前端开发中,我们经常会遇到需要优化代码的情况。而现在的大型项目中,通常会使用一些构建工具来简化开发流程。在这些构建工具中,Babel 可以帮助我们将现代 JavaScript 代码转义为浏览器...

    4 年前
  • npm 包 simple-ldap-search 使用教程

    在前端开发中,常常需要与 LDAP(Lightweight Directory Access Protocol) 进行交互。LDAP 是一种用于访问分布式目录信息服务的应用协议,是互联网和企业内部应用...

    4 年前

相关推荐

    暂无文章