jmeter混合場景的多種實現方式比較


      性能測試設計混合場景,一般有幾種方式,分別是每個場景設置一個線程組,使用if控制器,使用吞吐量控制器。不同的方式實現機制不一樣,哪種方式相比而言更好呢?下面做一比較。

下面以混合訪問百度首頁和必應首頁作為測試場景,訪問預設為1:3。

一、多個線程組

操作步驟:

1、Jmeter上創建一個測試計划;

2、計划下添加3個線程組,分別是對業務場景A、業務場景B、業務場景C;

3、假設3個場景混合並發的比例為4:4:2,則可以在3個線程組分別設置4、4、2,或者設置為40、40、20總並發量為100,只要按並發比例設置並發用戶數即可

4、運行整個測試計划(計划下哪個線程不跑的時候可以先禁用),則所有接口會混合跑,實現接口混合並發壓測;

結論:如果這兩個事務的響應時間不一樣,最終完成的業務數比例也會不一樣。當前線程數是在假定兩個業務的響應時間一樣的情況下,所以這完全是理想狀況。所以,這種方式控制並不完美

 

二、使用if控制器

添加一個線程組,在線程組添加兩個if控制器,分別加入兩個HTTP請求(百度首頁和必應首頁),通過調節if的條件實現按一定比例並發的需求。

首先在線程組加一個配置元件隨機變量,取值范圍為1-100,變量名設為num。

百度首頁的if條件設置為${num}<=25,必應首頁的if控制器條件設為${num}>25.

線程組的並發設為目標並發30個,並發時間3分鍾,分兩步並發。測試結果如下,並發請求數大致為1:3,符合需求:

三、吞吐量控制器

實現方式與if控制器大體一致,只是把if控制器換為吞吐量控制器,分別設置兩個控制器的吞吐量百分比為25%和75%,也即1:3的並發比例。

注意:吞吐量控制器字段有兩種:Total Executions:執行數量percent Executions:執行百分比(1-100)

 

 

測試結果可看出吞吐量控制器與if控制器的請求並發總數也基本一樣,請求比例也符合1:3的原始設置

四、結論

       縱觀以上的測試結果,可看出使用if控制器和吞吐量控制器均能實現我們的預期目標,即合理的並發請求比例,而采用多個線程組的方式與我們目標有一定差距,原因在於各線程組的請求響應時間相差大,雖然同時並發,但實際並發比例難以控制。

若混合場景下各請求的響應時間差不多,多線程組的方式理論上也是能按預設比例並發的,只是實際測試的情況下,無法保證請求響應時間的大小,所以測試混合場景的時候,使用if控制器或者吞吐量控制器顯然是更好的選擇。


免責聲明!

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



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