壓測某個系統,多個交易同時壓測時,交易之間存在占比關系,這時就需要控制每支交易的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