最近領導讓我找一個可以每次打包自動生成測試用例的東西,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這些在哪個目錄,再看自己配置的對不對,
我就是被這個給坑了,網上說的都沒有這一點,一定記住!