問(wèn)題描述
項(xiàng)目CI系統(tǒng)引入了Jenkins2.0iPipeline 框架(plll庫(kù))之后應(yīng)該說(shuō)提升了很多幸福感,其中一個(gè)很重要的方面來(lái)源于框架已經(jīng)為用戶(hù)提供了報(bào)告和郵件的基本格式,顯示直觀且高效。
一個(gè)典型的報(bào)告和郵件的基本格式舉例如下圖所示:
從圖中可以看出,各個(gè)步驟的總覽信息格式化被顯示,執(zhí)行報(bào)告和鏈接,制品庫(kù)報(bào)告和鏈接以及運(yùn)行時(shí)間一覽無(wú)余。
但正是由于plll庫(kù)已經(jīng)將報(bào)告和郵件的樣式格式化了,因此用戶(hù)在基本報(bào)告樣式的基礎(chǔ)上無(wú)法擴(kuò)展報(bào)告和郵件展示的內(nèi)容。這在本項(xiàng)目若干用例測(cè)試的結(jié)果報(bào)表需要附加到報(bào)告和郵件的情況下顯得不是很方便
因此我們決定將報(bào)告和郵件展示變?yōu)榭蓴U(kuò)展模式,可以由用戶(hù)在基本報(bào)告格式以外自由添加其他數(shù)據(jù)并顯示,我們稱(chēng)該功能為快捷報(bào)告追加(QuickReport)
帶著這個(gè)問(wèn)題,我們對(duì)plll庫(kù)做出了對(duì)應(yīng)的優(yōu)化并實(shí)踐之。
優(yōu)化實(shí)踐
優(yōu)化plll庫(kù)源代碼,加入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 // 加一條淺綠色的分界線(xiàn)
echo "quickReport內(nèi)容是:"+ quickReportContent
}
}
}
}
}
catch(Exception ex){
echo ex.getMessage()
getData().result='failure'
getData().message+="[ERROR] PublishReportAll ${ex.getMessage()} \n"
}
html = html + quickReportContent
使用舉例:
對(duì)于用戶(hù)來(lái)說(shuō),只需要在plll接口的param參數(shù)列表中配上quick_report參數(shù),用來(lái)指明需要擴(kuò)展的報(bào)告內(nèi)容和文件名等參數(shù),則報(bào)告或郵件中將添加用戶(hù)的擴(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檢查_(kāi)report", report_always:true]],
quick_report:[[report_dir:"${->env.OUTPUT_PATH}/", report_file:"${quickReportName}",report_name:"case檢查_(kāi)quick_report", report_always:true]]
]
]);
由代碼可見(jiàn),我們?cè)趒uick_report的參數(shù)列表中配置了用戶(hù)快捷報(bào)告所載目錄,報(bào)告文件名以及報(bào)告名,框架即可自動(dòng)將用戶(hù)自定義報(bào)告附加到原基本表格下面,并以綠色分割線(xiàn)分割。
效果展示:
例如對(duì)本項(xiàng)目而言,測(cè)試任務(wù)中每次都有一個(gè)叫做報(bào)文CASE測(cè)試報(bào)告需要直觀地呈現(xiàn)給用戶(hù)查看,而不需要讓用戶(hù)點(diǎn)擊鏈接自行查看,因此我們可以將其作為QuickReport擴(kuò)展到郵件和Jenkins匯總報(bào)告中:
Jenkins匯總展示報(bào)告如下,用戶(hù)自定義表格已經(jīng)擴(kuò)展在下方,如下圖所示:
同理郵件中也被擴(kuò)展顯示了,如下圖所示:
-
編程
+關(guān)注
關(guān)注
88文章
3637瀏覽量
93990 -
Pipeline
+關(guān)注
關(guān)注
0文章
28瀏覽量
9384
原文標(biāo)題:干貨 | Jenkins2.0 Pipeline框架(iPipeline)優(yōu)化實(shí)踐之路(二)
文章出處:【微信號(hào):ZTEdeveloper,微信公眾號(hào):中興開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Protel元件封裝庫(kù)與符號(hào)對(duì)應(yīng)總結(jié)
數(shù)據(jù)庫(kù)SQL的優(yōu)化
![數(shù)據(jù)<b class='flag-5'>庫(kù)</b>SQL的<b class='flag-5'>優(yōu)化</b>](https://file1.elecfans.com/web2/M00/A7/68/wKgaomUjrwyAK75GAAGsrSGoALU631.jpg)
數(shù)據(jù)庫(kù)設(shè)計(jì)及開(kāi)發(fā)規(guī)范之sql性能優(yōu)化
MySQL優(yōu)化之查詢(xún)性能優(yōu)化之查詢(xún)優(yōu)化器的局限性與提示
基于數(shù)據(jù)庫(kù)查詢(xún)過(guò)程優(yōu)化設(shè)計(jì)
深入優(yōu)化DB2 數(shù)據(jù)庫(kù)的五個(gè)最佳實(shí)踐
FPGA學(xué)習(xí)之DXP元件庫(kù)和封裝庫(kù)
實(shí)踐電磁兼容設(shè)計(jì)之PCB布線(xiàn)基本措施
對(duì)iPipeline的接口進(jìn)行優(yōu)化和實(shí)踐
數(shù)據(jù)庫(kù)系統(tǒng)概論之如何進(jìn)行關(guān)系查詢(xún)處理和查詢(xún)優(yōu)化
![數(shù)據(jù)<b class='flag-5'>庫(kù)</b>系統(tǒng)概論<b class='flag-5'>之</b>如何進(jìn)行關(guān)系查詢(xún)處理和查詢(xún)<b class='flag-5'>優(yōu)化</b>](https://file.elecfans.com/web1/M00/6D/B4/pIYBAFvtILyAbEJiAADBfcf8yew073.png)
將置信規(guī)則庫(kù)分級(jí)優(yōu)化的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)方法
![將置信規(guī)則<b class='flag-5'>庫(kù)</b>分級(jí)<b class='flag-5'>優(yōu)化</b>的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)方法](https://file.elecfans.com/web1/M00/E5/A8/pIYBAGBQHH2ADa90AAFYSoyRQNc080.png)
評(píng)論