Cypress:如何使用 cypress-image-snapshot 进行图像比较?

Cypress 是一个流行的前端自动化测试工具,而 cypress-image-snapshot 则是一个用于图像比较的插件,可方便地用于检测网站界面的一致性和变化。在本文中,我们将介绍如何安装和使用 cypress-image-snapshot 插件,并提供一些示例代码,帮助你更好地在你的项目中使用它。

安装 cypress-image-snapshot 插件

cypress-image-snapshot 可以通过 NPM 安装。以下是安装命令:

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

如何使用 cypress-image-snapshot

cypress-image-snapshot 插件的主要功能是捕获屏幕快照以进行比较和验证。以下是一个基本示例的代码:

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

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

在这个示例中,我们访问了一个网站,并捕获了页面上的标题。然后,matchImageSnapshot() 方法将用于将当前屏幕快照与以前捕获的快照比较。如果两个屏幕快照不同,则测试将失败。

对于比较更复杂的图像,你还可以使用自定义选项。

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

在此示例中,我们使用了自定义选项来确定像素偏差的允许百分比。如果屏幕快照的像素偏差超过3%,则将测试失败。

如何比较不同设备的网站

如果你兼容多种设备类型(如不同大小的屏幕),则可以使用 cy.viewport() 方法来调整屏幕的大小,以便能够针对不同的分辨率截取屏幕快照。

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

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

  --

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

  --
--

在此示例中,我们分别使用 iphone-6macbook-15 的分辨率进行了两个屏幕快照比较,以检查头部是否正确显示。

总结

使用 Cypress 和 cypress-image-snapshot 比较截图可以轻松检测网站的一致性和变化。我们介绍了如何安装和使用 cypress-image-snapshot,并提供了一些示例代码帮助你更好地在你的项目中使用。希望这篇文章对你有所帮助,也欢迎你分享自己的经验。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664d5de3d3423812e4cc1d39