代码改变世界

JMeter 常数吞吐量定时器(Constant Throughput Timer)

2023-12-27 10:11  颖ing  阅读(611)  评论(0编辑  收藏  举报

常数吞吐量定时器(Constant Throughput Timer)

可以让线程以一个目标吞吐量去运行

需要注意的是:这个常量吞吐量定时器只有在线程组中产生了足够多的请求的时候才有意义.否则,就算设置了这个目标吞吐量,也有可能由于线程数和请求数不够,而打不到预期的目标.

右键添加-->定时器-->常数吞吐量定时器,见下图

 目标吞吐量(每分钟的样本量)(Target throughput (in samples per minute)):每分钟的吞吐量

基于计算吞吐量(Calculate Throughput based on):

  • 只有此线程(this thread only):控制每个线程的吞吐量,总的吞吐量=设置的target Throughput 乘以该线程的数量
  • 所有活动线程(all active threads):设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程
  • 当前线程组中的所有活动线程(all active threads in current thread group):设置的target Throughput 将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和all active threads 选项的效果完全相同
  • 所有活动线程(共享)(all avtive threads (shared)):与all active threads的选项基本相同。唯一区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行
  • 当前线程组中的所有活动线程(共享)(all active threads in current thread group (shared)):与all active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行

 只在此线程:目标吞吐量 * 线程数

  • 目标吞吐量(每分钟的样本量):120.0   相当于一秒两个,大概就是 TPS 为 2
  • 两个线程组:线程数5,持续时间300秒

常数吞吐量定时器选择只在此线程:线程组1、线程组2的吞吐量=2*5=10;每个线程组样本数=2*5*300=3000

结果如下:

所有活动线程:目标吞吐量    如果只有一个线程组,那么吞吐量=2;样本数=2*300=600    线程组1、线程组2的吞吐量=1;每个线程组样本数=总的样本数/2=2*300/2=300

 当前线程组中的所有活动线程:每个线程组的吞吐量=目标吞吐量  线程组1、线程组2的吞吐量=2;每个线程组样本数=2*300=600

 所有活动线程(共享):目标吞吐量 / 所有活动线程  与所有活动线程结果相同  如果只有一个线程组,那么吞吐量=2;样本数=2*300=600    线程组1、线程组2的吞吐量=2/2=1;每个线程组样本数=总的样本数/2=2*300/2=300

 

 当前线程组中的所有活动线程(共享):目标吞吐量 / 单线程组下所有活动线程