一、本地Allure安裝
1、Allure安裝包下載
百度網盤鏈接: https://pan.baidu.com/s/1sYWTYSbz5ahT5-MCwELpRA 提取碼: 6ywd
下載后放置安裝路徑解壓即可,例:D:\Program Files\allure-2.7.0
2、Allure環境變量配置
環境變量Path增加allure安裝路徑\allure-2.7.0\bin,例:D:\Program Files\allure-2.7.0\bin;
3、驗證Allure是否安裝成功
cmd命令輸入 allure --version,顯示版本信息則安裝成功
二、增加TestNg.xml
在對應模塊與pom文件同目錄下增加TestNg.xml文件,如下所示:
TestNg.xml內容如下,若有新增其他測試類需在classes節點下增加對應的class路徑文件:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="Test">
<classes>
<class name="demo.testng.MethodTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
三、配置pom.xml
1、
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--TestNg Aullre Report使用-->
<aspectj.version>1.9.2</aspectj.version> <!--AspectJ是一個基於Java語言的AOP框架-->
<allure.version>2.13.0</allure.version>
<xmlFileName>TestNg.xml</xmlFileName>
</properties>
2、
<!--TestNg-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<!--Allure報告依賴包-->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>${allure.version}</version>
<scope>test</scope>
</dependency>
<!--Allure報告生成插件依賴包-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
3、
<build>
<finalName>${project.name}</finalName>
<plugins>
<!--Allure報告構建生成-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<!--生成allure-result的目錄-->
<systemProperties>
<!--是否忽略html,解釋見下圖。與之后在reportNg報告上顯示截圖相關。當前已經使用allure了,這里可以直接去掉啦-->
<!--<org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output>-->
<!--定義輸出在項目 target 目錄-->
<property>
<name>allure.results.directory</name>
<value>target/allure-results</value>
</property>
</systemProperties>
<!--測試失敗后,是否忽略並繼續測試-->
<testFailureIgnore>true</testFailureIgnore>
<argLine>
-Dfile.encoding=UTF-8
</argLine>
<suiteXmlFiles>
<!--該文件位於工程根目錄時,直接填寫名字,其它位置要加上路徑-->
<suiteXmlFile>${xmlFileName}</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
四、TestNg測試用例編寫
應用場景:對獲取身份證年齡方法進行測試
增加測試類如下:
public class MethodTest {
/**
* 測試場景:根據身份證獲取年齡
* 多個用例數據,驗證是否計算正確
* 測試數據(身份證)+ 預期結果(年齡)
*/
@DataProvider
public Object[][] data(){
return new Object[][]{
{"350421201707052265",2,"生日小於當前月日"},//臨界點
{"350421201707032265",3,"生日等於當前月日"},//臨界點
{"350421201907042265",1,"未滿1歲"}//不滿一歲按一歲算
};
}
@Test(dataProvider = "data",description = "根據身份證獲取年齡")
//輸入參數值需按順序一一對應dataprovider填寫的數據內容順序
public void testIdcardUtil(String testData,int expectedResult,String message){
int testResult = IdcardUtil.getAgeByIdCard(testData);
Assert.assertEquals(testResult,expectedResult,message);
}
}
方法類如下:
public class IdcardUtil {
public static int getAgeByIdCard(String idCard) {
int iAge = 0;
String year = idCard.substring(6, 10);
Calendar cal = Calendar.getInstance();
int iCurrYear = cal.get(Calendar.YEAR);
iAge = iCurrYear - Integer.valueOf(year);
return iAge;
}
}
五、TestNg測試用例集執行
運行maven test執行測試用例。
操作步驟:Idea右側窗口點開Maven Projects,找到對應模塊點擊test,執行完成后即可在模塊目錄下找到target/allure-results
allure報告文件:
六、查看allure報告
方法1:allure serve target/allure-results直接查看報告
1)cmd命令進入到target所在目錄
例:本次的duceap-boot-test-starter-metadata
2)執行命令查看報告
allure serve target/allure-results
命令說明:該命令啟動的端口是隨機分配,若需要使用固定端口可加入-p 2020,例:allure serve -p 2020 target/allure-results
3)命令執行時會自動使用默認瀏覽器打開地址,需要使用谷歌瀏覽器才能正常展示。
方法2:allure生成報告並打開查看
1)allure生成報告命令
allure generate target/allure-results/(源文件夾路徑) -o target/allure-reports/(目標文件夾路徑,需是空文件夾,無需手動創建,生成會自動創建)
2)打開生成的報告
有3種方式打開生成報告:allure open命令、tomcat啟動應用、開發工具打開(idea或pycharm),具體操作如下:
1、Allure打開報告命令
allure open allure-reports
2、tomcat啟動應用
報告放入tomcat的webapps中,執行bin\startup.bat啟動應用,訪問對應路徑端口即可
3、開發工具打開(例:idea)
打開文件夾,右擊index.html>Open in Browser>Chrome
七、Spring整合testng
1、加入@SpringBootTest
2、AbstractTestNGSpringContextTests:測試類只有繼承了該類才能擁有注入實例能力,否則注入報錯