收益
- 不用再通過指令行釋出
- 測試環境穩定,可以重複執行
- 可視化測試報告和測試覆寫率
- 配合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設計與實作
步驟
- 下載下傳源碼
- 執行測試
- 釋出測試覆寫率報告
- 釋出測試報告
腳本
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執行
配置任務

jenkins控制台建立item
輸入任務名稱demo-auto-test,選擇Pipeline後,點“确定”按鈕,進入配置任務頁面
選擇Pipeline script from SCM後,顯示SCM下拉選擇框如下
選擇Git後,顯示Repository标簽和Repository URL輸入框如下
Repository URL輸入https://gitee.com/fastjrun/demo.git
腳本路徑輸入demo-jacoco-report/ut.groovy
點“儲存”按鈕後,這個自動化測試任務就配置好了
任務執行
以參考樹莓派4B基于docker搭建devops平台首次部署的jenkins在安裝jacoco和testng plugin插件後執行本任務,是可以成功執行的。
執行效果
任務執行成功後,重新整理任務首頁,會發現任務首頁會顯示TestNG Results和Coverage Trend菜單,以及最新的測試結果和Code Coverage Trend圖如下