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