关于使用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能够准确发送邮件的脚本相关推荐

  1. 使用jenkins构建并发送邮件

    目录 一.系统配置 二.连接构建节点 三.创建和配置Item 四.遇到的问题 一.系统配置 想要使用jenkins构建并发送邮件,首先需要进行全局配置. 1.进入jenkins概览界面->点击M ...

  2. jenkins + jmeter +ant 发送邮件失败

    阿菠萝阿瑶 </div><!--end: blogTitle 博客的标题和副标题 --> <div id="navigator"> 博客园 首页 ...

  3. jenkins配置自动发送邮件,抄送

    参考链接: jenkins配置自动发送邮件:https://www.cnblogs.com/gcgc/p/5631385.html 常用邮箱IMAP/POP3/SMTP 设置:https://www. ...

  4. jenkins 集成 docker tomcat 自动化测试脚本

    最近在搞jenkins + docker CI,把自己写的集成脚本分享出来给大家.里面很多路径或者名称是我自己的,自行替换掉. #!/bin/sh # Jenkins Build Shell Scri ...

  5. 解决jenkins 使用ssh插件执行脚本,导致一直处于构建中无法停止

    一.现象 jenkins中使用了ssh插件,远程登录服务器并执行脚本 脚本如下: #!/bin/bash pid=`ps -ef | grep python | awk '{print $2}'` k ...

  6. 使用Jenkins的任务自动跑脚本后发现,服务没有起来

    在Jenkins的使用中,遇到过的一个场景是:在web代码更改之后,能自动的部署到测试服务器,我们写了run.sh脚本来重启服务,在使用Jenkins的任务自动跑这个脚本后发现,服务没有起来.开始以为 ...

  7. jenkins执行本地/远程shell脚本

    1. 执行 本地 shell命令或者脚本 2. 执行远程机器的命令或者脚本. 1. 执行 本地 shell命令或者脚本 是在一个构建中的  bulid 选项卡. 执行本地中的一个脚本 执行一个命令 2 ...

  8. Jenkins教程(六)脚本与方法执行效果不合预期,如何及时中止pipeline

    场景 使用Jenkins的流水线时,有时明明某些Python或Shell执行结果错误,但仍会继续运行下去,甚至于最终提示成功.这并不合我们的预期--出现错误及时停止.当然,还有那种小错误不影响构建的, ...

  9. jenkins linux 发邮件,Jenkins构建后发送邮件

    我们首先安装Jenkins邮件扩展插件"Email Extension Plugin". Jenkins和插件的安装方法见上一篇文章:http://qicheng0211.blog ...

最新文章

  1. android 各种控件颜色值的设置(使用Drawable,Color)
  2. FPGA开发中全局复位置位(GSR)
  3. 使用cqengine进行集合检索
  4. deno学习一 安装试用几个问题解决
  5. SpringBoot https访问控制
  6. html post与get的区别,post 和get请求的区别(html)
  7. 程序员接私活的几个平台
  8. python list二维数组_python中的二维数组和lamda
  9. STM32入门(二)
  10. UVALive 6657 GCD XOR
  11. 微信小程序仿记事本,带下划线,自动换行,高度自增
  12. HUST1005 渊子赛马【枚举】
  13. php表单设置出生日期,纯JS实现出生日期[年月日]下拉菜单效果_茜茜_前端开发者...
  14. 电流检测电路公式推导
  15. 计算机如何共享手机网络,怎么把电脑网络共享给手机
  16. 探寻维纳控制论密码,解读“人工智能”各大学派
  17. C#汽车租凭(面对对象(封装、继承,多态的应用))
  18. 一步步读懂Pytorch Chatbot Tutorial代码(三) - 创建字典
  19. VB.NET学习笔记:自定义控件之扩展TEXTBOX控件——水印文字提示效果
  20. 利用javascript计算n阶矩阵

热门文章

  1. SAP Cloud for Customer的微信集成原型开发完毕后的效果示意图
  2. php k线 形态识别,趋势追踪,从设计交易系统开始(七)——形态识别,不只有K线...
  3. python如何创建问答窗口_在tkin中创建一个新的单独窗口
  4. 机械硬盘4k读写速度_有容乃大,18T企业级机械硬盘旗舰—希捷银河Exos X18测试...
  5. java getscale_Java MajorType.getScale方法代碼示例
  6. php地图,地图php接口
  7. python展示文件_python 文件操作实力显示
  8. linux服务器配置trunk,在Linux配置VLAN Trunk
  9. android文件管理器,ES文件浏览器(com.estrongs.android.pop) - 4.2.4.6.1 - 应用 - 酷安
  10. 将用户添加到sudoers里面,使用户拥有sudo权限