如何在Cypress中生成带有截图的HTML报告(附实例)

811 阅读3分钟

你可能已经写了成千上万的测试案例,但让你感到自豪的是,当你把测试结果以一种可理解的方式可视化给利益相关者时。互联网上有很多关于将HTML报告整合到Cypress中的文章,但当涉及到屏幕截图整合时,就非常困难和耗时了。它的复杂性更高。

在这篇文章中,我将为你提供一步一步的指南,以简单的方式将HTML结果与截图整合到你的Cypress自动化框架。

这篇文章解释了如何通过使用以下方法将HTML结果或报告与内嵌的截图整合起来 Cypress Mochawesome Reporter。

这个插件是建立在mocha awesome report之上的,只是为了使生活变得简单,所以mocha awesome report中的一些选项在这里也是可用的。

让我们开始吧!

假设:你已经设置了一个Cypress框架,并运行了一些测试案例。

示范

使用Cypress Mochawesome Reporter将HTML结果与截图整合到你的Cypress自动化框架中的步骤指南。

第1步:安装 [**cypress-mochawesome-reporter**](https://www.npmjs.com/package/cypress-mochawesome-reporter)

Visual Studio代码中,导航到终端(确保目前的工作目录是你的项目根级目录)输入以下命令。

npm i --save-dev cypress-mochawesome-reporter

第2步:在你的cypress.json 文件中添加一个条目

打开: **cypress.json**文件,该文件位于你的项目根目录中,添加以下条目

"reporter": "cypress-mochawesome-reporter",
  "reporterOptions": {
    "reportDir": "cypress/reports",
    "charts": true,
    "reportPageTitle": "My Test Suite",
    "embeddedScreenshots": true,
    "inlineAssets": true
  },
  "video": false

报告配置的示例图片 **cypress.json**:

Sample Image of Report Configuration in cypress.json

第3步:在plugin/index.js中添加一个条目

从你的Project Root Folder ,导航到cypress 文件夹>plugin 文件夹>index.js 文件。

打开位于插件文件夹内的 **index.js**位于插件文件夹内的文件,添加以下代码。

module.exports = (on, config) => { require('cypress-mochawesome-reporter/plugin')(on); };

屏幕截图示例。

Add an Entry In plugin/index.js

第4步:在support/index.js中添加一个条目

从项目的根文件夹 > 导航到cypress 文件夹 >support 文件夹 >index.js 文件。

添加以下条目。

import 'cypress-mochawesome-reporter/register';

屏幕截图示例。

Add an Entry In support/index.js

这就是你所做的设置!!!

第5步:使用下面的命令在命令行中执行你的测试

npx cypress run

另外,如果你已经配置好了,你也可以使用package.json配置运行。

第6步:查看结果文件

结果文件位于我们在步骤2中提到的reportDir 选项值中。在我们的例子中,我们已经提到cypress/reports

所以,从你的项目根目录 > 导航到cypress 文件夹 >reports 文件夹 >index.html 文件

index.html 是你的结果文件,只需在chrome或任何浏览器中打开。

Index.html文件看起来像下面这样。

第7步:寻找所附的嵌入式屏幕截图

所有失败的测试都会被截图,所以为了查看截图,只要点击失败的测试。屏幕截图就会出现。

失败测试的屏幕截图示例和嵌入式屏幕截图:

Example Screenshot of Failed Test

常见问题

1.我可以禁用屏幕截图吗?

是的,你可以禁用屏幕截图,在cypress.json文件中改变以下代码:

"embeddedScreenshots": false,

2.如何改变默认的屏幕截图文件夹?

你可以使用下面的命令改变默认的屏幕截图文件夹:

"screenshotsFolder": "images"

这里,images 是文件夹名称,你可以把它改为任何有效的路径,如cypress/images ,等等。

它看起来像下面这样:

Changing Default Screenshot Folder

3.我可以用这个插件 cypress-multi-reporters来配置Junit和HTML结果?

是的,你可以使用这个插件来配置多个报告者。

如果你想配置多个报告,你应该在cypress.json 文件夹中使用下面的代码。

下面是一个示例代码,你可以用选项进行配置。

"reporter": "cypress-multi-reporters", "reporterOptions": { "reporterEnabled": "cypress-mochawesome-reporter, mocha-junit-reporter", "mochaJunitReporterReporterOptions": { "mochaFile": "cypress/reports/junit/results-[hash].xml" }, "cypressMochawesomeReporterReporterOptions": { "charts": true, "reportPageTitle": "custom-title" } },   "video": false

4.如何在Mocha Awesome HTML报表中启用内联CSS和样式?

为了启用内联样式和单一的HTML文件(没有任何资产文件),你需要打开选项

"inlineAssets": true

希望你喜欢这个...