如果 Dockerized Jmeter 测试失败,则使 GitHub 操作管道失败

时间:2021-06-22 13:35:42

标签: docker github jmeter devops

我希望就以下问题得到一些建议:

我已经在 GitHub Actions 中构建了一个简单的 CI/CD 管道,我正在尝试在 Docker 容器内执行我的 Jmeter 测试。我正在使用 justb4/jmeter 图像,我基本上只是将我的 jmx 文件从我的 GitHub 存储库复制到 /opt/apache-jmeter-5.3/bin,以便我可以在我的容器中执行测试。我的问题是,即使 Jmeter 测试在容器内失败,我的管道也会继续执行并且不会检测到此故障。

如果我的 Jmeter 测试在 Docker 容器中失败,如何阻止管道进一步执行?

非常感谢任何帮助, 标记

1 个答案:

答案 0 :(得分:0)

为了能够使您需要返回非零 exit status code 的步骤失败,选项位于:

  1. 使用 JMeter Maven plugin,如果您添加 jmeter-check-results 操作,例如:

    <execution>
        <id>jmeter-check-results</id>
        <goals>
            <goal>results</goal>
        </goals>
    </execution> 
    

    失败的 Maven 构建将被 Github Actions 捕获

  2. 使用 Taurus 工具作为包装器,Taurus can also be run as a docker image 并且它具有 Pass/Fail Criteria subsystem,它具有灵活的标准,允许有条件地失败测试,​​如果测试失败 Taurus 返回非零退出状态代码,足以使管道步骤失败

  3. 此选项需要的更改最少,但功能最弱。将 JSR223 Listener 添加到您的测试计划并将以下代码放入“脚本”区域:

    if (!prev.isSuccessful()) {
        System.exit(1)
    }     
    

    它会在任何 Sampler 失败时强制退出 JMeter(但是,根据您的 JMeter 配置,您可能会丢失部分结果)