基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

今天是教師節,先祝天下所有的教師節日快樂。對於程序員來說,可能我們的教師還包含了百度/谷歌/stackoverflow這些:)

在前面的文章中,我們介紹了使用Allure和Extent report做測試報告的生成與展示。在實際工作當中,這些是需要和持續集成結合起來才能最大化的發揮自動化測試和測試報告的功效。這裡,我們基於Jenkins和Maven來介紹執行TestNG測試用例並用Allure/Extent report配置報告輸出的步驟。

安裝插件

首先我們在Jenkins的插件管理裡安裝插件TestNG和Allure(Extent report並沒有插件)

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

安裝插件的過程中,如果速度較慢,可以更改升級站點的地址:

點擊“插件管理” - “高級”,然後將升級站點更改為https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json即可

配置Allure

前面的文章我們提到,Allure報告的本質是使用基於TestNG的報告生成其所需要的文件,然後調用命令行工具生成html報告,所以我們需要配置Allure的工具地址:

點擊“系統管理” - “全局工具配置”,找到Allure:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

如果勾選自動安裝,則Jenkins會自動下載並在服務器上進行安裝;否則,需要手工指定Allure命令行工具的地址。我們選擇自動安裝:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

新建任務

在Jenkins中新建一個任務,我們選擇“自由風格的軟件項目",這裡順帶主要說下如何配置Jenkins執行mvn test,關鍵點如下:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

  • 首先在“構建”裡選擇“調用Maven頂層目標”
  • “目標”裡面寫入“test”,相當於最後我們執行的是mvn test
  • 然後在屬性裡面輸入xmlFileName=allure.xml。這個是由我們的pom.xml決定的。在pom裡面,我們設置如下:
build>
<defaultgoal>test/<defaultgoal>
<plugins>
<plugin>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-maven-plugin/<artifactid>
/<plugin>
<plugin>
<groupid>org.apache.maven.plugins/<groupid>
<artifactid>maven-surefire-plugin/<artifactid>
<version>3.0.0-M3/<version>
<configuration>
<suitexmlfiles>
<suitexmlfile>TestSuite/${xmlFileName}/<suitexmlfile>
/<suitexmlfiles>
<argline>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
/<argline>
/<configuration>
/<plugin>
/<plugins>

也就是在執行mvn test的時候,調用maven-surefire-plugin執行testng的xml文件,而執行的xml文件,是由<suitexmlfiles>節點確定,我們的值為TestSuite/${xmlFileName},注意這個xmlFileName是個變量,可以通過mvn test -DxmlFilename=***的形式傳入,而Jenkins對於該方式的支持,就是在截圖裡面的屬性裡了。/<suitexmlfiles>

最後我們在“構建後操作”裡面增加Allure的報告輸出:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

此中的關鍵就是allure-results的地址,一般都是在項目的根目錄下。我這個是因為有子項目,所以項目的路徑為web/allure-results。

驗證

現在我們點擊“立即構建”,從console output裡面可以看到整個測試的執行步驟。執行完畢之後,在構建結果和構建歷史頁面會有Allure的鏈接:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

點擊即可查看Allure的報告信息了。

配置extent report

首先安裝插件html publisher:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

接下來我們複用前面創建的任務,但是在“構建後操作”選擇“Publish HTML reports”:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

HTML directory to archive指明html報告所在的目錄;index page指明即將顯示的html報告的文件名,因為我們的報告是根據日期動態生成的,所以這裡我寫入*.html。構建完成之後,可以在構建結果頁面看到查看報告的鏈接:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

點擊具體的html文件即可查看:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

默認情況下,大家看到的extent report不能正確顯示,這是由於jenkins的安全策略導致,我們可以先安裝groovy postbuild這個插件

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

然後增加構建後操作執行groovy腳本:

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

此時,extent report便可正常顯示。

基於Jenkins、Maven、TestNG、Allure和Extent report的持續測試

總結

文章介紹了在jenkins中配置使用Allure和Extent report的方法,並一起介紹了基於Maven和TestNG的持續測試方法,實戰性高,是日常工作必備技能。


分享到:


相關文章: