搭建了一套接口自动化环境,一键构建执行接口脚本,生成测试报告,失败情况下,发送邮件通知相关人员。
基本思路是这样的,但是,遇到了一个问题,浏览测试报告格式及查看相关内容是否正确的过程中,发现有测试用例failure的情况,并没有发送邮件给相关人员。
1、查找问题
查看jmeter的日志,日志中显示脚本执行错误(如下图)
查看jenkins构建结果(如下图)
日志中显示构建成功,jenkins显示本次测试success
2、确定问题
jenkins显示的结果为jenkins构建结果,并不是jmeter脚本的执行结果;jmeter脚本执行结果,并没有传给jenkins,so Jenkins并不能确定脚本实际的执行结果。
这部分要区分,jmeter脚本执行结果与jenkins构建jmeter脚本结果,这是两个不同概念,而且这两个结果之间是没有必然联系的
3、解决问题
从上面两部分,得出结论,jenkins显示的结果是构建结果;那么自动化用例执行失败,如何体现在jenkins构建结果中呢!那么可以想象当自动化用例执行失败的情况下,将jenkins构建结果置为失败;自动化用例执行成功的情况下,将jenkins构建结果置为成功。
解决上面的问题,就要解决两个问题:
⑴确定自动化用例执行是否成功
⑵根据第一个问题,重置jenkins构建结果
解决方案:
这个脚本并不完善,并不能非常完美的解决上面的问题;只能当找到"<failure>true</failure>"后,直接将构建结果置为失败;但是当没有找到jtl文件的时候,构建结果还是success;shell脚本还需更加强大起来。