【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)

摘要:
上次调试后发现,无论ant执行接口的结果是否失败,Jenkins都认为执行ant命令的步骤总是成功的。因此,在配置了在发生故障时发送电子邮件和微信通知后,根本不会收到通知,因为根本不会显示故障。因此,我们应该考虑如何在ant执行的接口失败时,让Jenkins无法构建整个过程,从而达到失败通知的效果。经过一段时间的思考,想法如下:1.如果ant生成的接口失败,html报告将生成执行失败等单词。二

上次搞完后调试发现,不管ant执行接口的结果是是否为失败,在Jenkins看来执行ant命令这一步始终是成功的。因此配置了失败时发邮件、企业微信通知后,压根就收不到通知,因为根本不会显示失败。

因此要考虑解决,ant执行的接口有失败时,怎么让Jenkins整个流程构建失败,从而达到失败通知的效果。

经过一段时间的思考后,思路如下:

1、ant生成的接口如果有失败,其html报告中会生成执行失败等文字。

2、Jenkins利用脚本读取html报告中的上述文字,如果存在,说明有接口失败,在编写的脚本中控制此次Jenkins流程失败。

3、上面2步骤完成后,以前配置好的流程已经可以做到仅失败时发通知了。

在ant编译后的步骤中加入构建命令Execute Windows batch command。(由于我的Jenkins是部署在windows机器上的)

【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)第1张

 输入bat命令如下:

cd ResultReporthtml
find "Failure Detail" TestReport%BUILD_TIMESTAMP%.html >nul
if errorlevel 1 (
echo no Failure Detail
) else (
exit 1
)
exit 0

首先当前在Jenkins任务的工作空间目录下,需进入存放报告的目录。

然后通过find命令,在指定报告html中找关键词。我这边如果有接口执行失败,报告中会生成Failure Detail文案。

【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)第2张

通过if命令,如果存在执行失败,则强制exit 1。使得本bat执行失败,从而Jenkins此步骤执行失败。

如果没有接口失败,则给出提示。后面加上exit 0 是因为如果不加这个,Jenkins会默认此脚本执行失败。

如果是linux,则脚本为

cd ResultReport/html
grep -n "Failure Detail" TestReport%BUILD_TIMESTAMP%.html
if [ $? -eq 1 ];then
    exit 1
else    
    echo "找到了"
fi

免责声明:文章转载自《【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mac下PHP开发环境的搭建(转载)QTabWidget下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jenkins下JDK、Maven、Gradle、SVN、Tomcat、SDK安装配置

1.JDK安装与配置: 1)下载jdk,根据安装步骤一直点击下一步进行安装,安装完后配置环境变量 计算机→属性→高级系统设置→高级→环境变量 2)系统变量→新建 JAVA_HOME 变量 ,变量值填写jdk的安装目录 3)系统变量→寻找 Path 变量→编辑, 在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (...

CVE-2018-1000861复现

刚好群里有个朋友问到这个然后就复现了一下 1. 漏洞描述 Jenkins使用Stapler框架开发,其允许用户通过URL PATH来调用一次public方法。由于这个过程没有做限制,攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法。 通过这个漏洞,我们可以找到很多可供利用的利用链。其中最严重的就是绕过Groovy沙盒导致未授权用户可执行任意命令...

好代码是管出来的——使用GitHub实现简单的CI/CD

  软件开发一般来说是一项团队作业,在本系列文章开始就提到过软件的编码是由一个团队“并行”完成的,为了保证编码任务正常完成,首先引入版本控制工具来完成代码管理,为了保证代码质量引入了代码分析器以及代码测试。   版本控制工具可以保证代码有一个主版本,但代码分析和测试均是开发人员手动在本地完成的(通过编译、执行测试等方式),在进行代码分析和测试时可能并没有将...

jenkins 配置杂项优化

path="${jenkinsProject.workspace}/backup/" rollback=['bash', '-c', "ls -t1 ${path} "].execute().text.readLines() if (action.equals("RollBack")) { returnrollback } else{ re...

jenkins结合ansible用shell实现自动化部署和回滚

最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚。然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现。 环境: centos 7.064位 gitlab:v2.9.0 git:2.9 jenkins 1.651.3、git plugin、GitLab Plugin、Dynam...

1分钟入门接口自动化框架Karate

介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想。其中之一就是使用Gherkin文件,该文件描述了被测试的功能 与Cucumber不同的是测试用例不需要用Java编写,并且被完整的描述在Gherkin文件中 通过Karate,您可以...