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

如何在JMeter脚本中自动忽略压测ramp-up、ramp-down阶段的测试结果

JMeter 内置升降压阶段结果过滤方案

无需事后处理结果文件,也无需依赖第三方插件,直接在JMX脚本中实现运行时自动过滤升压、降压阶段的采样数据,仅保留恒定负载阶段的有效结果。

实现步骤

  1. 配置基础时长变量
    在测试计划下新增「用户定义的变量」元件,添加2个全局变量,和线程组的压测配置保持一致:
  • ramp_up_duration:升压阶段总时长,单位为秒
  • ramp_down_start:降压阶段起始时间,单位为秒,计算规则为 压测总时长 - 降压阶段时长,例如总压测时长600秒、降压阶段60秒,该值填540即可。
  1. 新增运行阶段判断逻辑
    在线程组下新增「JSR223 前置处理器」,选择Groovy作为解析语言,写入以下代码:
// 读取压测启动时间戳
def testStart = ctx.getThreadGroup().getStartTime()
// 计算当前已运行时长(秒)
def runTime = (System.currentTimeMillis() - testStart) / 1000

// 判断当前是否处于升降压阶段
if (runTime < ${ramp_up_duration} || runTime > ${ramp_down_start}) {
    vars.put("skip_current_sample", "true")
} else {
    vars.put("skip_current_sample", "false")
}
  1. 配置采样结果过滤规则
    在所有需要过滤的采样器下新增「JSR223 后置处理器」,写入以下代码:
// 过滤升降压阶段的采样结果,同时支持额外自定义异常值过滤规则
if (vars.get("skip_current_sample") == "true") {
    // 标记该结果忽略,不会写入任何格式的结果文件
    prev.setIgnore()
}

// 可扩展额外过滤规则,例如过滤响应码非200的异常结果
// if (prev.getResponseCode() != "200") {
//     prev.setIgnore()
// }

方案优势

  • 完全集成在JMX脚本内部,不需要事后对jtl、csv、xml格式的结果文件做二次筛选,无额外工作量
  • 无需依赖第三方插件,Synthesis Report插件需要人工介入筛选,本方案运行时自动处理,全程无人工操作
  • 规则可灵活扩展,除了升降压阶段过滤外,还可以自定义增加响应超时、错误响应等异常值的过滤逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:09:00