邏輯控制器能夠控制採樣器的執行順序,因此控制器須要和採樣器一塊兒使用post
Jmeter中的邏輯控制器分爲兩類測試
一、控制測試計劃執行過程當中節點的邏輯順序,如循環控制器、If控制器lua
二、對測試計劃中的腳本進行分組,方便Jmeter統計執行結果以及進行腳本的運行時控制,如事務控制器、吞吐量控制器線程
邏輯控制器類型blog
1、簡單控制器索引
做用:這是Jmeter最簡單的控制器,它能夠組織咱們的採樣器和和其餘邏輯控制器,至關於分組,提供一個塊的結果和控制,並不具備任何的邏輯控制或運行時的功能事務
2、循環控制器字符串
做用:指定其子節點運行的次數,可使用具體的數字,也可使用變量it
若是同時設置了線程組的循環次數和循環控制器的循環次數,那循環控制器的子節點運行次數爲線程組循環次數*循環控制器循環次數io
3、僅一次控制器
做用:在測試計劃執行期間,該控制器下的子節點對每一個線程組只執行一次
若是將僅一次控制器做爲循環控制器的子節點,那麼僅一次控制器在每次循環的第一次迭代時均會被執行
4、ForEach控制器
做用:ForEach控制器通常和用戶自定義變量一塊兒使用,其在用戶自定義變量中讀取一系列相關的變量。該控制器下的採樣器或控制器都會被執行一次或屢次,每次讀取不一樣的變量值
參數:
輸入變量前綴,即用戶定義變量的前綴
循環開始的索引(不包含),若是不填寫,默認從1開始,若是沒有從1開始的變量,執行時會報錯
循環結束的索引(包含)
輸出變量名稱,其餘地方能夠經過${變量名稱}進行調用
輸入變量名稱中是否使用「_」分隔
好比用戶定義的變量以下:
5、事務控制器
做用:事務控制器會產生一個額外的採樣器,用來統計該控制器下全部子節點的時間
Generate parent sample:生成父取樣器,不勾選時,事務控制器添加在其採樣器後面;勾選時,事務控制器是做爲其下采樣器的父採樣器,效果見以下圖
Include duration of timer and pre-post processors in generated sample:勾選後會統計定時器的時間和先後生成採樣器的時間,不然只統計採樣器的時間
6、若是(If)控制器
參數:
Interpret Condition as Variable Expression:判斷變量值是否等於字符串true,不區分大小寫
Evaluate for all children:勾選後,在每一個子節點執行前都會計算表達式
7、Switch控制器
做用:Switch控制器經過給該控制器中的value賦值,來指定運行哪一個採樣器,有兩種賦值方式
第一種經過數字賦值,Switch控制器下的子節點從0開始計數,經過指定子節點所在的數值來肯定執行哪一個元素
第二種是直接指定子元素的名稱,好比採樣器的名稱來進行匹配,當指定名稱不存在時,不執行任何元素
當value爲空時,默認執行第一個子節點元素
8、吞吐量控制器
做用:控制其下的子節點的執行次數與負載比例分配,有兩種方式
Total Executions:設置運行次數
Percent Executions:設置運行比例(1~100之間)
9、隨機控制器
做用:隨機執行其下某個子節點
10、隨機順序控制器
做用:按隨機順序,執行其下的全部子節點
11、Runtime控制器
做用:用於控制該控制器下的取樣器或控制器的運行時間,單位秒