如何在使用Retry之后,Jenkins能够准确发送邮件的脚本
生活随笔
收集整理的這篇文章主要介紹了
如何在使用Retry之后,Jenkins能够准确发送邮件的脚本
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
關(guān)于使用Retry之后,Jenkins能夠準(zhǔn)確發(fā)送郵件的腳本
不知道大家有沒有自己往Pybot源碼中添加retry這個(gè)參數(shù),這時(shí)候結(jié)合Jenkins運(yùn)行腳本,最后再添加發(fā)送郵件這個(gè)構(gòu)建?
這時(shí)候會(huì)有個(gè)問題,這個(gè)問題也困擾了我很久,就是如圖,插件中的Triggers
?
什么問題呢?就是,我們肯定都希望在用例出錯(cuò)的時(shí)候向指定的聯(lián)系人發(fā)送郵件,這時(shí)候問題來了,由于Triggers中現(xiàn)有的Trigger都是以Jenkins最終日志中的結(jié)果來判斷
?
在這個(gè)job中,我總共只有13個(gè)用例,可是添加了retry參數(shù)之后,第一次用例執(zhí)行失敗,可是第二次成功了,這時(shí)候控制臺(tái)中的日志就會(huì)顯示多一個(gè)用例
?
所以在控制臺(tái)最終結(jié)果中,是判斷這個(gè)job中有用例失敗,可是其實(shí)這個(gè)job最終結(jié)果是正常的。
? ?
?
這時(shí)候,由于我的Trigger是有用例失敗就發(fā)送郵件,這就會(huì)造成誤發(fā)郵件。
?
怎么解決?一開始我也走了很多彎路,有想過自己去改源碼,可是由于涉及的模塊東西太多,在短時(shí)間內(nèi)實(shí)現(xiàn)實(shí)在是太困難。有天,我靜下心來把思路理了一遍,突然發(fā)現(xiàn),這張圖
?
相信大家也看出來了,robot這個(gè)插件是通過什么判斷的?!
?
我只要模仿它的判斷條件去判斷就行!正好在Trigger中有一個(gè)選項(xiàng)!!!就是
這個(gè)腳本是什么腳本?什么語法?通過什么變量判斷???!!!觸發(fā)的變量是什么!雖然問題很多,但是我覺得,只要這些問題解決,那么我最終的問題自然迎刃而解了!
?
這時(shí)候,我又發(fā)現(xiàn)這個(gè)東西“Groovy”,就是郵件腳本,之前DIY的時(shí)候,發(fā)現(xiàn)里面有很多變量,這時(shí)候我感覺不遠(yuǎn)了,果然去找這個(gè)郵件插件的文檔,里面是說支持Groovy腳本。
?
剩下最后一個(gè)問題?怎么觸發(fā)發(fā)送郵件?True Or False?自然,這個(gè)文檔中也有說明。
?
所以問題解決了,如果最終有用例失敗,就令一個(gè)變量為True,然后Return。這時(shí)候,這個(gè)Trigger就會(huì)接收到這個(gè)布爾值,從而被觸發(fā)!下面上干貨。
?
def actions = build.actions def results = false actions.each() { action -> if( action.class.simpleName.equals("RobotBuildAction") ){ if( action.result.overallFailed > 0){results = true}} } return results
原貼地址:http://www.robotframework.net/?/article/106
另外上面的代碼執(zhí)行成功的話必須安裝“groovy Build” 插件,且在添加上面的腳本是不能勾選"use Groovy sandbox",勾選該選項(xiàng)后會(huì)導(dǎo)致郵件發(fā)送失敗。
轉(zhuǎn)載于:https://www.cnblogs.com/maxiaotu/p/8821780.html
總結(jié)
以上是生活随笔為你收集整理的如何在使用Retry之后,Jenkins能够准确发送邮件的脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OC语言中的便利初始化函数和便利构造器
- 下一篇: 一种用css实现图片在父框中等比缩放并垂