第七章 JMeter 邏輯控制器


前言

在 jmeter 中邏輯控制器主要分類兩類:

  • 控制 jmeter 測試計划中節點的邏輯執行順序等等
  • 對 jmeter 的節點進行分組,方便結果統計等等

進一步簡化下,筆者把邏輯控制器分為

邏輯控制類
分組控制類

 邏輯控制類:邏輯控制類控制器定義了在執行線程中請求的執行順序。下面我們就常用的邏輯控制器進行說明

  如果(if) 控制器:

控制其下面的子節點滿足條件才執行,例如,我們控制只有執行線程大於 10 個時,才執行其子節點。

條件: 判斷語句

Interpret Condition as Variable Expression?):選中這項表示:判斷變量值是否等於字符串true(不區分大小寫)

Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算表達式

例如:

用戶參數:

將需要控制的API拖放到if控制器里:${account}=="15514064088"

 

循環控制器:

控制其下面的子節點運行次數。例如我們設置其子節點執行 10次

如果勾選永遠選項,則會一直執行下去。

  僅一次控制器:

控制其子節點在整個測試計划執行期間的每個線程僅執行一次,例如我們可以用於等登錄動作。

  隨機控制器:

每次執行時,從其子節點中,隨機選擇一個進行執行,例如我們百度首頁隨機請求不同的類型的資訊信息。

簡單控制器(Simple Controller):

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

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}進行調用。

Switch控制器(Switch Controller):

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

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

當Value為空時,默認執行第1個子節點元素。 

示例:

1、Switch Controller選擇的值為login page

吞吐量控制器(Throughput Controller):

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

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

    示例:

    1、設置線程組循環5次:

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM