You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jenkins性能插件实现相对错误阈值触发任务失败

问题:Jenkins Performance插件未按错误率/响应时间变化触发构建失败

我正在用Jenkins Pipeline运行JMeter脚本,通过Performance插件生成性能报告,当前的Pipeline配置如下:

performanceReport parsers: [[$class: 'JMeterParser', glob: "**/*.jtl"]], modeOfThreshold: true,relativeFailedThresholdNegative: 1.2, relativeFailedThresholdPositive: 1.89, relativeUnstableThresholdNegative: 1.8, relativeUnstableThresholdPositive: 1.5

现在性能趋势里错误率已经上升了,但构建还是绿色的。我想配置这个插件,让它在错误率较上一次构建上升X%,或者**响应时间增减X%**的时候直接触发构建失败,求帮忙调整配置!


解决方案

嗨,我来帮你搞定这个配置问题!你当前的问题在于,全局的相对阈值参数是对所有指标生效的通用规则,而且数值设置没精准对应到错误率和响应时间的判断逻辑。咱们换用更精准的指标级阈值配置,就能实现你要的效果。

调整后的Pipeline配置示例

performanceReport(
    parsers: [[$class: 'JMeterParser', glob: "**/*.jtl"]],
    modeOfThreshold: true, // 开启相对阈值模式,对比上一次成功构建的指标
    // 配置触发构建失败的阈值规则
    failedThresholds: [
        // 错误率较上一次上升超过20%(相对值>1.2)时,直接标记构建失败
        [$class: 'RelativeThreshold', metric: 'Error Percentage', threshold: 1.2],
        // 平均响应时间较上一次上升超过30%(相对值>1.3)时,标记构建失败
        [$class: 'RelativeThreshold', metric: 'Average Response Time', threshold: 1.3],
        // 可选:如果需要监控响应时间大幅下降的异常情况(比如低于上一次的50%),添加这条
        [$class: 'RelativeThreshold', metric: 'Average Response Time', threshold: 0.5, mode: 'LOWER']
    ],
    // 可选:如果需要设置"不稳定"的阈值(比失败宽松,比如错误率上升10%时标记为不稳定),可以保留这段
    unstableThresholds: [
        [$class: 'RelativeThreshold', metric: 'Error Percentage', threshold: 1.1],
        [$class: 'RelativeThreshold', metric: 'Average Response Time', threshold: 1.2]
    ]
)

关键参数说明

  • metric:指定要监控的具体指标,JMeter支持的常用指标包括:
    • Error Percentage(错误率)
    • Average Response Time(平均响应时间)
    • 90th Percentile Response Time(90分位响应时间)
    • 95th Percentile Response Time(95分位响应时间)
    • Throughput(吞吐量)
  • threshold:相对阈值的倍数。比如1.2代表比上一次构建的指标值高20%,0.8代表比上一次低20%。
  • mode:默认是UPPER(指标超过阈值时触发),如果要监控指标下降的异常情况,设置为LOWER即可。
  • modeOfThreshold: true:确保插件对比的是上一次成功构建的指标数据,而不是绝对值。

注意事项

  1. 第一次构建时因为没有历史基准数据,插件不会触发阈值判断,从第二次构建开始才会生效。
  2. 确保你的JMeter JTL报告包含这些指标——默认JMeter运行后生成的JTL文件都会自带这些数据,不用额外配置。
  3. 如果需要针对特定JMeter线程组、请求设置阈值,可以在JMeterParser里添加filter参数(比如filter: "myThreadGroup"),实现更细粒度的监控。

内容的提问来源于stack exchange,提问作者OTUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:05:31