Jenkins构建JOB每次都会发送邮件,这时需求来了:为了不骚扰相关开发人员,只在接口测试执行失败的时候发送邮件。Jmeter集成Jenkins接口自动化这里不再阐述,请搜索相关文档。有一个思路:通过查找生成的html报告文件内容是否有100.00%,如果存在表示执行都成功,那就不发送邮件;否则发送邮件。
Jmeter的脚本里的接口不管如何的报错,是都不会引起Jenkins构建错误的。也就是说项目构建除了特殊因素之外会一直构建成功,那么也就达不到我们想要的只在接口巡检发生错误的情况下才发送预警邮件的需求。
这个时候我们就要借助一些外在的因素,人为的让Jenkins在构建项目后,出现构建失败的情况。
重新建立一个新的自由风格的项目,该项目的构建触发器选择为依赖其他项目构建完成后才开始构建。
然后是通过脚本来判断测试报告是成功还是失败,告诉Jenkin来构建成功或失败来决定是否发送邮件。网上有例子是windows下实现的,但是我们要在Linux下实现。
我们用Shell去实现这个,代码如下:
#!/bin/bash
# author: John Lee
# date: 20181220
REPORT_HOME=/data/web/jenkins/data/workspace/
cd ..
cd ${REPORT_HOME}/jspt-jmeter-test-api/results/report/html/
grep -n "100.00%" ApiTestSummaryReport.html
if [ $? -eq 1 ];then
exit 1
else
echo "找到了"
fi