Jmeter多業務混合場景如何設置各業務所占並發比例


在進行多業務混合場景測試中,需要分配每個場景占比。

具體有兩種方式:

1.多線程組方式;

2.邏輯控制器控制;

第一種:

jmeter一個測試計划可以添加多個線程組,我們把不同的業務放在不同的線程組中,通過控制線程數來控制業務占比。比如實際業務中需要線程組A、線程組B和線程組C的比例為:3:2:1,那么我們可以設置線程組A的線程數為90,線程組B的線程數為60,線程組C的線程數為30,這樣就可以粗略的達到要求的比例。但是如果三個事務的響應時間不一樣,最終完成的業務數也會有所差異。假設當前線程數的響應時間是完全一致的,才會有3:2:1的業務占比,當然這個是理想狀態。

例如測試需求如下:對業務A、業務B、業務C、業務D、業務E,5個業務按並發比例要求進行100個用戶並發的壓力測試;

 

 

JMeter是可以實現上述需求的,測試方案如下:

1.創建一個測試計划;

2.在該計划下添加5個線程組,分別是對業務A、業務B、業務C、業務D、業務E;

3.分別設置線程組業務A、業務B、業務C、業務D、業務E的線程數為:40、10、20、25、5(總並發量為100,按並發比例設置並發用戶數)

 

 

 第二種方式:

jmeter的函數對話框中${__counter(True,)}函數獲取當前迭代的次數。迭代次數也能獲取到,那如何保持3:2的比例呢?這就是一個數學問題了。不賣觀子,直接上代碼:${__counter(true,)}%2==1||${__counter(true,)}%3==0上面_counter(true,)是獲取當前迭代次數,%是取余,也就是是除2余1與3,整除時執行開新帖。以9次迭代為例:回帖9次,1,3,5,6,7,9次迭代時都會開新帖,回帖剛好是6次。9:6=3:2基本上達到了3:2的比例。

 

 

方案二:采用jmeter本身自帶的計算器,不失為一個好的方法。但是針對一些復雜的場景,這個計算式有點難寫,

  比如:3:2這個比例,我看到網上的實現都是${__counter(true,)}%2==1||${__counter(true,)}%3==0,

  這種計算方式就比較復雜了,那有沒有簡單一點實現方式呢?

  其實是有的。

   當參數為true時,每個用戶有自己的計數器,比如10個線程組,100個loop,這是計數器的值為1-100.

   當選擇false,全局計算器,10個線程組,100個loop,計數器值為1-10000

 比如下面場景:

 

 

那么表達式應該怎么寫呢?

 上面有3的倍數,5的倍數,那么取其最小公倍數15,按照15分割。

均使用If控制器,表達式分別為:

a:  ${__counter(false,)}%15 <=5

b:  ${__counter(false,)}%15 >5

c:   ${__counter(false,)}%15==1

d:   ${__counter(false,)}%15>1&& ${__counter(false,)}%15<=5

總結規律:

按照最小的公倍數分割,每個控制器取他們應占的份數。

上面的3:2的實現手段,就更容易了,一個占2/5,一個占3/5

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM