Cypress系列(41)- Cypress 的测试报告

简介: Cypress系列(41)- Cypress 的测试报告

如果想从头学起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

 

注意

51 testting 有一篇文章会和我的一样,因为是我投的稿~~

 

前言


  • Cypress 的测试报告模块脱胎于 Mocha 的测试报告,故任何 Mocha 支持的测试报告均可直接用于 Cypress
  • 下面将利用 Cypress-example 提供的 web 应用程序作为例子,需要先启动本地服务

进入被测应用 logging-in__html-web-forms 的目录

C:\Users\user\Desktop\py\cypress-example-recipes\examples\logging-in__html-web-forms

 

启动本地服务

npm start

 

启动成功后,cmd窗口将显示服务器的地址和端口

image.png

内置的测试报告


内置的测试报告包括 Mocha 的内置测试报告和直接嵌入在 Cypress 中的测试报告,主要有以下几种

  1. spec 格式报告
  2. json 格式报告
  3. junit 格式报告

准备工作

确保  package.json  文件的 scripts 模块加入了如下键值对  "cypress:run":"cypress run"

  • cypress run  是以无头浏览器模式跑测试用例文件夹下的所有测试用例
  • cypress open  会打开测试用例集的界面,需要手动运行

 

spec 格式报告

简介

spec 格式是 Mocha 的内置报告,它的输出是一个嵌套的分级视图

 

如何使用

在 Cypress 中使用 spec 格式的报告非常简单,在命令行运行时加上 --reporter=spec

 

运行测试

进入 Cypress 安装的目录,cmd敲

yarn cypress:run --reorter=spec

 

运行完成后,测试报告如下图

image.png

json 格式报告

简介

json 测试报告格式将输出一个大的 JSON 对象

 

如何使用

在 Cypress 中使用 json 格式的报告非常简单,在命令行运行时加上  --reporter=json

 

运行测试

进入 Cypress 安装的目录,cmd敲

yarn cypress:run --reporter=json --reporter-options "toConsole=true"

 

运行完成后,测试报告如下图

image.png

junit 格式报告

简介

junit 测试报告格式将输出一个 xml 文件

 

如何使用

在 Cypress 中使用 xml 格式的报告非常简单,在命令行运行时加上   --reporter=junit

 

运行测试

进入 Cypress 安装的目录,cmd敲

yarn cypress:run --reporter junit --reporter-options "mochaFile=results/test_output.xml,toConsole=true"

 

运行完成后,测试报告如下图

image.png

自定义的测试报告


除了内置的测试报告,Cypress 也支持用户自动以报告格式

 

Mochawesome 报告介绍

  • Mochawesome 是与 JavaScript 测试框架 Mocha 一起使用的自定义报告程序,它运行在 Node.js(≥8)上
  • 并与 mochawesome-report-generatir 结合使用生成独立的 HTML/CSS 报告,以帮助可视化测试运行

 

在 Cypress 中使用 Mochawesome 报告的步骤

第一步

  • 将 Mocha、Mochawesome 添加至项目中(看下面命令)

npm install --save-dev mocha

npm install --save-dev mochawesome

注意坑

  • 先看看 node_modules 目录下是否有 mocha 文件夹,如果有直接装 mochawesome
  • 如果安装 mocha 失败,出现很古怪的错误,譬如 mkdirp 版本不行(如: mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x.
  • 尝试先 update mkdirp 库,如果也报错,则 uninstall mkdirp 库,如果仍然报错;则把 Cypress 目录下的 node_modules 整个文件夹删掉,重新执行 npm install ,大概率可以解决问题了

(别问我怎么知道这些坑...)

 

第二步

进入 Cypress 安装目录,cmd执行下面命令

yarn cypress:run --reporter mochawesome

 

运行完成后,可以看到下图

image.png

image.png

image.png

用户自定义报告的步骤

第一步:配置 reporter 选项

  • cypress.json  文件中配置  reporter 选项,指定 reporter 文件位置
  • 在本栗子中,把 reporter 定义在 custom_reporter.js 文件中

 

第二步:编写自定义报告文件

  1. 进入 Cypress 安装目录下的 cypress 目录下(本案例在: C:\Users\user\Desktop\py\MyCypress\cypress
  2. 创建 reporter 文件夹,然后创建一个 custom_reporter.js 文件
  3. 写以下代码(此自定义报告扩展了内置报告,仅更改了成功的显示样式)
var mocha = require('mocha');
module.exports = MyReporter;
function MyReporter(runner) {
    mocha.reporters.Base.call(this, runner)
    var passes = 0
    var failures = 0
    runner.on('pass', function (test) {
        passes++
        console.log('pass:%s', test.fullTitle())
    })
    runner.on('fail', function (test, err) {
        failures++
        console.log('fail:%s -- error:%s', test.fullTitle(), err.message)
    })
    runner.on('end', function () {
        console.log('用户自定义报告:%d/%d', passes, passes + failures)
    })
}


第三步:运行测试

进入 Cypress 安装目录,cmd敲下面命令

yarn cypress:run --reporter ../cypress/reporters/custom_reporter.js

 

运行完成后,测试报告如下图

image.png

生成混合测试报告


前言

  • Cypress 除了支持单个测试报告,还支持混合测试报告
  • 老板或者管理者一般都喜欢看到多种不一样样式的报告,比如测试在 CI 中运行时,又想生成 junit 格式的报告,又想在运行时实时看到测试输出
  • Cypress 官方推荐使用 mocha-multi-reporters 来生成混合测试报告(https://github.com/stanleyhlng/mocha-multi-reporters

 

使用 mocha-multi-reporters 的测试步骤

第一步:安装所需库

npm install --save-dev mocha-multi-reporters mocha-junit-reporter

 

第二步:创建 json 文件

cypress/reporters 文件夹下,创建一个 custom.json 文件,增加如下内容:

{

 "reporterEnabled": "spec,json, mocha-junit-reporter",

 "reporterOptions": {

   "mochaFile": "cypress/results/results-[hash].xml"

 }

}

 

第三步:运行测试

进入 Cypress 安装目录,cmd敲下面命令

yarn cypress run --reporter mocha-multi-reporters  --reporter-options configFile=cypress/reporters/custom.json --spec cypress/integration/testLogin.js

 

运行完成后,测试报告如下图

image.png

测试报告文件夹 results 会生成在 Cypress安装路径/cypress  目录下

image.png

总结

  • 当我们运行完一次测试(可能包含多个 spec),我们更希望看到一个完整的测试报告文件,而不是分开的独立文件
  • 特别对于 HTML 格式报告来说,整合到同一个 HTML 报告中是更加直观的
  • Cypress 为了解决此问题也提供了高阶的方法,将在后续的 Cypress 进阶部分进行详细介绍


相关文章
|
JavaScript 前端开发 机器人
Cypress 的条件测试
Cypress 的条件测试
|
4月前
|
JavaScript 前端开发 安全
在众多的测试工具中,Cypress以其强大的端到端测试能力和与TypeScript的完美结合,成为了前端开发者的首选
【6月更文挑战第11天】Cypress结合TypeScript,打造前端测试新体验。TypeScript增强代码可读性和稳定性,Cypress提供强大端到端测试,二者结合提升测试准确性和可靠性。通过类型定义、自定义命令和断言,优化测试代码;Cypress模拟真实用户操作、时间旅行功能及内置调试工具,确保应用功能性能。推荐前端开发者使用TypeScript+Cypress进行端到端测试。
65 2
|
5月前
|
测试技术 Python
cypress 和allure 集成生成测试报告
cypress 和allure 集成生成测试报告
139 1
cypress 和allure 集成生成测试报告
|
4月前
|
JavaScript 前端开发 安全
Cypress因其强大的端到端测试能力备受青睐,尤其与TypeScript结合,提升了测试的规范性和准确性。
【6月更文挑战第12天】前端开发日益复杂,测试成为保障代码质量和稳定性的关键。Cypress因其强大的端到端测试能力备受青睐,尤其与TypeScript结合,提升了测试的规范性和准确性。TypeScript使Cypress测试代码更易读、维护,通过类型定义、自定义命令和断言增强测试可靠性。Cypress能模拟真实用户操作,支持时间旅行和高效调试,全面测试前端应用功能。因此,TypeScript+Cypress是前端端到端测试的理想选择。
72 2
|
5月前
|
JavaScript 前端开发 安全
【TypeScript技术专栏】TypeScript与Cypress端到端测试
【4月更文挑战第30天】随着前端开发复杂度提升,测试成为关键环节,Cypress因其强大的端到端测试和与TypeScript的集成备受青睐。TypeScript增强了代码的可读性和维护性,确保测试准确性和可靠性。在Cypress中,TypeScript用于定义测试变量、自定义命令和断言,提高测试代码质量。Cypress的优势包括模拟真实用户操作、时间旅行功能和强大的调试工具,能有效提升测试效率和准确性。结合两者,前端开发者能实现高效、全面的端到端测试。
59 0
|
JavaScript 测试技术 Python
cypress自动化测试框架搭建
cypress自动化测试框架搭建
126 0
|
JavaScript 数据可视化 IDE
测试自动化工具比较:Selenium vs. Cypress
在软件开发过程中,测试自动化是一个关键的环节,它可以提高测试效率和质量,并帮助开发团队更快地交付高质量的软件。在测试自动化领域,Selenium和Cypress是两个备受关注的工具。本文将对它们进行比较,帮助开发者选择适合自己项目的测试自动化工具。
521 0
|
存储 Web App开发 JavaScript
Node.js躬行记(28)——Cypress自动化测试实践
Node.js躬行记(28)——Cypress自动化测试实践
|
前端开发 测试技术
|
JavaScript 前端开发 安全