JMeter定时场景测试求助:无间隔发100个POST后5分钟发100个GET
解决JMeter同一线程组内批量POST后延迟再批量GET的问题
核心配置思路
要实现同一线程组内「一次性发100个POST → 等待5分钟 → 一次性发100个GET」的效果,关键是让100个线程在完成POST后同步等待,再同时触发GET。Constant Timer无法实现是因为它给单个请求加延迟,会导致GET请求陆续发送,而非批量触发。
方法一:Test Action Sampler + 线程组并发配置
- 线程组基础设置:
- 「Number of Threads (users)」设为100
- 「Loop Count」设为1
- 「Ramp-Up Period」设为0(让100个线程瞬间启动,无间隔发送POST)
- 添加POST请求:
- 配置好POST的接口地址、参数、请求头,不要给POST添加任何Timer,保证100个线程同时发送
- 添加Test Action Sampler:
- 在POST请求后添加这个采样器,设置「Duration」为
300000(单位是毫秒,对应5分钟) - 这个采样器会让每个线程暂停5分钟,由于所有线程同时进入等待,等待结束后会同步执行后续请求
- 在POST请求后添加这个采样器,设置「Duration」为
- 添加GET请求:
- 配置好GET的接口信息,无需额外设置,100个线程会在等待结束后一次性无间隔发送
方法二:JSR223 Sampler控制延迟
如果Test Action Sampler不符合需求,也可以用脚本实现延迟:
- 线程组和POST请求的配置和方法一完全一致
- 在POST请求后添加JSR223 Sampler,在脚本框中输入:
Thread.sleep(300000);- 这段代码会让当前线程暂停5分钟,100个线程同步等待后,再同时触发GET请求
- 最后添加GET请求即可
注意事项
- 确保线程组没有设置额外的延迟或调度器,避免影响并发效果
- 如果POST请求需要参数化,保证参数配置不会导致线程间的依赖或等待
- 若遇到线程不同步的情况,可以检查JMeter的线程隔离设置,确保每个线程的延迟逻辑独立执行
内容的提问来源于stack exchange,提问作者iamdinesh007
相关产品推荐
相关产品推荐

