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