GVKun编程网logo

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

20

本文将介绍Cypress系列的详细情况,特别是关于41-Cypress的测试报告的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Cypress系列-

本文将介绍Cypress系列的详细情况,特别是关于41- Cypress 的测试报告的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Cypress系列-使用npm命令搭建cypress环境、Cypress系列(0)- 如何学习 Cypress、Cypress系列(10)- Cypress 编写和组织测试用例篇 之 动态跳过测试用例、Cypress系列(11)- Cypress 编写和组织测试用例篇 之 动态生成测试用例的知识。

本文目录一览:

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

Cypress系列(41)- Cypress 的测试报告(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窗口将显示服务器的地址和端口

 

内置的测试报告

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

 

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

 

测试报告文件夹 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', (test) {
        passes++
        console.log('pass:%s' (test,err) {
        failures++
        console.log('fail:%s -- error:%s' () {
        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": {
    "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系列-使用npm命令搭建cypress环境

Cypress系列-使用npm命令搭建cypress环境

为什么要开始学习Cypress?

    很简单,IT行业的技术在不断的更新进步,作为IT行业从业者,等你有了几年工作经验之后,你的知识面不能还跟刚毕业的小白一样,啥都不知道。你可以不去深究它的细节,但是针对一些行业内新兴起的框架和工具等,你要知道是个什么东西,大概能解决什么样的问题。这也是我写文章然后建群跟同行一起交流的目的,希望能在群里面了解到大家都在学些什么,工作中会遇到什么样的问题,多多积累自己的经验。(有需要进群一起交流的,可以加我xiaobotester备注进群)

    Cypress作为新兴起的一个自动化测试框架,目前我对它也不是很了解,这里就不去复制别人的介绍,只知道它的功能很强大,先来尝试着了解一下工具是怎么用的。感兴趣的可以自己看官方文档(全英文)介绍:https://www.cypress.io/


Cypress环境搭建

适用系统:

  • macOS 10.9 and above (64-bit only)

  • Linux Ubuntu 12.04 and above, Fedora 21 and Debian 8 (64-bit only)

  • Windows 7 and above

先安装nodejs,然后使用npm命令进行安装。nodejs环境参考之前的文章进行操作:Node.js环境搭建以及常见npm用法


创建一个项目的文件夹,我这里创建的目录是:D:\MyScripts\Cypress-demo。然后进入到文件夹里面后,打开cmd窗口,执行以下命令:

cd /d D:\MyScripts\Cypress-demonpm init (这条命令执行时,中间敲几次回车即可执行完)npm install cypress --save-dev
或者安装cnpm后,用cnpm install命令进行安装npm install -g cnpm --registry=https://registry.npm.taobao.org

安装完之后,执行命令打开cypress:

方式1:cd /d D:\MyScripts\Cypress-demo"./node_modules/.bin/cypress" open (不加双引号会执行报错)
方式2:执行下面的命令:cd /d D:\MyScripts\Cypress-demo  (进入目录再执行命令,让生成的cypress文件夹存放在该目录)npx cypress open

注意事项

1、启动cypress时,会在当前执行命令的路径下生成cypress文件夹

2、不要进入到node_modules/.bin目录下去执行启动命令,否则会报下面的错误:因为.bin目录下已经有一个cypress命令,无法在这个目录下再生成cypress文件夹了。

正常启动后的页面如下:


能够正常打开以上页面的话,就表示cypress环境安装成功了。


如何验证cypress是否真的已经安装成功?

创建一个项目成功启动后,在项目根目录下用命令启动cypress时,会在根目录生成一个cypress的文件夹,里面有一些写好的现成的测试case:

想要运行哪个case,直接在弹出的cypress窗口中点击对应的case就可以运行,运行用例效果如下:

Cypress官方文档:https://docs.cypress.io/guides/overview/why-cypress


欢迎关注公众号喔。

往期推荐

如何自学软件测试、包装简历实现华丽转行?

Postman教程-接口测试流程&发送第一个请求

Postman教程-Send Requests相关的基本操作

Postman教程-Response相关的基本操作

Postman教程-通过设置代理/拦截器捕获请求信息

Postman教程-变量、集合的基本使用

Postman教程-Pre-request Script和Tests脚本的介绍

Postman教程-Pre-request Script和Tests脚本进阶

Postman教程-如何改变脚本执行顺序

Postman+Newman+Git+Jenkins实现接口自动化测试持续集成




本文分享自微信公众号 - 小博测试成长之路(libotest)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Cypress系列(0)- 如何学习 Cypress

Cypress系列(0)- 如何学习 Cypress

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

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

 

前言

  • Cypress 未来很有可能会火的一塌糊涂,那么我们又应该如何进行学习呢?
  • 目前国内 Cypress 可以学习的资源并不多,你百度只搜 Cypress 还可能出现硬件的东西哈哈哈
  • 虽然目前官网提供了中文版的官方文档,但感觉翻译的还是一般般

 

隆重推荐

  • 目前国内可以说是第一本关于 Cypress 的书,博主整个系列的文章都是基于这本书的,阅读->敲代码->写博客->巩固知识
  • 它就是蔡超老师写的《Cypress 从入门到精通》,博主认为这本书可以很好的帮助你入门 Cypress,并且能帮助你学习进阶的内容
  • 所以也帮蔡老师打打广告,希望更多的童鞋跟我们一起学习 Cypress啦!
  • 下面附上了当当旗舰店的二维码啦!现在超便宜的。。我买的时候还要50呢。。

 

 

买不了吃亏买不了上当啦啦啦~快来跟我一起学习吧!!

Cypress系列(10)- Cypress 编写和组织测试用例篇 之 动态跳过测试用例

Cypress系列(10)- Cypress 编写和组织测试用例篇 之 动态跳过测试用例

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

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

 

前言

  • 上一节只讲了如何跳过执行 or 只执行某些测试用例集 or 测试用例
  • 在实际项目中,可能存在需要在运行中动态地去决定某个测试是否需要执行

 

如何动跳过执行某些测试用例

测试代码

 

运行以下命令

进入 Cypress 安装目录,cmd敲

yarn cypress:open --env flag=1

打开 Cypress Test Runner 之后运行上面的代码文件

 

测试结果

 

当 flag != 1 时的测试结果

 

知识点

  • 我们可以通过指定环境变量来动态判断是否执行指定的测试用例
  • 设置环境变量有很多种方法,这里用的是命令行方式,格式: --env key=val1,key2=val2 ,若需要指定多个环境变量则需要逗号来隔开,而不是空格
  •  this.skip() ,当测试用例内调用该方法时,方法后面的代码都不会执行,方法前面若是调用 Cypress 的方法则也不会执行(如: cy.visit() 、 cy.log() ),只有非 Cypress 方法才会执行(如: console.log("1234") )

备注:后面再讲环境变量不同的配置方式

Cypress系列(11)- Cypress 编写和组织测试用例篇 之 动态生成测试用例

Cypress系列(11)- Cypress 编写和组织测试用例篇 之 动态生成测试用例

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

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

 

前言

  • 自动化测试中,数据驱动是很重要的一个点
  • 实际项目中,肯定会出现这种情况:多条测试用例的执行步骤,断言步骤完全一致,只有输入和输出数据不一样
  • 这个时候依靠数据驱动(数据参数化)来解决这个问题可以提升我们的测试效率
  • 在 Cypress,可以通过数据来动态生成测试用例,以达到数据驱动的效果

 

动态生成测试用例的步骤

前提

这边用的还是 Cypress 提供的被测应用哦

# 进入被测应用的目录
cd C:\Users\user\Desktop\py\cypress-example-recipes\examples\logging-in__html-web-forms

# 启动本地服务
npm start

 

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

 

创建一个数据文件

在 Cypress安装目录/cypress/integration 文件夹下,创建一个子目录 datas ,在该目录下创建一个 testLogin.data.js 文件,代码如下

export const testLoginUser = [

    {
        summary: "登录成功",username:"jane.lane"
    },{
        summary: "登录失败"文件

在 integration 文件夹下创建一个 testLogin.js 文件,代码如下

 

运行测试文件

进入 Cypress 安装文件夹,cmd执行命令

yarn cypress:open

 

单击 testLogin.js,Cypress 会启动 Test  Runner 运行测试,运行成功后,将看到运行结果页面

测试结果

可以看到第一条用例是测试通过,第二条用例是执行失败了(因为账号密码是错的,失败理所当然)

 

总结

  • 根据测试数据动态生成测试用例,是一种数据驱动的做法
  • 可以提升我们的测试效率,当我们测试数据本身改变时,无须更改测试代码,只要改测试数据文件
 

总结

以上是小编为你收集整理的Cypress系列(11)- Cypress 编写和组织测试用例篇 之 动态生成测试用例全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/poloyy

今天的关于Cypress系列41- Cypress 的测试报告的分享已经结束,谢谢您的关注,如果想了解更多关于Cypress系列-使用npm命令搭建cypress环境、Cypress系列(0)- 如何学习 Cypress、Cypress系列(10)- Cypress 编写和组织测试用例篇 之 动态跳过测试用例、Cypress系列(11)- Cypress 编写和组织测试用例篇 之 动态生成测试用例的相关知识,请在本站进行查询。

本文标签:

上一篇Cypress系列(28)- scrollTo() 命令详解(scroll compressor)

下一篇Cypress系列(29)- 获取页面全局对象的命令(获取页面所有的checkbox怎么做)