关于jenkins上集成jemeter实现脚本自动执行,脚本执行失败但是项目还是构建成功,这个问题的缘由来自于jenkins在集成jemeter时,它只关注项目运行所需的环境,项目内执行的shell等语句语法没有错误,并不关注jmeter脚本是否执行成功失败,脚本执行的过程是在jenkins所在主机需要关注的事情,如果要解决这个问题可以从下面两点入手:
1:jmeter每次执行脚本都是构建生成一个jtl,可以根据jtl里面的运行记录来判断脚本是否成功
2:根据自定义生成的报告,jmeter+ant生成的可视化html报告里面清楚的告诉我们脚本是否执行成功,以及脚本运行的案例数量,成功率,失败详情等信息
我这里是结合html报告来判断脚本是否执行成功,因为后面会用到html报告的发送,如果查询到报告里面成功率不是百分之百,就告诉jenkins项目执行失败,这里需要用到jenkins的内置信息,如果jenkins构建成功会返回1,构建失败返回0
下面是脚本执行完根据生成的报告,写一个shell语句来判断执行成功或者失败
#进入报告目录
cd /home/usr/report/html1
grep -o '<td align="center">[0-9]*</td><td align="center">[0-9]*</td><td align="center">[0-9]*' TestReport$Dateparameter.html | grep -o [0-9]*| grep -c 100
if [ $?=0 ]
then
exit 0
else
exit 1
fi
这里使用grep来对文本进行搜索,如果脚本执行成功会在报告中展示出来,即成功率1000%