如果 Dockerized Jmeter 测试失败,则失败 GitHub 操作管道
Fail GitHub Actions Pipeline if Dockerized Jmeter tests failed
我希望就以下问题得到一些建议:
我在 GitHub Actions 中构建了一个简单的 CI/CD 管道,我正尝试在 Docker 容器中执行我的 Jmeter 测试。我正在使用 justb4/jmeter 图像,我基本上只是将我的 jmx 文件从我的 GitHub 存储库复制到 /opt/apache-jmeter-5.3/bin,这样我就可以在我的容器中执行测试。我的问题是,即使 Jmeter 测试在容器内失败,我的管道仍会继续执行并且不会检测到此失败。
如果我的 Jmeter 测试在 Docker 容器中失败,我如何停止管道进一步执行?
非常感谢任何帮助,
马克
为了能够使步骤失败,您需要 return 非零 exit status code,选项位于:
使用JMeter Maven plugin,如果你添加jmeter-check-results
这样的动作:
<execution>
<id>jmeter-check-results</id>
<goals>
<goal>results</goal>
</goals>
</execution>
失败的 Maven 构建将被 Github 操作捕获
使用Taurus tool as a wrapper, Taurus can also be run as a docker image and it has Pass/Fail Criteria subsystem,它有灵活的标准,允许有条件的测试失败,在测试失败的情况下 Taurus returns 非零退出状态代码,这将足以管道步骤失败
此选项需要的更改最少,但功能最弱。将 JSR223 Listener 添加到您的测试计划并将以下代码放入“脚本”区域:
if (!prev.isSuccessful()) {
System.exit(1)
}
它将强制 JMeter 在任何 Sampler 失败时退出(但是根据您的 JMeter 配置,您可能会丢失部分结果)
检查我在您的工作流程中安装 jmeter 的操作。
https://github.com/marketplace/actions/setup-jmeter
name: Test Action
on:
push
jobs:
test-action:
runs-on: ubuntu-latest
steps:
- name: Setup Jmeter
uses: tush-tr/setup-jmeter@v1.1.0
我希望就以下问题得到一些建议:
我在 GitHub Actions 中构建了一个简单的 CI/CD 管道,我正尝试在 Docker 容器中执行我的 Jmeter 测试。我正在使用 justb4/jmeter 图像,我基本上只是将我的 jmx 文件从我的 GitHub 存储库复制到 /opt/apache-jmeter-5.3/bin,这样我就可以在我的容器中执行测试。我的问题是,即使 Jmeter 测试在容器内失败,我的管道仍会继续执行并且不会检测到此失败。
如果我的 Jmeter 测试在 Docker 容器中失败,我如何停止管道进一步执行?
非常感谢任何帮助, 马克
为了能够使步骤失败,您需要 return 非零 exit status code,选项位于:
使用JMeter Maven plugin,如果你添加
jmeter-check-results
这样的动作:<execution> <id>jmeter-check-results</id> <goals> <goal>results</goal> </goals> </execution>
失败的 Maven 构建将被 Github 操作捕获
使用Taurus tool as a wrapper, Taurus can also be run as a docker image and it has Pass/Fail Criteria subsystem,它有灵活的标准,允许有条件的测试失败,在测试失败的情况下 Taurus returns 非零退出状态代码,这将足以管道步骤失败
此选项需要的更改最少,但功能最弱。将 JSR223 Listener 添加到您的测试计划并将以下代码放入“脚本”区域:
if (!prev.isSuccessful()) { System.exit(1) }
它将强制 JMeter 在任何 Sampler 失败时退出(但是根据您的 JMeter 配置,您可能会丢失部分结果)
检查我在您的工作流程中安装 jmeter 的操作。
https://github.com/marketplace/actions/setup-jmeter
name: Test Action
on:
push
jobs:
test-action:
runs-on: ubuntu-latest
steps:
- name: Setup Jmeter
uses: tush-tr/setup-jmeter@v1.1.0