天天看點

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

收益

  • 不用再通過指令行釋出
  • 測試環境穩定,可以重複執行
  • 可視化測試報告和測試覆寫率
  • 配合git的webhook使用,代碼合入前觸發,執行結果可作為代碼合入準入參考

準備

  • linux伺服器已安裝jenkins、git、openjdk8和maven3.5+已就緒
  • git服務
  • 一個維護測試用例的Java項目

jenkins和git服務可參考樹莓派4B基于docker搭建devops平台進行準備。

本實踐環境中使用的jenkins就是參考樹莓派4B基于docker搭建devops平台進行搭建的,參考文檔中使用的jenkins鏡像已經内置git、openjdk8和maven3.8.4,且同時支援樹莓派和普通x86伺服器;demo是一個快嘉腳手架項目,該項目維護了基于testng開發的測試用例。如您也準備好了一個維護測試用例的Java項目,可以将它 push到搭建好的git伺服器,如gogs;或者任何可選的代碼托管平台,如github、gitee、codeup、coding等等。

pipeline設計與實作

步驟

  1. 下載下傳源碼
  2. 執行測試
  3. 釋出測試覆寫率報告
  4. 釋出測試報告

腳本

node {
    stage('git chekout') {
        git branch: "master", url: 'https://gitee.com/fastjrun/demo.git'
    }
    stage('UT') {
        sh 'mkdir -p demo-base/src/main/java && mvn clean verify -pl demo-jacoco-report -am -Put -Dbdgc.skip=false'
    }
    stage('parallel publish report') {
        parallel (
                'jacoco': {
                    jacoco()
                },
                'testng-result': {
                    step([$class: 'hudson.plugins.testng.Publisher', reportFilenamePattern: 'target/surefire-reports/testng-results.xml'])
                }
        )
    }
}
           

插件準備

jenkins需安裝插件:jacoco、testng。

pipeline執行

配置任務

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

jenkins控制台建立item

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

輸入任務名稱demo-auto-test,選擇Pipeline後,點“确定”按鈕,進入配置任務頁面

選擇Pipeline script from SCM後,顯示SCM下拉選擇框如下

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

選擇Git後,顯示Repository标簽和Repository URL輸入框如下

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

Repository URL輸入https://gitee.com/fastjrun/demo.git

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

腳本路徑輸入demo-jacoco-report/ut.groovy

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告

點“儲存”按鈕後,這個自動化測試任務就配置好了

任務執行

以參考樹莓派4B基于docker搭建devops平台首次部署的jenkins在安裝jacoco和testng plugin插件後執行本任務,是可以成功執行的。

執行效果

任務執行成功後,重新整理任務首頁,會發現任務首頁會顯示TestNG Results和Coverage Trend菜單,以及最新的測試結果和Code Coverage Trend圖如下

pipeline執行個體-Java項目自動化測試并生成測試報告和測試覆寫率報告
測試報告
測試覆寫率

總結