自动化测试报告(一)——Allure2简介
Allure2是一个开源测试报告框架,能够生成简洁美观的自动化测试报告输出
简介
Allure是自动化测试报告框架,相比junit添加了许多功能,生成的报告更美观,支持多种编程语言,如Java, PHP, Ruby, Python, Scala and C#,支持命令行、Jenkins、Maven等方式生成报告
运行过程
Allure生成报告分成两个阶段
-
第一步,测试执行阶段
附加到测试框架的称为适配器
adapter
的小型库将有关已执行测试的信息保存到XML文件中,这些库支持主流的编程语言Java,PHP,Ruby,Python,Scala,C#等以Java来说,支持junit4、junit5、TestNG、Cucumbere JVM、Selenide
-
第二步,生成报告阶段
XML文件将转换为HTML报告。这可以通过命令行工具,CI插件或构建工具来完成
安装
安装Windows版本
-
解压,将解压后的路径配置到系统环境变量,新建系统变量,名称为
ALLURE_HOME
,值为解压后的路径,如D:\Program Files\allure-2.9.0
并把%ALLURE_HOME%\bin
添加到path
中,注意使用英文分号和其它变量值隔开ALLURE_HOME D:\Program Files\allure-2.9.0 Path %ALLURE_HOME%\bin
-
验证安装
$ allure --version 2.9.0
生成报告
生成报告
在生成报告之前,需要运行测试以获取一些基本的测试结果数据,测试结果数据可以通过添加Allure库后执行测试生成的测试结果数据,后面会提到。另外,测试结果也可以由流行的测试框架生成的junit样式的xml报告,Maven生成的junit和testNG报告数据一般在target\surefire-reports
目录下,Allure根据这些报告来生成新的测试报告
-
从Allure结果数据生成报告,需要添加集成相应的库执行测试后才会生成测试结果到
allure-results
$ allure generate <PROJECT_PATH>\target\allure-results\
-
从Junit测试结果生成报告,经过测试,以下路径都可以作为报告生成的来源数据,但是报告的详细程度都不如从
target\allure-results
生成的全面,生成的报告是比较简单的,只包含一些基本信息,缺少Allure的高级功能#这个命令生成报告过程中会报错,但是还是可以成功生成报告 $ allure generate <PROJECT_PATH>\target\surefire-reports\ $ allure generate <PROJECT_PATH>\target\surefire-reports\Suite01\ $ allure generate <PROJECT_PATH>\target\surefire-reports\xml\ $ allure generate <PROJECT_PATH>\target\surefire-reports\junitreports\
如果不指定报告的生成目标路径,生成的报告会保存在当前目录下的allure-report
文件夹,可以使用-o
参数指定生成报告目标路径
$ allure generate <directory-with-results> -o <directory-with-report>
打开已生成的报告
生成报告后,在系统默认浏览器打开报告
$ allure open <directory-with-report>
生成报告并打开报告
使用allure serve
命令生成报告并启动一个本地服务器展示报告。这将从提供的路径中找到数据并在临时文件夹中生成报告,然后创建本地Jetty服务器实例,并在默认浏览器中打开测试报告,这个命令相当于allure generate
和allure open
两个命令合到一起
$ allure serve /home/path/to/project/target/surefire-reports/
报告结构
- 总览 概述页面显示了整个测试执行统计信息以及测试参数列表。带有仪表盘和小部件。可以拖动和配置
- 类别 查看缺陷分类结果
- 测试套 按套件和类分组的测试结果
- 图表 展示测试用例执行情况百分比环形图、测试用例优先级条形图、测试用例耗时条形图、趋势图等
- 时间刻度 可视化测试用例耗时情况
- 功能 对于行为驱动的方法,根据Epic,Feature和Story标记对测试结果进行分组
- 包 测试结果的树状布局,按不同的包进行分组
功能特性
-
可以按故事
stories
或功能features
对测试进行分组、附加文件、并通过一组自定义步骤和其他功能分发断言 -
标记不稳定测试,给方法或类添加
@Flaky
注解标记为不稳定的测试,标记的方法或类再测试报告中会显示一个炸弹图标@Flaky public void aTestWhichFailsFromTimeToTime { ... }
-
添加环境信息 要向Environment小部件添加信息,只需在生成报告之前将environment.properties(或environment.xml)文件创建到allure-results目录
environment.properties
Browser=Chrome Browser.Version=63.0 Stand=Production
environment.xml
<environment> <parameter> <key>Browser</key> <value>Chrome</value> </parameter> <parameter> <key>Browser.Version</key> <value>63.0</value> </parameter> <parameter> <key>Stand</key> <value>Production</value> </parameter> </environment>
-
缺陷分类,默认将缺陷分成两类
- 产品缺陷 由被测对象产生 failed test
-
测试缺陷 由测试代码产生 broken test
要自定义缺陷,请在生成报告之前将categories.json文件添加到allure-results目录
categories.json
[ { "name": "Ignored tests", "matchedStatuses": ["skipped"] }, { "name": "Infrastructure problems", "matchedStatuses": ["broken", "failed"] "messageRegex": ".*bye-bye.*", }, { "name": "Outdated tests", "matchedStatuses": ["broken"] "traceRegex": ".*FileNotFoundException.*", }, { "name": "Product defects", "matchedStatuses": ["failed"] }, { "name": "Test defects", "matchedStatuses": ["broken"] } ]