如果想从头学起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. 入门大数据---Hive数据查询详解

    一.数据准备 为了演示查询操作,这里需要预先创建三张表,并加载测试数据. 数据文件 emp.txt 和 dept.txt 可以从本仓库的resources 目录下载. 1.1 员工表 -- 建表语句 ...

  2. NodeMCU手把手入门:配置NodeMCU ESP8266开发板环境及点亮LED灯

    之前一直在玩树莓派,最近实验室买了些NodeMCU就想着玩一玩,没想到挺有意思的.其实树莓派能实现的功能,它大部分也可以,价格比派也便宜不少,舍不得买派的同学可以先买这个开发板玩一玩. 本文主要介绍了 ...

  3. BootstrapDialog.confirm确认对话框

    1. 依赖文件: bootstrap.js bootstrap-dialog.js bootstrap.css bootstrap-dialog.css 2.代码 BootstrapDialog.co ...

  4. redis-cli连接redis服务器操作

    安装redis-cli 命令:redis-cli -h 地址 -p 端口号 认证:auth 密码 选择对应的DB:Select DB号(0~15) 查看对应的Key的过期时间:TTL Key名称 查看 ...

  5. flask的小错误

    这几天刚学flask,根据录屏学代码的时候,遇到一个问题 基本能看懂错误,role_id是类的一个字段,应该是一个对象,最后发现是单词写错了,应该是大写的Column, db.Column(db.In ...

  6. CSS/CSS3常用的样式兼容,样式总结

    这篇文章这篇文章主要介绍了css中常用但是又难记的样式作为总结,方便大家学习和使用.包括了‘单行缩略号‘.’css圆角兼容'.‘元素阴影’,‘border取消宽度影响’,‘css3的背景渐变’,‘cs ...

  7. HDU 4352 XHXJ's LIS HDU 题解

    题目 #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the ent ...

  8. Xshell6 优化

    Xshell6 优化

  9. TLS回调函数以及反调试简单使用

    TLS回调函数以及反调试简单使用 0x00  TLS介绍 TLS(Thread Local Storage,线程局部储存),主要用于给线程独立的传值,由于线程不拥有进程的资源,所以几个同一进程的几个线 ...

  10. Spring 5.2.x 源码环境搭建(Windows 系统环境下)

    前期准备 1.确保本机已经安装好了 Git 2.Jdk 版本至少为 1.8 3.安装好 IntelliJ IDEA (其他开发工具,如 eclipse.Spring Tool Suite 等也是可以的 ...