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

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

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

多個線程組

設置兩個單獨的線程組,線程組一隻請求百度首頁,併發設置(目標併發10個,併發時間3分鐘,分兩步併發),線程組二請求必應首頁,併發設置(目標併發30個,併發時間3分鐘,分兩步併發)。
jmeter混合場景的多種實現方式比較
jmeter混合場景的多種實現方式比較
按所設置的條件併發,得到如下測試結果:
jmeter混合場景的多種實現方式比較
百度和必應首頁的平均響應時間相差較大,雖然百度首頁設置的併發用戶數少,但最後併發的次數百度是必應的7倍多,不符合當初設置的要求。

使用if控制器

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

首先在線程組加一個配置元件-random value,取值範圍爲1-100,變量名設爲num。
jmeter混合場景的多種實現方式比較
百度首頁的if條件設置爲${num}<25,必應首頁的if控制器條件設爲${num}>25.
jmeter混合場景的多種實現方式比較
jmeter混合場景的多種實現方式比較
線程組的併發設爲目標併發30個,併發時間3分鐘,分兩步併發。測試結果如下,併發請求數大致爲1:3,符合需求:
jmeter混合場景的多種實現方式比較

模式匹配規則

實現方式與if控制器大體一致,只是把if控制器換爲吞吐量控制器,分別設置兩個控制器的吞吐量百分比爲25%和75%,也即1:3的併發比例。
jmeter混合場景的多種實現方式比較
jmeter混合場景的多種實現方式比較
測試結果如下,可看出吞吐量控制器與if控制器的請求併發總數也基本一樣,請求比例也符合1:3的原始設置:
jmeter混合場景的多種實現方式比較
縱觀以上的測試結果,可看出使用if控制器和吞吐量控制器均能實現我們的預期目標,即合理的併發請求比例,而採用多個線程組的方式與我們目標有一定差距,原因在於各線程組的請求響應時間相差大,雖然同時併發,但實際併發比例難以控制。

若混合場景下各請求的響應時間差不多,多線程組的方式理論上也是能按預設比例併發的,只是實際測試的情況下,無法保證請求響應時間的大小,所以測試混合場景的時候,使用if控制器或者吞吐量控制器顯然是更好的選擇。
jmeter混合場景的多種實現方式比較
睿江雲官網鏈接:https://www.eflycloud.com/home?from=RJ0035

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章