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
: 定义截取方式。默认为整个屏幕截图,也可以定义为viewport
或fullPage
。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