JMeter如何按指定时间段分配请求实现分时段差异化压力测试
JMeter 多时段流量分配实现方案
前置计算
你原配置的总请求数为 500线程 × 1000循环 = 500000,按比例拆分各时段请求量:
- 早班低流量(8小时):500000 × 20% = 100000 请求
- 午间高流量(4小时):500000 × 50% = 250000 请求
- 晚一班极高流量(1小时):500000 × 20% = 100000 请求
- 晚二班低流量(约4小时):500000 × 10% = 50000 请求
核心配置步骤
共创建4个独立线程组,每个线程组对应一个时段,通过调度器控制运行时间段,配合常量吞吐量定时器控制发压速度,完全匹配你的流量要求。
1. 通用配置规则
所有线程组统一勾选调度器选项,按需求选择两种时间控制逻辑:
- 固定自然时间运行:直接填写对应时段的
启动时间和结束时间,比如早班填当天07:00启动、15:00结束 - 相对测试启动时间运行:填写
启动延迟和持续时间,比如早班设置启动延迟0、持续时间28800秒,午间设置启动延迟28800秒、持续时间14400秒,无需对齐自然时间
2. 各时段线程组参数(总线程数刚好对齐500)
- 早班低流量线程组
- 线程数:100,ramp-up时间:100秒,循环次数:永远
- 添加常量吞吐量定时器,目标吞吐量设置为
208/分钟(对应每秒≈3.5请求,8小时刚好跑满10万请求)
- 午间高流量线程组
- 线程数:250,ramp-up时间:250秒,循环次数:永远
- 添加常量吞吐量定时器,目标吞吐量设置为
1042/分钟(对应每秒≈17.4请求,4小时刚好跑满25万请求)
- 晚一班极高流量线程组
- 线程数:100,ramp-up时间:60秒,循环次数:永远
- 添加常量吞吐量定时器,目标吞吐量设置为
1667/分钟(对应每秒≈27.8请求,1小时刚好跑满10万请求)
- 晚二班低流量线程组
- 线程数:50,ramp-up时间:50秒,循环次数:永远
- 添加常量吞吐量定时器,目标吞吐量设置为
209/分钟(对应每秒≈3.5请求,4小时刚好跑满5万请求)
注意事项
- 如果需要严格控制总请求数不溢出,可以把循环次数从
永远改成对应数值,比如早班100线程总请求10万,每个线程循环1000次即可 - 定时器的计算逻辑是
总请求数 ÷ 时段总秒数 × 60,如果调整总流量规模,按这个公式重新计算吞吐量数值即可 - 不需要手动启停线程组,JMeter会自动按你设置的调度规则执行对应时段的发压
内容的提问来源于stack exchange,提问作者A-Makeyev
相关产品推荐
相关产品推荐

