問題描述
項(xiàng)目CI系統(tǒng)引入了Jenkins2.0iPipeline 框架(plll庫)之后應(yīng)該說提升了很多幸福感,其中一個(gè)很重要的方面來源于框架已經(jīng)為用戶提供了報(bào)告和郵件的基本格式,顯示直觀且高效。
一個(gè)典型的報(bào)告和郵件的基本格式舉例如下圖所示:
從圖中可以看出,各個(gè)步驟的總覽信息格式化被顯示,執(zhí)行報(bào)告和鏈接,制品庫報(bào)告和鏈接以及運(yùn)行時(shí)間一覽無余。
但正是由于plll庫已經(jīng)將報(bào)告和郵件的樣式格式化了,因此用戶在基本報(bào)告樣式的基礎(chǔ)上無法擴(kuò)展報(bào)告和郵件展示的內(nèi)容。這在本項(xiàng)目若干用例測試的結(jié)果報(bào)表需要附加到報(bào)告和郵件的情況下顯得不是很方便
因此我們決定將報(bào)告和郵件展示變?yōu)榭蓴U(kuò)展模式,可以由用戶在基本報(bào)告格式以外自由添加其他數(shù)據(jù)并顯示,我們稱該功能為快捷報(bào)告追加(QuickReport)
帶著這個(gè)問題,我們對plll庫做出了對應(yīng)的優(yōu)化并實(shí)踐之。
優(yōu)化實(shí)踐
優(yōu)化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內(nèi)容是:"+ quickReportContent
}
}
}
}
}
catch(Exception ex){
echo ex.getMessage()
getData().result='failure'
getData().message+="[ERROR] PublishReportAll ${ex.getMessage()} \n"
}
html = html + quickReportContent
使用舉例:
對于用戶來說,只需要在plll接口的param參數(shù)列表中配上quick_report參數(shù),用來指明需要擴(kuò)展的報(bào)告內(nèi)容和文件名等參數(shù),則報(bào)告或郵件中將添加用戶的擴(kuò)展內(nèi)容并顯示,示例代碼如下:
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的參數(shù)列表中配置了用戶快捷報(bào)告所載目錄,報(bào)告文件名以及報(bào)告名,框架即可自動將用戶自定義報(bào)告附加到原基本表格下面,并以綠色分割線分割。
效果展示:
例如對本項(xiàng)目而言,測試任務(wù)中每次都有一個(gè)叫做報(bào)文CASE測試報(bào)告需要直觀地呈現(xiàn)給用戶查看,而不需要讓用戶點(diǎn)擊鏈接自行查看,因此我們可以將其作為QuickReport擴(kuò)展到郵件和Jenkins匯總報(bào)告中:
Jenkins匯總展示報(bào)告如下,用戶自定義表格已經(jīng)擴(kuò)展在下方,如下圖所示:
同理郵件中也被擴(kuò)展顯示了,如下圖所示:
-
編程
+關(guān)注
關(guān)注
88文章
3628瀏覽量
93812 -
Pipeline
+關(guān)注
關(guān)注
0文章
28瀏覽量
9372
原文標(biāo)題:干貨 | Jenkins2.0 Pipeline框架(iPipeline)優(yōu)化實(shí)踐之路(二)
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論