Jmeter(10)邏輯控制器

來自藍星發表於2020-12-13

邏輯控制器可以控制取樣器的執行順序,所以控制器需要和取樣器一起使用

Jmeter中的邏輯控制器分為兩類

1、控制測試計劃執行過程中節點的邏輯順序,如迴圈控制器、If控制器

2、對測試計劃中的指令碼進行分組,方便Jmeter統計執行結果以及進行指令碼的執行時控制,如事務控制器、吞吐量控制器

邏輯控制器型別

一、簡單控制器

 作用:這是Jmeter最簡單的控制器,它可以組織我們的取樣器和和其他邏輯控制器,相當於分組,提供一個塊的結果和控制,並不具有任何的邏輯控制或執行時的功能

二、迴圈控制器

 作用:指定其子節點執行的次數,可以使用具體的數字,也可以使用變數

如果同時設定了執行緒組的迴圈次數和迴圈控制器的迴圈次數,那迴圈控制器的子節點執行次數為執行緒組迴圈次數*迴圈控制器迴圈次數

三、僅一次控制器

 作用:在測試計劃執行期間,該控制器下的子節點對每個執行緒組只執行一次

如果將僅一次控制器作為迴圈控制器的子節點,那麼僅一次控制器在每次迴圈的第一次迭代時均會被執行

四、ForEach控制器

 作用:ForEach控制器一般和使用者自定義變數一起使用,其在使用者自定義變數中讀取一系列相關的變數。該控制器下的取樣器或控制器都會被執行一次或多次,每次讀取不同的變數值

引數:

輸入變數字首,即使用者定義變數的字首

迴圈開始的索引(不包含),如果不填寫,預設從1開始,如果沒有從1開始的變數,執行時會報錯

迴圈結束的索引(包含)

輸出變數名稱,其他地方可以通過${變數名稱}進行呼叫

輸入變數名稱中是否使用“_”分隔

比如使用者定義的變數如下:

 五、事務控制器

作用:事務控制器會產生一個額外的取樣器,用來統計該控制器下所有子節點的時間

Generate parent sample:生成父取樣器,不勾選時,事務控制器新增在其取樣器後面;勾選時,事務控制器是作為其下采樣器的父取樣器,效果見如下圖

Include duration of timer and pre-post processors in generated sample:勾選後會統計定時器的時間和前後生成取樣器的時間,否則只統計取樣器的時間

 六、如果(If)控制器

 引數:

Interpret Condition as Variable Expression:判斷變數值是否等於字串true,不區分大小寫
Evaluate for all children:勾選後,在每個子節點執行前都會計算表示式

七、Switch控制器

作用:Switch控制器通過給該控制器中的value賦值,來指定執行哪個取樣器,有兩種賦值方式

第一種通過數字賦值,Switch控制器下的子節點從0開始計數,通過指定子節點所在的數值來確定執行哪個元素

第二種是直接指定子元素的名稱,比如取樣器的名稱來進行匹配,當指定名稱不存在時,不執行任何元素

當value為空時,預設執行第一個子節點元素

 八、吞吐量控制器

作用:控制其下的子節點的執行次數與負載比例分配,有兩種方式
Total Executions:設定執行次數

Percent Executions:設定執行比例(1~100之間)

九、隨機控制器

作用:隨機執行其下某個子節點

十、隨機順序控制器

作用:按隨機順序,執行其下的所有子節點

十一、Runtime控制器

 作用:用於控制該控制器下的取樣器或控制器的執行時間,單位秒

 

相關文章