JMeter线程组中多API的TPS占比控制配置方法咨询
在JMeter中按比例分配API请求量的实现方法
方法一:使用吞吐量控制器(推荐)
这是实现固定比例请求分配最直接的方式,支持按总执行次数或百分比控制:
- 在线程组下添加4个吞吐量控制器,分别对应API#1至API#4
- 逐个配置控制器:
- API#1控制器:选择「Total Executions」模式,设置吞吐量为
10 - API#2控制器:选择「Total Executions」模式,设置吞吐量为
20 - API#3控制器:选择「Total Executions」模式,设置吞吐量为
30 - API#4控制器:选择「Total Executions」模式,设置吞吐量为
40
- API#1控制器:选择「Total Executions」模式,设置吞吐量为
- 将对应的API请求分别放入各自的吞吐量控制器下
如果需要适配动态总请求量(不固定为100),可以切换为「Percent Executions」模式,分别设置百分比为10、20、30、40,这样无论总请求多少,都能保持设定的占比。
方法二:随机变量+逻辑控制器
适合需要动态概率分配的场景,长期运行后比例会趋近于设定值:
- 添加随机变量元件,生成1-100的随机整数,变量名设为
random_num - 在线程组下添加4个If控制器,分别设置判断条件:
- API#1的If控制器条件:
${__jexl3(${random_num} <= 10,)} - API#2的If控制器条件:
${__jexl3(${random_num} > 10 && ${random_num} <= 30,)} - API#3的If控制器条件:
${__jexl3(${random_num} > 30 && ${random_num} <= 60,)} - API#4的If控制器条件:
${__jexl3(${random_num} > 60 && ${random_num} <= 100,)}
- API#1的If控制器条件:
- 将对应的API请求放入各自的If控制器下
额外说明
如果需要控制整体TPS而非总请求量,可以搭配Constant Throughput Timer或Precise Throughput Timer设定总吞吐量,再结合吞吐量控制器的百分比模式分配各API的请求占比。测试前可先运行100次请求验证执行次数是否符合预期。
内容的提问来源于stack exchange,提问作者GlidingSwords997
相关产品推荐
相关产品推荐

