如何用Concurrency Thread Group实现阶梯式用户加压(90→990,每5分钟加90)
JMeter Concurrency Thread Group 配置方案(匹配你的阶梯压测场景)
你的压测场景是初始90并发,每5分钟新增90,最终990并发运行5分钟,用Concurrency Thread Group(简称CTG)实现的话,最直观的方式是搭配Stepping Thread Group控制阶梯式并发增长,CTG负责维持稳定并发数(线程退出后自动补位)。以下是具体配置步骤和检查要点:
一、核心参数梳理
先把场景拆解为可配置的数值:
- 初始并发:90
- 每次新增并发:90
- 新增间隔:5分钟(300秒)
- 从90到990需新增10次,加上最后维持阶段,共11个阶段
- 每个阶段持续5分钟(300秒)
- 总压测时长:11×300=3300秒(55分钟)
二、具体配置步骤
1. 安装必要插件
如果JMeter未安装CTG和Stepping Thread Group,打开Options -> Plugins Manager,搜索并安装jp@gc - Concurrency Thread Group和jp@gc - Stepping Thread Group。
2. 配置Stepping Thread Group(控制阶梯增长)
添加jp@gc - Stepping Thread Group后,填写以下参数:
- Initial Thread Count:90(初始启动的线程数)
- Thread Count Increase:90(每次新增的线程数)
- Increase Thread Count Every:300(单位:秒,即每5分钟加一次)
- Repeat Count:10(从90到990需要加10次)
- Hold Load For:300(最后达到990后,保持运行的时间,单位秒)
- Startup Delay:0(立即启动压测)
3. 配置Concurrency Thread Group(维持稳定并发)
添加jp@gc - Concurrency Thread Group,配置:
- Target Concurrency:填写
${__property(stepping.threadgroup.target,)},自动同步Stepping Thread Group的当前目标并发数 - Ramp Up Time:0(由Stepping控制线程启动节奏,无需CTG再做线性增长)
- Thread Lifetime:设置为360(单位:秒,比每个阶段的5分钟长,避免线程在阶段内提前退出),或填-1(线程直到压测结束才退出)
三、现有配置检查(通用验证点)
看不到你的截图,给你几个关键判断标准:
- 如果直接用CTG做线性增长(比如Ramp Up设为50分钟,Target设为990,Hold设为5分钟),这是错误的——你的场景是每5分钟跳增90,不是均匀增长,线性增长不符合需求。
- 如果用了Stepping+CTG组合,检查Stepping的参数是否和上述一致,尤其是新增间隔、次数、最后保持时间。
- 你线程组下的HTTP Cache Manager、HTTP Cookie Manager、Uniform Random Timer、11个HTTP Request的层级是正确的,这些元件放在线程组下没有问题。
四、额外提醒
- 压测前先做小范围验证:比如初始90并发运行1分钟,确认请求正常、并发稳定,再逐步测试阶梯增长逻辑。
- Uniform Random Timer的延迟范围要合理,比如设为0到500毫秒,模拟真实用户的思考间隔,避免请求过于集中。
内容的提问来源于stack exchange,提问作者voetbalsuuske
相关产品推荐
相关产品推荐

