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
相关产品推荐
相关产品推荐

