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

JMeter压力测试配置求助:自动递增访问量并超时停止测试

JMeter实现自动递增并发+超时停止并记录访问次数的配置方案

1. 替换Concurrency Thread Group,用Stepping Thread Group实现自动递增访问量

Concurrency Thread Group更适合维持稳定目标并发,自动递增场景用Stepping Thread Group(需通过JMeter插件管理器安装)更精准:

  • 初始线程数:设为0(从0开始逐步加量)
  • 递增步长:按需设置,比如每次新增10个线程
  • 递增间隔:控制递增速度,比如每30秒完成一次线程递增
  • 最终线程数:设一个足够大的值(如1000),确保触发停止条件前不会触达上限
  • 每个线程持续时间:设较长时长(如3600秒),避免线程提前终止

2. 配置超时停止触发条件

在目标HTTP请求下添加Duration Assertion:

  • 设置Duration in milliseconds为10000(对应10秒)
  • 勾选Abort Test,确保任意请求加载超时10秒时立即终止整个测试
  • 可选勾选Log assertion failure,方便定位触发停止的具体请求

3. 记录停止时的访问次数

方法1:用内置报告直接查看

测试停止后,打开Summary Report:

  • Samples列是累计访问总次数(含成功/失败请求)
  • Successful列是成功访问次数,按需取用

方法2:自定义变量实时计数

若需更精准的实时记录,添加JSR223 Listener,写入以下脚本:

// 初始化计数变量
if (!vars.get("totalRequests")) {
    vars.put("totalRequests", "0")
}
// 每次请求完成后计数+1
def count = Integer.parseInt(vars.get("totalRequests")) + 1
vars.put("totalRequests", count.toString())

// 断言失败(超时)时输出计数并停止测试
if (prev.isFailed()) {
    log.info("测试因页面加载超时停止,累计访问次数:${count}")
    ctx.getEngine().stopTest()
}

测试停止后,可通过JMeter日志或变量查看器获取totalRequests的值。

关键注意事项

  • 先通过JMeter插件管理器安装jmeter-plugins-standard包,才能使用Stepping Thread Group
  • Duration Assertion需绑定到核心页面的HTTP请求上,避免误触发(如忽略静态资源请求的超时)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:42:12