以前嘗試使用過testNG自帶的測試報告、優化過reportNG的測試報告,對這兩個報告都不能滿意。後經查找資料,發現有個神器:html
Allure(已經有allure2了,筆者使用的就是allure2),生成的測試報告與上述兩種對比,簡直完美!先上個測試報告的圖表,給你們直觀感覺下:java
接下來教你們來使用Allure,生成本身高大上的測試報告,帶有失敗用例截圖、測試步驟和測試說明信息。git
第一步,在maven中添加依賴並進行相應的配置:github
<properties> <aspectj.version>1.8.10</aspectj.version> </properties> <dependencies> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> <version>2.6.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.10</version> <configuration> <!--設置參數命令行--> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" </argLine> <systemPropertyVariables> <!--是否忽略html,解釋見下圖。與以後在reportNg報告上顯示截圖相關。當前已經使用allure了,這裏能夠直接去掉啦--> <org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output> </systemPropertyVariables> <!--測試失敗後,是否忽略並繼續測試--> <testFailureIgnore>true</testFailureIgnore> <argLine> -Dfile.encoding=UTF-8 </argLine> <suiteXmlFiles> <!--表明的是要執行的測試套件名稱--> <suiteXmlFile>src/test/resources/testNG.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin>
第二步:在Jenkins中安裝Allure的插件【系統管理】-【插件管理】-【可選插件】中下載並安裝Allure,安裝後重啓。安裝成功後,可在【系統管理】-【插件管理】-【已安裝插件】中看到apache
第三步:到girhub上下載Allure2 ,地址:https://github.com/allure-framework/allure2/releasesmaven
下載以後解壓到相應目錄下,如:ide
第四步,在Jenkins的【系統管理】-【全局工具配置】中設置allure的安裝地址:工具
保存便可。測試
此時經過Jenkins構建並執行測試代碼後,就能夠看到Allure的測試報告了。以上,完成了Allure的基本配置。優化
好啦,Allure可使用了,接下來,咱們挖掘下該工具其餘好用的點。
第一:生成失敗用例截圖:
第一步:在測試類上,添加Listeners的註解
第二步:實現本身的用例的監聽,監聽到以後進行截圖
public class TestFailListener extends TestListenerAdapter { @Override public void onTestFailure(ITestResult result) { takePhoto(); } @Attachment(value = "screen shot",type = "image/png") public byte[] takePhoto(){ byte[] screenshotAs = ((TakesScreenshot)BaseTester.driver).getScreenshotAs(OutputType.BYTES); return screenshotAs; } }
使用Allure的attachment註解,便可實現報告中顯示截圖的需求。
第三步,將監聽配置到testNG的配置文件中
截圖效以下圖:
第二:顯示測試描述信息。
在測試報告中,咱們指望能夠看到每一個case的描述信息,可使咱們的測試過程更加清晰。
只須要在Test註解中,給description進行賦值便可:
效果以下圖:
是否是很心動,趕忙動手試試吧!!