如何配置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:确保插件对比的是上一次成功构建的指标数据,而不是绝对值。
注意事项
- 第一次构建时因为没有历史基准数据,插件不会触发阈值判断,从第二次构建开始才会生效。
- 确保你的JMeter JTL报告包含这些指标——默认JMeter运行后生成的JTL文件都会自带这些数据,不用额外配置。
- 如果需要针对特定JMeter线程组、请求设置阈值,可以在
JMeterParser里添加filter参数(比如filter: "myThreadGroup"),实现更细粒度的监控。
内容的提问来源于stack exchange,提问作者OTUser
相关产品推荐
相关产品推荐

