Concurrency Thread Group 是 JMeter 的一个第三方插件(通过 bzm - Concurrency Thread Group
实现),专为更精确控制并发用户数(同时活跃用户)而设计。相较于标准的 Thread Group
,它更擅长模拟压力测试中动态调整并发量的场景(如步进式加压、峰值保持)。以下是核心用法详解:
核心概念
- 目标并发数(Target Concurrency):同时活跃的用户数(非总线程数)。
- 智能线程管理:自动增减线程数量以维持目标并发(考虑请求响应时间)。若响应变慢,JMeter 会启动更多线程补偿。
安装插件
- 通过 JMeter Plugins Manager 安装:
- 下载 。
- 在 JMeter 中点击:
Options
>Plugins Manager
> 搜索 Concurrency Thread Group 并安装。
配置参数详解
参数 | 说明 |
---|---|
Target Concurrency | 目标并发用户数(如 100)。 |
Ramp Up Time | 从 0 达到目标并发所需时间(单位:分钟/秒)。 |
Ramp-Up Steps Count | 分多少步达到目标(阶梯式递增)。 |
Hold Target Rate Time | 保持目标并发的时间(稳定压力阶段)。 |
Thread Iterations Limit | 线程最大执行次数(留空则为无限)。 |
Time Unit | 时间单位(Min / Sec)。 |
Log Thread Status | 记录线程启停日志(调试用)。 |
经典场景配置示例
场景:模拟阶梯加压到峰值并保持
- 目标:10分钟内逐步加压到 200 并发,保持 30 分钟。
- 配置:
- Target Concurrency:
200
- Ramp Up Time:
10
分钟 - Ramp-Up Steps Count:
10
(每1分钟增加 20 用户) - Hold Target Rate Time:
30
分钟 - Thread Iterations Limit: 留空(持续运行)
- Time Unit:
Min
- Target Concurrency:
场景:秒级精确控制
- 30秒内增至 50 并发,保持 2 分钟:
Target Concurrency: 50 Ramp Up Time: 30 (单位选 Sec) Hold Target Rate Time: 120 (Sec)
高级选项
- Max Threads (Safety): 限制最大线程数(防止因响应慢无限创建线程)。
- Auto Stop: 当错误率/响应时间超过阈值时自动停止测试。
- Ramp-Down: 通过追加
hold
后配置 "Then Ramp Down to 0" 支持平缓退出。
使用流程
- 添加组件:右键 Test Plan →
Add
→Threads (Users)
→bzm - Concurrency Thread Group
. - 配置参数:按需求填写并发目标、时间等。
- 添加 Sampler:在线程组下添加 HTTP Request 等采样器。
- 添加监听器:推荐使用:
Active Threads Over Time
:实时监控并发数Response Times Over Time
:响应时间趋势Aggregate Report
:汇总统计
注意事项
- 线程数 ≠ 并发数:线程数会动态变化(响应慢时线程增多)。
- 阶梯控制:
Ramp-Up Steps Count
值越大,加压越平滑。 - 与
Throughput Shaping Timer
联动:可创建更复杂的并发模型。 - 资源监控:搭配
PerfMon Metrics Collector
监控服务器资源。
💡 最佳实践:先用小规模并发验证脚本逻辑,再逐步增加压力。结合
Stepping Thread Group
进行初期探索性测试。
通过 Concurrency Thread Group,您可以精准模拟真实场景中的并发波动,适用于稳定性测试、压力峰值测试等关键场景。