如何在 Cypress 中实现断言截图

Cypress 是一个流行的前端测试框架,它提供了强大的 API 和输出以进行端到端测试。在测试过程中,断言截图可以帮助我们更快地发现问题和调试错误。本文将介绍如何在 Cypress 中实现断言截图。

准备工作

首先,安装相应的依赖:

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

cypress/support/commands.js 中添加下列代码:

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

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

运行 npm run cypress:open 进入 Cypress 界面,在设置文件 cypress.json 中添加以下代码:

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

在上面的代码中,我们将 Cypress 所有截图的存储位置在 cypress/screenshots 目录下,并关闭所有录制视频。

开始使用断言截图

通过上述设置,现在我们可以在 Cypress 中使用断言截图了。在测试代码中使用 cy.screenshot() 命令可以在测试过程中截取屏幕快照,并将其保存在设置文件中配置的 screenshotsFolder 路径下。

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

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

在上面的代码中,我们通过 cy.visit() 命令进入测试网站,并通过 cy.get() 命令获取 body 元素。 snapshot() 命令将截取到的屏幕快照命名为 homepage 并与预期快照进行比较。如果断言失败,将创建一个差异图,并打印出截图和差异图的 HTML 代码。

可以使用的定制选项

cy.snapshot() 支持各种定制选项,用于实现更精确的断言比较。以下是一些可用的定制选项:

  • capture: 定义截取方式。默认为整个屏幕截图,也可以定义为 viewportfullPage
  • clip: 定义要截取的区域,格式为 {x, y, width, height}{ top, left, bottom, right }
  • disableTimersAndAnimations: 处理测试过程中启动的所有定时器。默认为 true
  • threshold: 定义可接受的图像差异程度。默认值为 0.03
  • onBeforeScreenshot: 在截图之前触发的回调函数。
  • onAfterScreenshot: 在截图之后触发的回调函数。

结论

在 Cypress 中实现断言截图可以帮助我们更快地发现问题和调试错误。通过上述设置和示例代码,现在您可以轻松地在 Cypress 中实现断言截图了。而且,Cypress 框架支持 API 使您能够更好地控制和定制快照。

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