如果想从头学起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窗口将显示服务器的地址和端口

内置的测试报告

内置的测试报告包括 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

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

json 格式报告

简介

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

如何使用

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

运行测试

进入 Cypress 安装的目录,cmd敲

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

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

junit 格式报告

简介

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

如何使用

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

运行测试

进入 Cypress 安装的目录,cmd敲

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

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

自定义的测试报告

除了内置的测试报告,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.: Legacy versions of mkdirp are no longer supported. Please update to mkdirp .x.  )
  • 尝试先 update mkdirp 库,如果也报错,则 uninstall mkdirp 库,如果仍然报错;则把 Cypress 目录下的 node_modules 整个文件夹删掉,重新执行 npm install ,大概率可以解决问题了

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

第二步

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

yarn cypress:run --reporter mochawesome

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

测试报告文件夹 mochawesome-report 会生成在项目根目录下

点击 html 查看可视化报告

用户自定义报告的步骤

第一步:配置 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

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

生成混合测试报告

前言

  • 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

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

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

总结

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

Cypress系列(41)- Cypress 的测试报告的更多相关文章

  1. Cypress系列(2)- Cypress 框架的详细介绍

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress 简介 基于 JavaSc ...

  2. Cypress系列(44)- 命令行运行 Cypress

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 前面也介绍过 Cypress 命令 ...

  3. Cypress系列(1)- Window下安装 Cypress 并打开

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 系统要求 Cypress 是一个被安装在 ...

  4. Cypress系列(4)- 解析 Cypress 的默认文件结构

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 默认文件结构 在使用 cypress o ...

  5. Cypress系列(5)- 自定义 Cypress

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 Cypress 不仅支持用户自定义 ...

  6. Cypress系列(14)- 环境变量详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 环境变量,其实就是根据环境的变化, ...

  7. Cypress系列(13)- 详细介绍 Cypress Test Runner

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 Test Runner 也叫运行器 ...

  8. Cypress系列(65)- 测试运行失败自动重试

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 重试的介绍 学习前的三问 什么是重试测试 ...

  9. Cypress系列(67)- 环境变量设置指南

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 常见的环境变量设置方式 可参考这篇文章: ...

随机推荐

  1. 【总结】Asp.Net Mvc 后台控制器获取页面发来的参数类型

    接收各种参数(普通参数,对象,JSON, URL) 待续...

  2. .net core 使用 swagger 生成接口文档

    微软参考文档:https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs= ...

  3. 个人对于flask中蓝图的理解

    什么是蓝图? 蓝图可以理解为,是一种对项目中的代码进行模块化管理的工具,相当于python中的包为什么要使用蓝图? 在一个py文件中具有多个功能代码,不利于维护和管理. 如果在其他的模块中去调用视图函 ...

  4. 自适应高度输入框(contenteditable/textarea)

      一.用div模拟textarea div模拟输入域可以根据输入内容自动伸缩,而input和textarea输入内容较多时,高度固定,内容会显示不全. 1.坑1(IOS端无法输入) 在取消全局默认样 ...

  5. Promise内部实现原理

    promise内部实现原理: function $Promise(fn) { // Promise 的三种状态 this.PENDING = 'pending' this.RESOLVED = 're ...

  6. Xenon's Attack on the Gangs,题解

    题目: 题意: 有一个n个节点的树,边权为0-n-2,定义mex(a,b)表示除了ab路径上的自然数以外的最小的自然数,求如何分配边权使得所有的mex(a,b)之和最大. 分析: 看似有点乱,我们先不 ...

  7. Docker-本地镜像发布到阿里云

    1.先生成一个镜像 有两种发法:(1)写DockerFile (2)从容器创建一个新的镜像 docker commit [option] 容器ID 镜像名字:版本号 option 说明 :-a 作者 ...

  8. CentOS 7 的防火墙开启2

    在虚拟机 CentOS 7 上装了 Nginx,结果发现另一台电脑无法访问其默认页面,通过 telnet 192.168.1.88 80 监听发现是 http 80 端口被 CentOS 7 的防火墙 ...

  9. 一篇文章教会你如何将DOM转换为virtual DOM

    [一.Virtual DOM简介] Virtual DOM是虚拟节点,它通过Javascript的Object对象模拟DOM中的节点,然后通过特定的render方法将其渲染成真实的DOM节点. 浏览器 ...

  10. uni-app 使用个推推送系统消息

    原文可查看此处 ,搜索 uni-app 使用个推推送系统消息 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=Mzg3NTA ...