压测某个系统,多个交易同时压测时,交易之间存在占比关系,这时就需要控制每支交易的TPS,Constant Throughput Timer可实现该功能
1.添加方式
2.元件介绍
Target throughput(in samples per minute):目标吞吐量(单位分钟),即每分钟执行多少次(TPM)
Calculate Throughput based on(计算吞吐量策略):
1、This thread only:仅对当前线程,也就是每个线程相互是不干扰的,都互相分开计算需要多少延迟时间(总吞吐量=Target throughput乘以线程数)
2、All active threads:针对所有线程,把所有线程的吞吐量合在一起作为因子计算
3、All active threads in current thread group:针对当前线程组中的所有线程
4、All active threads(shared):线程延迟计算是基于任意一个线程上次运行的时间,也就是随便获取一个线程的运行时间来计算,既然是随机,结果就不一定准确,所以只能是努力控制吞吐量在某一个范围
5、All active threads in current thread group (shared):在当前线程组中任取一个线程的上次运行时间来计算延时,与上面意思相近
2、3和4、5的区别,大概是线程等待的结束信号不同。2、3是当前线程结束了,等待合理时间,就可以再启动运行。4、5是,等待所以线程的活跃线程都结束了,再等待合理时间再次运行。
注:
1.建议吞吐量控制器添加在线程组最后一个请求下
2.建议All active threads in current thread group选择All active threads in current thread group
3.当Target throughput(in samples per minute):n,
Calculate Throughput based on选择All active threads in current thread group,若固定吞吐量控制器放在请求下,代表该请求的TPM为n,若放在事务控制器下,且事务控制器下的请求有3个,那么每个请求的TPM为n/3
对此定时器的深度认识:
1,这里的20 QPS应该是指Jmeter发送请求的QPS,而不是服务器处理的QPS;--因为假如我们以20 QPS的速度向服务器发送请求,但是服务器每秒最多只能处理8个请求,那么我们无论如何都无法测得服务器在20 QPS的情况下的性能数据;
2、难点在于让Jmeter【稳定地】以20 QPS的速度向服务器发送请求
参考:https://blog.csdn.net/weixin_43809249/article/details/88935206