npm 包 WebdriverCSS 使用教程

WebdriverCSS 是一个基于 WebdriverIO,用于图片比较(visual regression testing)的 npm 包。它可以主动地与浏览器交互,捕获需要比较的截屏,然后与之前的截屏进行比较,以便及早地发现页面的样式变化,从而减少手动测试的工作量,提高测试效率。

安装

首先,需要在项目中安装 WebdriverIO 和 WebdriverCSS,可以使用 npm 直接安装,具体如下:

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

初识 WebdriverCSS

WebdriverCSS 的使用分为两个步骤:初始化 WebdriverIO 驱动,然后进行图片比较。下面是一个简单的示例:

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

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

下面,我们来分别解析上述代码:

  • webdriverio:引入 WebdriverIO。
  • desiredCapabilities:用于指定测试的浏览器类型,这里指定 chrome。
  • client = webdriverio.remote(options):创建 WebdriverIO 实例。
  • client.init().url('http://example.com'):打开需要进行 visual regression testing 的页面。
  • webdrivercss():调用 WebdriverCSS 进行图片比较。其中,第一个参数是名称,第二个参数使用户定义一个元素进行截图。最后一个参数是比较完成后的回调函数。
  • end():完成测试。

比较基准图片

在进行 visual regression testing 时,我们需要先设置一个基准图片,然后将新图片与基准图片进行比较,以此检测页面样式是否发生了变化。

在使用 WebdriverCSS 进行 visual regression testing 时,有一种情况是第一次测试,我们还没有一个基准图片。这时,WebdriverCSS 提供了一个 storeBaseImage() 方法来保存当前的图片,以此作为未来比较的基准图片。下面是一个示例:

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

在使用 storeBaseImage() 时,WebdriverCSS 将当前页面进行截屏,并将结果保存到基准图片中。

比较图片

在我们有了基准图片后,我们就可以通过比较新图片和基准图片,来检测页面样式是否发生了变化。如果差异超过了预定的容差,WebdriverCSS 将在被测网页显示一条警告信息,以提醒测试人员。

下面是一个示例代码:

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

在使用 compareScreenshot() 时,WebdriverCSS 会将当前页面进行截屏,并将结果与基准图片进行比较。如果发现差异,WebdriverCSS 会在被测网页上显示一个警告信息。

设置容差

有时,页面的样式发生变化,差异可能并不是在我们关心的元素上,而仅仅是与元素相邻的一些像素值。这时,如果容差设置过严,WebdriverCSS 将误报错误。在这种情况下,我们需要调整容差,去除这些不明显的差异。

WebdriverCSS 允许我们在每次图片比较时,动态地设置容差。其中 misMatchPercentage 属性指定了容差百分比。下面是一个示例代码:

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

在上述代码中,我们将容差设置为 3.5%,以便更准确地检测页面样式变化。

结语

WebdriverCSS 是一个强大的工具,用于 visual regression testing。它不仅提高了测试效率,还可以减少人工测试的工作量。我们可以将其作为自动化测试脚本的一部分,无需人工干预,即可发现应用的潜在 bug。希望这篇教程可以帮助你更好地理解 WebdriverCSS 的使用。

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


猜你喜欢

  • npm 包 wemojo 使用教程

    在前端开发中,我们经常需要使用一些常用的工具库或 UI 组件,而 npm 就是一个非常实用的工具,它提供了大量的前端组件和库。 其中,wemojo 是一个非常实用的 npm 包,它提供了一些有趣的功能...

    4 年前
  • npm 包 wide 使用教程

    wide 是一个在浏览器中运行的代码编辑器,它提供了许多编写前端代码的功能。wide 可以使用 npm 安装,并且在代码编写中提供了丰富的功能和工具,方便开发人员的工作。

    4 年前
  • npm 包 wechatneon 使用教程

    在前端开发中,微信开发一直是一个很重要的领域,而 npm 包 wechatneon 是一个功能强大的微信公众号开发工具包,可以极大地方便我们的开发工作。本篇文章通过详细的使用教程,帮助读者更好地了解 ...

    4 年前
  • npm 包 wed 使用教程

    什么是 npm 包 wed? npm 包 wed 是一个前端框架,提供了一套现代化的 Web 开发工具和技术,帮助开发者构建高效、可维护和易于扩展的 Web 应用程序。

    4 年前
  • 使用 WhatsApp-Node 进行客户端消息推送

    介绍 如今,Web应用程序不仅可以运行于 web 浏览器中,同时还可以作为移动客户端的后端提供服务。而客户端消息推送是这类应用程序的必要功能之一。本文将介绍如何使用 npm 包 WhatsApp-No...

    4 年前
  • npm 包 `whatsapp-log-parser` 使用教程

    最近,WhatsApp 宣布他们将更加关注用户隐私保护。这预示着将来 WhatsApp 将会变得更加难以监控。因此,保留聊天记录变得尤为重要。但是,聊天记录的格式并不是很好处理。

    4 年前
  • npm 包 widenbot-nowplaying 使用教程

    widenbot-nowplaying 是一个 npm 包,可以用于获取当前正在播放的歌曲信息。它支持多种平台,包括 Spotify、Apple Music、YouTube Music、Deezer、...

    4 年前
  • npm 包 widenbot-flipit 使用教程

    简介 widenbot-flipit 是一个基于 Node.js 的 npm 包,可以实现将字符串翻转、翻译等功能。它可以帮助开发者快速完成一些字符串处理任务,提高开发效率。

    4 年前
  • npm 包 widget-base-helpers 使用教程

    npm 是一个 Node.js 的包管理器,用于组织和管理 Node.js 的模块,并且可以作为前端代码管理工具。widget-base-helpers 是一个 npm 包,提供了一些在前端开发中常用...

    4 年前
  • npm 包 widget-cli 使用教程

    介绍 widget-cli 是一个基于 Node.js 和 React 的命令行工具,可以帮助我们快速创建并发布 React 组件,同时还提供了预览组件、构建组件等功能。

    4 年前
  • npm 包 widget-cli-ck 使用教程

    widget-cli-ck 是一个基于 node.js 的 npm 包,它用于快速生成前端小部件,帮助前端开发人员提高工作效率。本文将介绍 widget-cli-ck 的使用教程,包括如何安装、使用和...

    4 年前
  • npm 包 widget-cms 使用教程

    widget-cms 是一款强大的前端组件库,可以帮助开发人员快速构建功能丰富、高度可定制的 UI 界面。本篇文章将介绍如何安装和使用这个 npm 包,并分享一些示例代码,以帮助您快速上手。

    4 年前
  • npm 包 whatiz-cli 使用教程

    前言 随着前端技术的发展,npm 包已经成为前端开发中不可或缺的一部分,而 whatiz-cli 是一个非常优秀的 npm 包,它可以帮助开发者更加便利地进行前端开发。

    4 年前
  • npm 包 whatmd 使用教程

    引言 在前端开发中,文档编写是不可避免的一项工作。而随着项目的不断发展、文件的增多,文档维护变得越来越困难。这时候,一个好用的 markdown 工具就变得非常重要了。

    4 年前
  • npm 包 whatkey 使用教程

    你是否需要一个可以捕捉用户按键事件的工具来实现一些特殊的需求呢?如果是,那么 whatkey 就是你需要的工具。在本文中,我们将介绍如何使用 npm 包 whatkey 来捕捉按键事件。

    4 年前
  • npm包Whats使用教程

    什么是npm包Whats? npm包Whats是一个基于Node.js的轻量级、易用性强的库,它可以帮助前端开发人员在网页应用程序中快速实现聊天功能。Whats简化了开发人员为网站添加聊天功能的代码量...

    4 年前
  • npm 包 wechat_corp_ctrl_enterprise 使用教程

    前言 wechat_corp_ctrl_enterprise 是一个适用于企业微信的 Node.js 库,它提供了丰富的 API 工具,帮助开发者快速集成和开发企业微信应用,研究微信控制器工具类,且具...

    4 年前
  • npm 包 whats-goin-on 使用教程

    在日常开发中,有时候我们需要快速地获取应用程序正在发生的事件和状态信息,以便于开发者能够快速地定位和解决问题。而 npm 包 what-goin-on 就是一款极其方便实用的工具,它可以帮助开发者监听...

    4 年前
  • npm 包 whatsgrab 使用教程

    简介 whatsgrab 是一个基于 Node.js 开发的 npm 包,可以帮助前端开发人员轻松地从 WhatsApp 群聊中获取特定关键词的消息。whatsgrab 的使用可以帮助前端开发人员根据...

    4 年前
  • npm 包 widget-knex-schema 使用教程

    简介 widget-knex-schema 是一个能够让你通过 Knex.js 创建数据库表结构并添加默认数据的库。它会帮你自动生成表结构,常用的 CRUD 方法以及其他一些常见的操作。

    4 年前

相关推荐

    暂无文章