天天看點

Jenkins 內建 allure 測試報告工具

allure 基于已有的測試報告資料進行進一步的加工,美化等操作,相當于做了一次資料格式轉換。allure 支援多種語言的多種測試架構,比如 Java 的 jUnit4、jUnit5、TestNg 等等。

本文主要介紹如何在 Jenkins 中內建 allure 測試報表工具,在每次項目自動化測試完成後,用 allure 生成經過加工後的測試報告。我們以 java 工程的 TestNg 測試為例,處理 TestNg 生成的測試報告。

  • Jenkins 安裝 allure 插件

    全局工具配置:

    Jenkins 內建 allure 測試報告工具
  • Jenkinsfile 添加 allure 代碼
script {
    allure jdk: '', report: "target/allure-report-unit", results: [[path: "target/surefire-reports"]]
}
           
`target/allure-report-unit` 參數:allure 報告生成路徑;
`target/surefire-reports` 參數:測試報告原始路徑;
           
  • Jenkins 平台檢視 allure 報告

    在 allure 成功內建到 Jenkins 後,allure 每次處理完成,在 Jenkins job 頁面都可以看到 allure 的圖示,點選圖示即可檢視報告詳細資訊:

    Jenkins 內建 allure 測試報告工具
    Jenkins 內建 allure 測試報告工具

遇到問題及解決方法

問題:

allure 在 Jenkins pipline 中生成報表時報目錄權限問題:java.nio.file.AccessDeniedException

Jenkins 內建 allure 測試報告工具

原因:

jenkins k8s pod 執行 job 時預設使用者為 jenkins,但是 pipeline 中調用的容器生成的檔案的屬主是 root。

解決方法:

配置 jenkins k8s 插件模版,添加安全配置,運作使用者設定為 root

https://groups.google.com/forum/#!topic/jenkinsci-users/GR0n8ZkCJ-E

pod 配置(spec 下):

securityContext:
    runAsUser: 0
    fsGroup: 0
           

參考文檔

https://docs.qameta.io/allure/

繼續閱讀