热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在使用Retry之后,Jenkins能够准确发送邮件的脚本

关于使用Retry之后,Jenkins能够准确发送邮件的脚本不知道大家有没有自己往Pybot源码中添加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",勾选该选项后会导致邮件发送失败。
 
 



推荐阅读
  • Docker系列 七. Docker 安装Jenkins
    Docker系列七.Docker安装JenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • Objective C接入Sonar代码扫描
    目录技术方案环境准备扫描器配置项目配置SonarQube配置jenkins接入一些坑技术方案Sonar本身有对OC的代码扫描插件——SonarCFamily,但是是收费的。出于成本 ... [详细]
  • button进阶1.等级3的时候学习了用Grid(网格)布局排列。这次是button背景的引用学习圆角button。我发现学代码难的原因就是英语不好不懂什么意思。设置focysable属性为 ... [详细]
  • 准备工作参考我的另一篇利用githubactions自动部署gradle构建的springboot项目打包的war包到tomcat服务器,这里直接上配置, ... [详细]
author-avatar
笨笨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有