最近領導讓我找一個可以每次打包自動生成測試用例的東西,jenkins或者idea都可以,
最后找到了這個allure,也踩了很多坑,廢話不多說!,總結一下:
1 使用原生allure
添加依賴:
<!-- 依賴reportNg 關聯testNg-->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-testng-adaptor</artifactId>
<version>1.3.6</version>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 依賴Guice -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.0-BETA14</version>
<scope>test</scope>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<!--生成allure-result的目錄-->
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>./target/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
這塊配置生成目錄一定要正確,最好在target下面,默認會是surefile-results目錄,可自己查看
使用特定注解編寫測試代碼:
@Feature("前線突擊測試")
public class Test01 {
@Test(description = "侯征測試")
@Story("測試發券")
@Description("主要測試四種券發送")
@Step("測試步驟....")
public void failedTest(){
Assert.assertEquals(2,2);
}
}
打包查看
項目根目錄,使用命令:
mvn clean test
allure serve target/allure-results
會自動打開瀏覽器:

2 使用jenkins插件集成allure:
安裝插件

配置allure


這里目錄一定要和自己配置的目錄一樣,可先查看打包后在哪個目錄,確保一定正確,不然用例報告沒有數據
pom添加依賴
<!-- 依賴reportNg 關聯testNg-->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-testng-adaptor</artifactId>
<version>1.3.6</version>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 依賴Guice -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.0-BETA14</version>
<scope>test</scope>
</dependency>
pom添加插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<!--生成allure-result的目錄-->
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>./target/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
這里這個目錄很重要,最好這里直接指定,不使用默認的.
編寫代碼
@Feature("前線突擊測試")
public class Test01 {
@Test(description = "侯征測試")
@Story("測試發券")
@Description("主要測試四種券發送")
@Step("測試步驟....")
public void failedTest(){
Assert.assertEquals(2,2);
}
}
jenkins查看
注意點:生成內容為空問題(一般是路徑不對):
我用的高版本,所以如果不寫生成路徑,默認是target/surefire-reports目錄下,之前一直搞錯了路徑,所以一直有問題,
關於這個問題,如果為空,先去查看打包后的目錄,看看生成的index.html這些在哪個目錄,再看自己配置的對不對,
我就是被這個給坑了,網上說的都沒有這一點,一定記住!


