iTesting,爱测试,爱分享
转眼之间,你不知道的Cypress系列已经到第12篇了。在Cypress中国群内、在公众号iTesting里,我每天都能看到大量关于Cypress的使用讨论和私下问询。这让我感到无比荣幸(买了书的同学们,公众号回复你的微信号,拉你到Cypress中国群)。
今天是你不知道的Cypress系列(12) -- 测试报告Allure。
测试报告至少需要包括项目总览和执行情况分析这两方面的信息。
针对每一次测试运行,测试报告应该提供最基本的测试分析,包括:
这些不同维度的分析图,可用从各个层面来反映软件的质量情况。
Cypress支持多种类型的测试报告,主要包括如下几类:
Allure 报告是基于标准的 xUnit 结果输出,再添加补充数据而生成的,其报告的生成基于如下两个步骤。
Allure 报告之所以受到开发、测试,甚至管理人员的推崇,是因为它有如下明显的特点。
可以将测试失败划分为 bug 和损坏的(Broken)测试,还可以配置日志、步骤、固定装置、附件、时间、历史记录,以及与 TMS 的集成和 Bug 跟踪系统,方便将 Task 与负责 Task 开发人员和测试人员绑定,从而使开发和测试人员第一时间掌握所有信息。
包括本次测试涵盖了哪些功能,Bug 在哪个 case 用例中被发现,以及整体测试用例、单条测试用例的执行时间等信息。
下图是一个Allure测试报告的大概预览。
虽然我比较喜欢简洁的测试报告,甚至一度拒绝使用Allure测试报告(我觉得它更像一个网站而不是一个报告),但是Cypress中国群很多群友都反应,他们比较习惯使用Allure,更重要的是,Allure拿来做汇报很合适,好吧,我们都是面向老板肯定编程的打工人。
下面介绍Allure集成至Cypress测试框架的步骤。
1. 安装
首先,你需要安装Allure Library。
// Mac 安装
$ brew install allure
// Windows 安装
scoop install allure
其次,你要安装Java 8(用于Allure library)。
https://www.oracle.com/java/technologies/downloads/#java8
最后,你要在项目根目录下安装allure。
// 关注公众号iTesting,跟万人测试团一起成长
yarn add -D @shelex/cypress-allure-plugin
2. 设置
Allure安装好后,需要进行设置:
设置cypress/plugins/index.js。
/// <reference types="@shelex/cypress-allure-plugin" />
设置cypress/support/index.js。
需要注意的是:
如果你使用了typescript,则需更新tsconfig.json如下。
"include": [
"../node_modules/@shelex/cypress-allure-plugin/reporter",
"../node_modules/cypress"
]```
与其它语言下的Allure一样,Allure有很多配置项可以定义:
变量名 | 描述 | 默认值 |
---|---|---|
allure | enable Allure plugin | false |
allureResultsPath | customize path to allure results folder | allure-results |
tmsPrefix | just a prefix substring or pattern with * for links from allure API in tests to test management system | `` |
issuePrefix | prefix for links from allure API in tests to bug tracking system | `` |
allureLogCypress | log cypress chainer (commands) and display them as steps in report | true |
allureLogGherkin | log gherkin steps from cucumber-preprocessor | inherits allureLogCypress value if not specified directly |
allureAttachRequests | attach cy.request headers, body, response headers, respose body to step automatically | false |
allureOmitPreviousAttemptScreenshots | omit screenshots attached in previous attempts when retries are used | false |
allureClearSkippedTests | remove skipped tests from report | false |
allureAddAnalyticLabels | add framework and language labels to tests (used for allure analytics only) | false |
allureAddVideoOnPass | attach video to report for passed tests | false |
通过cypress.json来使用
// 关注公众号iTesting,跟万人测试团一起成长
{ "baseUrl": "http://localhost:7079/login",
"env": {
"env": "qa",
"allureResultsPath": "./iTesting/results"
}
}
通过在”env“变量下定义allure的各项参数即可。
运行时,直接采用如下命令即可:
直接通过命令行使用
yarn cypress run --env allure=true,allureResultsPath=iTesting/results
代码执行完毕后,allure会生成一个测试报告文件夹iTesting。
查看Allure测试报告很简单,待测试运行完毕后,在项目根目录下执行:
allure serve ./iTesting/results
然后你就会看到一个打开的浏览器,以及allure测试报告的内容了:
Cypress有很多奇淫巧技, 我已经总结超过百篇
别走开,下一篇更精彩!