1 Allure简介
Allure是一个著名的开源测试报告框架。在GitHub上,Allure的Star超过了1500个。Allure生成测试报告分为两步:
- 测试执行阶段:Allure适配器保存测试执行信息到XML文件中。Allure的适配器支持与Java、Python、JavaScript、Ruby、Groovy、PHP、.NET和Scala语言中流行的测试框架集成。对于Java而言,Allure可与JUnit 4、JUnit 5、TestNG、Cucumber JVM和Selenide集成。
- 报告生成阶段:可通过使用命令行工具、CI插件和构建工具来将XML文件转换为HTML报告。使用命令行工具通过allure serve命令生成并打开测试报告时,Allure会默认使用Jetty作为服务器,使用默认浏览器打开测试报告。
2 集成TestNG
- 创建Maven工程TestNG Allure(可自行命名),在工程src/test目录新增resources目录,在resources目录新增allure.properties文件,在allure.properties文件新增以下配置:
allure.results.directory=target/allure-results
- 在工程pom.xml文件的<project>标签中新增以下配置:
<properties>
<aspectj.version>1.9.5</aspectj.version>
</properties>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
- 在工程src/test目录新增com.lujiatao.testng.allure包(可自行命名),在com.lujiatao.testng.allure包新增TestNGWithAllure类(可自行命名),在TestNGWithAllure类新增以下代码:
package com.lujiatao.testng.allure;
import io.qameta.allure.Description;
import io.qameta.allure.Severity;
import io.qameta.allure.SeverityLevel;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class TestNGWithAllure {
@BeforeClass
public void setUp() {
System.out.println("setUp");
}
@Test(description = "测试用例_001描述(TestNG)")
@Severity(SeverityLevel.CRITICAL)//Allure用例级别
public void testCase_001() {
System.out.println("testCase_001");
}
@Test
@Description("测试用例_002描述(Allure)")
@Severity(SeverityLevel.NORMAL)
public void testCase_002() {
System.out.println("testCase_002");
}
}
Allure自带很多注解,以上只演示了@Description和@Severity的用法,更多可参考Allure官方文档。
- 执行mvn clean test执行测试用例。
-
执行allure serve target\allure-results生成并打开测试报告(命令行工具安装见文末“4 (附)命令行工具安装”)。
命令行工具生成的测试报告
3 集成Jenkins
Jenkins安装和使用不在本文介绍范围,可自行参考相关文章。
- 安装Allure插件。
-
进入“Global Tool Configuration”,点击“Allure Commandline installations... → Add Allure Commandline”,填写Name、选择Version。
Jenkins全局配置 - 在Jenkins创建TestNGWithAllure Maven项目(可自行命名),将工程TestNG Allure代码上传到SVN(也可用Git)。
-
选择Subversion,填写Repository URL、选择Credentials(没有凭证的话新建一个)。
代码地址和凭证配置 -
填写Goals and options。
Maven命令配置 -
点击“Add post-build action”,选择“Allure Report”,填写Path。
Allure测试报告路径配置 -
触发构建,在TestNGWithAllure项目里可以看到Allure的入口。
Jenkins的Allure入口 -
进入后可以看到与命令行工具生成并打开测试报告的结果是一致的。
Jenkins生成的测试报告
4 (附)命令行工具安装
命令行工具安装方式有多种,这里以Windows为例使用压缩包方式安装。
- 安装JRE。
- 下载命令行工具压缩包,下载地址:http://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.1/allure-commandline-2.13.1.zip
- 解压到D:\Program Files目录(也可以用其他目录)。
- 编辑系统变量Path,追加以下路径:
;D:\Program Files\allure-2.13.1\bin
- 打开CMD窗口,执行allure --version回显2.13.1表示安装成功。
5 参考文献
Allure Framework:https://docs.qameta.io/allure/