JMeter使用邏輯控制器來決定采樣器的處理順序。
· ForEach控制器:一般和用戶自定義變量(User Defined Variables)一起使用,其在用戶自定義變量中讀取一系列相關的變量。該控制器下的采樣器或控制器都會被執行一次或多次,每次讀取不同的變量值。
· include controller:被設計用于使用外部jmx文件。
· Runtime Controller(運行時長控制器):設置運行時長。
· Switch Controller:在switch value中輸入執行的子測試元件對應數字(或名稱),子測試元件從0開始編號。
· While Controller:該控制器會一直運行自己的子測試元件,直到條件變為“false”.
· 事務控制器(Transaction Controller):會生產一個額外的采樣器,用來統計該控制器子結點的所有時間。
· 交替控制器(Interleave Controller):順序為該控制器下子測試元件1、非該控制器下測試元件123456、該控制器下子測試元件2、非該控制器下測試元件123456、該控制器下子測試元件、……
· 僅一次控制器(Once Only Controller):在測試計劃執行期間,該控制器下的子結點對每個線程只執行一次,登錄場景經常會使用到這個控制器。
· 吞吐量控制器(Throughput Controller):控制其下的子節點的執行次數與負載比例分配。
· 如果控制器(If Controller):控制其下子測試元件是否執行,根據給定表達式的值決定是否執行該節點下的子節點,默認使用javascript的語法進行判斷。
· 錄制控制器:是一個存放位置,指明了代理服務器錄制的采樣應該放在哪里。
· 循環控制器(Loop Controller):設置循環次數。
· 模塊控制器(Module Controller):提供了一個機制,即在當前測試計劃中動態地替換測試計劃判斷。
· 簡單控制器(Simple Controller):可以讓我們組織我們的采樣器和其它的邏輯控制器(分組功能),提供一個塊的結構和控制,并不具有任何的邏輯控制或運行時的功能。
· 隨機控制器(Random Controller):類似于交替控制器,不同是其下子測試元件不會按順序輪流執行,現在隨機挑選執行。
· 隨機順序控制器(Random Order Controller):像一個簡單控制器,每個子測試元件都至多執行一次,但是執行順序是隨機的。