問題描述
項目CI系統引入了Jenkins2.0iPipeline 框架(plll庫)之后應該說提升了很多幸福感,其中一個很重要的方面來源于框架已經為用戶提供了報告和郵件的基本格式,顯示直觀且高效。
一個典型的報告和郵件的基本格式舉例如下圖所示:
從圖中可以看出,各個步驟的總覽信息格式化被顯示,執行報告和鏈接,制品庫報告和鏈接以及運行時間一覽無余。
但正是由于plll庫已經將報告和郵件的樣式格式化了,因此用戶在基本報告樣式的基礎上無法擴展報告和郵件展示的內容。這在本項目若干用例測試的結果報表需要附加到報告和郵件的情況下顯得不是很方便
因此我們決定將報告和郵件展示變為可擴展模式,可以由用戶在基本報告格式以外自由添加其他數據并顯示,我們稱該功能為快捷報告追加(QuickReport)
帶著這個問題,我們對plll庫做出了對應的優化并實踐之。
優化實踐
優化plll庫源代碼,加入QuickReport功能:
def quickReportContent =""
try{
if(context.args.param.quick_report){
for(int i=0; i
{
def report = context.args.param.quick_report[i]
if(report.report_dir && report.report_file && report.report_name
&&(report.report_always || context.message=='')){
def quickReportFile = report.report_dir +"/"+ report.report_file
quickReportContent = readFile quickReportFile
quickReportContent ="
"+ quickReportContent // 加一條淺綠色的分界線
echo "quickReport內容是:"+ quickReportContent
}
}
}
}
}
catch(Exception ex){
echo ex.getMessage()
getData().result='failure'
getData().message+="[ERROR] PublishReportAll ${ex.getMessage()} \n"
}
html = html + quickReportContent
使用舉例:
對于用戶來說,只需要在plll接口的param參數列表中配上quick_report參數,用來指明需要擴展的報告內容和文件名等參數,則報告或郵件中將添加用戶的擴展內容并顯示,示例代碼如下:
plll.Test("check_xxx_case","case檢查",[
run_dir:"${verifyScriptPath}/${runSubPath}",
run_execute:{ run "${cmd}"},
verify_dir:"${->env.OUTPUT_PATH}/",
verify_after: tmp_move_shell_name,
verify_execute: tmp_verify_shell_log_name,
param:[
report_file:[[report_dir:"${->env.OUTPUT_PATH}/", report_file:"${publishLogName}",report_name:"case檢查_report", report_always:true]],
quick_report:[[report_dir:"${->env.OUTPUT_PATH}/", report_file:"${quickReportName}",report_name:"case檢查_quick_report", report_always:true]]
]
]);
由代碼可見,我們在quick_report的參數列表中配置了用戶快捷報告所載目錄,報告文件名以及報告名,框架即可自動將用戶自定義報告附加到原基本表格下面,并以綠色分割線分割。
效果展示:
例如對本項目而言,測試任務中每次都有一個叫做報文CASE測試報告需要直觀地呈現給用戶查看,而不需要讓用戶點擊鏈接自行查看,因此我們可以將其作為QuickReport擴展到郵件和Jenkins匯總報告中:
Jenkins匯總展示報告如下,用戶自定義表格已經擴展在下方,如下圖所示:
同理郵件中也被擴展顯示了,如下圖所示:
-
編程
+關注
關注
88文章
3592瀏覽量
93594 -
Pipeline
+關注
關注
0文章
28瀏覽量
9345
原文標題:干貨 | Jenkins2.0 Pipeline框架(iPipeline)優化實踐之路(二)
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論