1 Allure簡介
Allure是一個著名的開源測試報告框架青团。在GitHub上匾灶,Allure的Star超過了1500個。Allure生成測試報告分為兩步:
- 測試執(zhí)行階段:Allure適配器保存測試執(zhí)行信息到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
- 創(chuàng)建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官方文檔婶肩。
- 執(zhí)行mvn clean test執(zhí)行測試用例。
-
執(zhí)行allure serve target\allure-results生成并打開測試報告(命令行工具安裝見文末“4 (附)命令行工具安裝”)貌夕。
命令行工具生成的測試報告
3 集成Jenkins
Jenkins安裝和使用不在本文介紹范圍律歼,可自行參考相關文章。
- 安裝Allure插件啡专。
-
進入“Global Tool Configuration”险毁,點擊“Allure Commandline installations... → Add Allure Commandline”,填寫Name们童、選擇Version畔况。
Jenkins全局配置 - 在Jenkins創(chuàng)建TestNGWithAllure Maven項目(可自行命名),將工程TestNG Allure代碼上傳到SVN(也可用Git)慧库。
-
選擇Subversion跷跪,填寫Repository URL、選擇Credentials(沒有憑證的話新建一個)齐板。
代碼地址和憑證配置 -
填寫Goals and options吵瞻。
Maven命令配置 -
點擊“Add post-build action”,選擇“Allure Report”甘磨,填寫Path橡羞。
Allure測試報告路徑配置 -
觸發(fā)構建,在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目錄(也可以用其他目錄)。
- 編輯系統(tǒng)變量Path覆致,追加以下路徑:
;D:\Program Files\allure-2.13.1\bin
- 打開CMD窗口侄旬,執(zhí)行allure --version回顯2.13.1表示安裝成功。
5 參考文獻
Allure Framework:https://docs.qameta.io/allure/