Jmeter----邏輯控制器(Logic Controller)

來源:互聯網
上載者:User

標籤:自訂   計數   底線   timer   tran   迴圈控制   結果   否則   page   

前言:

1、 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。意思是說,邏輯控制器可以控制採樣器(samplers)的執行順序。由此可知,控制器需要和採樣器一起使用,否則控制器就沒有什麼意義了。放在控制器下面的所有的採樣器都會當做一個整體,執行時也會一起被執行。

2、JMeter中的Logic Controller分為兩類:

  a) 控制測試計劃執行過程中節點的邏輯執行順序,如:Loop Controller、If Controller等;

  b) 對測試計劃中的指令碼進行分組、方便JMeter統計執行結果以及進行指令碼的運行時控制等,如:Throughput Controller、Transaction Controller。

3、Jmeter提供如下這麼多的控制器:

 

一、簡單控制器(Simple Controller):

  作用:這是Jmeter裡最簡單的一個控制器,它可以讓我們組織我們的採樣器和其它的邏輯控制器(分組功能),提供一個塊的結構和控制,並不具有任何的邏輯控制或運行時的功能。 

二、迴圈控制器(Loop Controller):

  作用:指定其子節點啟動並執行次數,可以使用具體的數值(如,設定為5次),也可以使用變數

  1、Forever選項:勾選上這一項表示一直迴圈下去

  2、如果同時設定了線程組的迴圈次數和迴圈控制器的迴圈次數,那迴圈控制器的子節點啟動並執行次數為兩個數值相乘的結果。

 

三、僅一次控制器(Once Only Controller):

  作用:在測試計劃執行期間,該控制器下的子結點對每個線程只執行一次,登入情境經常會使用到這個控制器。

  注意:將Once Only Controller作為Loop Controller的子節點,Once Only Controller在每次迴圈的第一次迭代時均會被執行。 

四、ForEach控制器(ForEach Controller):

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

參數:

  • Input Variable Prefix:輸入變數首碼
  • Output variable name:輸出變數名稱
  • Start index for loop(exclusive):迴圈開始的索引(這裡如果不填寫,預設從1開始,如果沒有1開始的變數,執行時會報錯)
  • End index for loop(inclusive):迴圈結束的索引
  • Add”_”before number:輸入變數名稱中是否使用“_”進行間隔。

使用者自訂變數:

  變數名首碼為ForEach Controller中Input variable prefix定義的name + 底線(中我們勾選了底線)+數字編號

執行結果:

  總共執行了3次,每次執行時會把擷取到的變數值賦值給輸出變數outNmae,其它地方可以通過${outNmae}進行調用。

 

五、事務控制器(Transaction Controller):

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

參數:

  • Generate parent sample:(選中這個參數結果展示如紅框,否則顯示為藍框)
  • Include duration of timer and pre-post processors in generated sample:選中這一項會統計定時器(timer)的時間,否則只統計採樣器(sample)的時間

 

六、If 控制器(If Controller):

   作用:根據給定運算式的值決定是否執行該節點下的子節點,預設使用javascript的文法進行判斷(如紅框內的文字)。

參數:

  • Interpret Condition as Variable Expression?:選中這一項時表示:判斷變數值是否等於字串true(不區分大小寫)
  • Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算運算式 

樣本一:使用變數的方式進行判斷:

樣本二:選中Interpret Condition as Variable Expression?

 

七、Switch控制器(Switch Controller):

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

  • 第一種是數值,Switch控制器下的子節點從0開始計數,通過指定子節點所在的數值來確定執行哪個元素。
  • 第二種是直接指定子項目的名稱,比如採樣器的Name來進行匹配。當指定的名稱不存在時,不執行任何元素。

當Value為空白時,預設執行第1個子節點元素。 

樣本:

1、Switch Controller選擇的值為login page

2、執行結果:

 

八、輸送量控制器(Throughput Controller):

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

  • Total Executions:設定運行次數
  • Percent Executions:設定運行比例(1~100之間)

 

樣本:

1、設定線程組迴圈5次:

2、Throughput Controller1的子結點執行3次:

3、Throughput Controller2的子結點執行(40% * 線程組迴圈次數5)= 2次:

執行結果:

 

 

九、隨機控制器(Random Controller):

   作用:隨機執行其下的所某個子結點

 

十、隨機順序控制器(Random Order Controller):

   作用:隨機執行其下的所有子結點

 

 

 

官網地址:

http://jmeter.apache.org/usermanual/component_reference.html#logic_controllers

Jmeter----邏輯控制器(Logic Controller)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.