我正在使用concourse ci管道运行一些自动化测试。我的要求是,如果任何测试失败,则将构建标记为失败并通过电子邮件发送结果。有没有办法在大厅这样做?电子邮件功能运行正常,但是即使测试失败,构建也可以通过。
如果您是running JMeter in command-line non-GUI mode,您的命令需要返回non-zero exit status code
即使测试失败,JMeter进程也会有0
退出代码,因此任何CI系统都将执行视为成功:
[如果您正在寻找仅JMeter的解决方案,则可以在测试计划中添加JSR223 Assertion并将以下代码放入“脚本”区域:
if (!prev.isSuccessful()) {
props.put('failure', 'true')
}
然后将tearDown Thread Group添加到您的测试计划中,并使用以下代码将JSR223 Sampler放在此处:
if (props.get('failure').equals('true')) {
System.exit(1)
}
如果JSR223断言Scope中的任何Sampler失败-整个JMeter过程将以退出代码1
完成,任何上游处理系统都将其视为错误。
[另一种选择是考虑使用Taurus工具作为JMeter测试的包装器,Taurus提供了灵活的pass/fail criteria subsystem,可让您定义阈值以考虑测试是否成功。如果超过阈值,Taurus将返回非零退出代码,该代码应由场所(或其他软件)“理解”。