码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2020-12-23 12:15:52      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:inux   巡检   目录   find   man   机器   report   else   build   

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

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

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

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

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

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

 

 

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

技术图片

 

 

 输入bat命令如下:

cd ResultReport\html
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文案。

技术图片

 

 

通过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)

标签:inux   巡检   目录   find   man   机器   report   else   build   

原文地址:https://www.cnblogs.com/chooperman/p/14155776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!