JMeter逻辑控制器之吞吐量控制器(Throughput Controller)
一、背景
性能测试时,需要模拟真实用户的使用场景,所以往往在设计性能测试用例时,需要模拟多业务场景下,各个业务按一定的比例进行压测,测试系统对应业务的响应时间等指标。而吞吐量控制器(Throughput Controller)可以控制分配不同比例的并发用户数。

二、吞吐量控制器(Throughput Controller)
1、吞吐量控制器界面介绍


属性定义如下:
| 属性 | 描述 |
|---|---|
| Name | 控制器名称,可以根据实际情况进行设置 |
| Comments | 注释,描述在业务中的作用 |
| Based on | percent execution:按照百分比来执行 |
| Based on | total executions:按照次数来执行 |
| Throughput | 当选择percent execution:0-100,代表执行次数的百分比,比如填 50,代表一半迭代中执行 |
| Throughput | 当选择total executions:代表执行的总次数 |
| Per User | 若勾选,每个线程(用户)会单独计算执行频率。若不勾选(默认),所有线程统一计算执行频率 |
2、按照次数来执行(total executions)
| 业务项 | total executions |
|---|---|
| 场景1 | 1 |
| 场景2 | 3 |
- 线程组配置

-
场景1配置
吞吐量控制器(Throughput Controller)配置为按次数执行,执行1次

-
场景2配置
吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

-
查看结果
场景1执行了1次,场景2执行了3次,与线程组配置执行的总次数一致。

3、按照百分比来执行(percent execution)
| 业务项 | Percent Executions |
|---|---|
| 场景1 | 25% |
| 场景2 | 75% |
- 线程组配置

-
场景1配置
吞吐量控制器(Throughput Controller)配置为按百分比执行,占总执行次数的25%

-
场景2配置
吞吐量控制器(Throughput Controller)配置为按百分比执行,占总执行次数的75%

-
查看结果
线程组配置执行的总次数4次,场景1执行了1次,占比25%,场景2执行了3次,占比75%。


4、不勾选 per user
若不勾选per user,运行次数=吞吐量(Throughput)

| 业务项 | total executions |
|---|---|
| 场景1 | 3 |
| 场景2 | 3 |
- 线程组配置:2个用户,循环执行3次,总次数6次

-
场景1配置
吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

-
场景2配置
吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

-
查看结果
场景1执行了3次,场景2执行了3次,与线程组配置执行的总次数一致。
若不勾选per user,运行次数=吞吐量(Throughput)=3 次,与上图一致。

5、勾选 per user
若勾选per user,运行次数=吞吐量(Throughput)× 循环次数

| 业务项 | total executions |
|---|---|
| 场景1 | 3 |
| 场景2 | 3 |
- 线程组配置:2个用户,循环执行3次,总次数6次

-
场景1配置
吞吐量控制器(Throughput Controller)配置为按次数执行,每个用户执行3次,此处线程组2个用户,那么应该是执行6次。

-
场景2配置
吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

-
查看结果
场景1执行了6次,场景2执行了3次,与线程组配置执行的总次数一致。
若勾选per user,运行次数=吞吐量(Throughput)× 循环次数=3×2=6,与上图一致。

综述,建议Throughput Controller参数配置项中Per User选择,建议按默认的不勾选此项进行配置。避免与场景模型设置的比例不一致。
三、参考
1、官网:https://jmeter.apache.org/usermanual/component_reference.html#Throughput_Controller

浙公网安备 33010602011771号