如何在JMeter中配置1线程运行10分钟且每运行1分钟暂停60秒?
JMeter测试场景配置方案
1. 线程组基础配置
- 新建线程组,设置:
- 线程数:1
- Ramp-Up时间:0(让唯一线程立即启动)
- 勾选「调度器」,填入持续时间为
600秒(对应10分钟),确保测试总时长严格控制在10分钟内
- 在测试计划的「用户定义的变量」里新增
testStartTime,值设为${__time(,)},用来记录测试启动的时间戳
2. 实现“运行1分钟+暂停60秒”的循环逻辑
用While控制器包裹整个循环逻辑,确保在10分钟内重复执行“请求阶段+暂停阶段”:
- 添加While控制器,条件写:
这个条件会让循环一直运行,直到当前时间超过测试启动时间+10分钟。${__jexl3(${__time(,)} < ${testStartTime} + 600000,)}
2.1 配置1分钟连续请求阶段
- 在While控制器下加一个循环控制器(命名为「1分钟请求循环」),循环次数留空(让它持续执行)
- 把你的业务请求(比如HTTP接口、数据库查询等)放到这个循环控制器里
- 给「1分钟请求循环」加Constant Throughput Timer:
- 目标吞吐量(每分钟):填一个适配你请求耗时的数值,比如
60(如果请求耗时1秒,每分钟刚好60次),确保这个阶段能持续运行1分钟 - 选择「Calculate Throughput based on」为「This thread only」
- 目标吞吐量(每分钟):填一个适配你请求耗时的数值,比如
- 再加一个JSR223定时器到「1分钟请求循环」下,脚本用Groovy:
这个脚本会在当前周期的前60秒结束后,停止请求循环,进入暂停阶段。def runDuration = System.currentTimeMillis() - vars.get('testStartTime') as long // 每120秒为一个周期:前60秒跑请求,后60秒暂停 if (runDuration % 120000 >= 60000) { ctx.getThread().stop() }
2.2 配置60秒暂停阶段
- 在While控制器下,「1分钟请求循环」的后面加Test Action Sampler,设置**Duration(毫秒)**为
60000- 这个采样器会让线程暂停60秒,时间到后自动回到While控制器开头,开启下一轮循环
3. 统计完成的请求数量
- 加聚合报告监听器:它会自动统计总请求数、成功请求数、失败请求数,还有响应时间等核心指标
- 可选加Summary Report:更简洁地展示请求完成情况,适合快速查看统计结果
- 若需要实时查看请求详情,可加查看结果树监听器
内容的提问来源于stack exchange,提问作者fakhrul
相关产品推荐
相关产品推荐

