【问题标题】:Jenkins build is passed even if jmeter duration assertion fails即使 jmeter 持续时间断言失败,Jenkins 构建也会通过
【发布时间】:2020-01-07 16:51:49
【问题描述】:

我正在使用 jenkins 运行 jmeter,我的脚本中有 300 毫秒的持续时间断言。断言工作正常,因为我的 jmeter 结果显示错误,但 jenkins 构建仍然通过。

如果 jmeter 结果出错,有什么方法可以使我的构建失败?

【问题讨论】:

    标签: jenkins jmeter


    【解决方案1】:

    你需要定义Error Threshold

    如果错误数量超过指定值,错误阈值会将构建标记为不稳定或失败。

    在单个构建中使用错误阈值 - 以百分比为当前构建定义错误阈值。

    【讨论】:

    • 在这种情况下,.jtl 文件不会在每次运行时更新。如果我的构建失败了一次,即使没有错误,它也会再次失败。
    • @ShivyeshAgnihotri 您发布的图片有错误
    • 我不是在谈论这个图像,但是当我现在运行我的构建时,上面评论中的场景正在发生。
    • @ShivyeshAgnihotri 您需要在 jmeter 命令中将 jtl 报告定义为 -l Test.jtl
    【解决方案2】:

    选项在:

    1. Performance Plugin GUI中配置错误阈值

    2. Jenkins 在返回 0 exit status code 时认为构建已通过,您可以通过添加 JSR223 侦听器并使用以下代码“告诉”JMeter 以非零退出代码退出:

      if (!prev.isSuccessful()) {
          System.out.println("Test failure, exiting...")
          System.exit(1)
      }
      

      其中prev 代表父级SampleResult 类实例,它使您可以控制父级Sampler 响应代码、消息、数据等。查看Top 8 JMeter Java Classes You Should Be Using with Groovy 文章以获取有关JMeter API 可用于@ 的快捷方式的更多信息987654328@

      这将导致以下行为:

      这个1状态码会导致Jenkins构建失败

    3. 第 2 点的替代解决方案是使用 Taurus 工具作为 JMeter 测试的包装器,它提供了方便的 Pass/Fail Criteria 子系统,该子系统提供了定义自定义阈值的灵活方式,以将您的测试视为失败

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多