JMeter如何在重试成功后隐藏失败请求,仅展示最终请求结果
JMeter重试逻辑过滤历史失败请求实现方案
核心原理
你当前遇到的多次请求都被记录的问题,是因为JMeter默认会收集所有执行过的采样器结果,只需要通过脚本控制非最终次的重试请求不被结果收集器记录即可。
具体实现步骤
- 先确认你原有重试逻辑里的计数变量,比如你用来统计已重试次数的变量假设为
retry_count,最大重试次数为3,初始值设为1,每次循环重试时计数+1。 - 在你while循环内的HTTP采样器下,添加JSR223后置处理器,粘贴以下Groovy代码:
// 配置参数,和你实际的计数变量、最大重试次数保持一致 def maxRetryTimes = 3 def currentRetry = vars.get("retry_count") as int // 非最后一次请求直接忽略,不进入结果统计 if (currentRetry < maxRetryTimes) { prev.setIgnore() }
- 代码中
prev.setIgnore()是JMeter原生提供的方法,作用是标记当前采样结果不被结果树、汇总报告、聚合报告等任何结果收集器记录。
效果验证
- 重试成功场景:前2次失败请求都会被标记为忽略,仅保留最后一次成功的请求记录
- 重试全失败场景:第3次请求计数等于最大重试次数,不会被忽略,仅保留最后一次的失败记录
注意事项
- 该方法适用于JMeter 5.0及以上版本,无需额外安装插件
- 如果你原有重试计数是从0开始,只需把判断条件修改为
currentRetry < maxRetryTimes - 1即可
内容的提问来源于stack exchange,提问作者J.S Lee
相关产品推荐
相关产品推荐

