Jmeter之邏輯控制器使用
誠信丨進取丨合作丨創新
招進松勤,送去企業 你若有夢,松勤有心
?
松勤與你相約
零基礎就業班&自動化班
和你手舞足蹈聊測試
一、測試過程中由於業務的多樣性,需要通過一些邏輯控制器來進行處理各線程之間的關係。
1、比如遇到問題:介面B依賴 介面A返回的參數,該參數作為介面B的請求參數,該參數是個集合,還需要進行循環請求驗證介面問題,這時候就在想Jmeter中什麼方法比較好實現,單純的用java就可以使用循環加變數實現,在Jmeter內去設計剛開始各種變數的關係還比較麻煩
2、提取介面A的返回欄位期次,-1表示取所有符合條件的
介面B需要循環次數是Issue的個數,$是所有滿足issue的個數
同時介面B每循環一次需要變更參數,請求前將參數傳入,寫入jmeter變數idb,b初始值=1
3、同樣的有三層循環還可以繼續增加子循環
不斷調試,測試成功,結果如下:
二、其他常用控制器如下:
1、事務控制器,可以是單個介面請求,可以是多個用戶行為的集合,和Loadrunner的Transaction一樣
勾選generate parent sample後,在聚合報告該控制器內會作為一個事務去統計qps等指標
2、交替控制器:控制器下各Sampler每次交替進行,循環10次,每次依次選擇一個Sampler
3、僅一次控制器:可以理解為 Loadrunner的vuser_init,一般來說可以編寫登錄腳本,僅登錄一次
4、吞吐量控制器:從整體運行次數來控制該控制器內Sampler運行次數
線程組總的執行次數=線程數*循環次數
Total Executions :按照總數去執行,設置5就是5次;勾選per user,就是每個線程5次,總執行次數
需要*線程數
具體實踐如下:
(1)設置線程組:5*200=1000次
(2)設置吞吐量控制器:Total Executions:5,不勾選per user
執行結果如下:每個Sampler只執行5次
(3)設置吞吐量控制器:Total Executions:5,勾選per user,執行結果如下5*5
Percent Executions:運行佔比,總執行次數*5%
(1)不勾選per user
(2)勾選per user
可以看出 百分比的話勾選不勾選結果都一樣
5、如果(if)控制器,如果條件錯誤中斷執行,如果條件為true則繼續執行,對於某些業務需要用到
設置demo-1,demo=2,當IsCross=1時繼續執行
結果成功:
6、錄製控制器:還沒使用過
7、循環控制器:前面案例已經使用過
8、模塊控制器:可以尋找具體的控制器
還有一些其他控制器,主要還是看業務需要,看哪些控制器能更好的實現了。
關注「松勤軟體學院」
松勤
學習技術,多問問題,和松勤一起成長
TAG:松勤軟體學院 |