我希望就以下问题得到一些建议:
我已经在 GitHub Actions 中构建了一个简单的 CI/CD 管道,我正在尝试在 Docker 容器内执行我的 Jmeter 测试。我正在使用 justb4/jmeter 图像,我基本上只是将我的 jmx 文件从我的 GitHub 存储库复制到 /opt/apache-jmeter-5.3/bin,以便我可以在我的容器中执行测试。我的问题是,即使 Jmeter 测试在容器内失败,我的管道也会继续执行并且不会检测到此故障。
如果我的 Jmeter 测试在 Docker 容器中失败,如何阻止管道进一步执行?
非常感谢任何帮助, 标记
答案 0 :(得分:0)
为了能够使您需要返回非零 exit status code 的步骤失败,选项位于:
使用 JMeter Maven plugin,如果您添加 jmeter-check-results
操作,例如:
<execution>
<id>jmeter-check-results</id>
<goals>
<goal>results</goal>
</goals>
</execution>
失败的 Maven 构建将被 Github Actions 捕获
使用 Taurus 工具作为包装器,Taurus can also be run as a docker image 并且它具有 Pass/Fail Criteria subsystem,它具有灵活的标准,允许有条件地失败测试,如果测试失败 Taurus 返回非零退出状态代码,足以使管道步骤失败
此选项需要的更改最少,但功能最弱。将 JSR223 Listener 添加到您的测试计划并将以下代码放入“脚本”区域:
if (!prev.isSuccessful()) {
System.exit(1)
}
它会在任何 Sampler 失败时强制退出 JMeter(但是,根据您的 JMeter 配置,您可能会丢失部分结果)