Jmeter之邏輯控制器(Logic Controller)
Jmeter之邏輯控制器(Logic Controller)
前言:
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
作者:Glen.He
出處:http://www.cnblogs.com/puresoul/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
相關文章
- Jmeter邏輯控制器之If Controller的使用解析JMeterController
- Jmeter-邏輯控制器If Controller的例項運用JMeterController
- jmeter基礎邏輯控制器之ForEach控制器JMeter
- jmeter學習指南之16個邏輯控制器JMeter
- Jmeter(九) - 從入門到精通 - JMeter邏輯控制器 - 上篇(詳解教程)JMeter
- Jmeter(十) - 從入門到精通 - JMeter邏輯控制器 - 中篇(詳解教程)JMeter
- Jmeter(十一) - 從入門到精通 - JMeter邏輯控制器 - 下篇(詳解教程)JMeter
- Jmeter(十二) - 從入門到精通 - JMeter邏輯控制器 - 終篇(詳解教程)JMeter
- 孕龍邏輯分析儀 ZeroPlus Logic Analyzer
- 邏輯卷管理-LVM(LOGIC VOLUMN MANAGER)LVM
- Jmeter系列(55)- 詳解 Throughput Controller 吞吐量控制器JMeterController
- 組合邏輯環(Combinational Logic Loop)OOP
- 使用開源API Logic Server實現業務邏輯模型自動化APIServer模型
- Jmeter——ForEach Controller&Loop ControllerJMeterControllerOOP
- 機器學習之邏輯迴歸機器學習邏輯迴歸
- 如何使用 jMeter Parallel Controller - 並行控制器以及一些常犯的錯誤JMeterParallelController並行
- Java基礎之邏輯控制Java
- 邏輯漏洞之密碼重置密碼
- 微信小程式開發系列四:微信小程式之控制器的初始化邏輯微信小程式
- laravel 5 Controller 控制器LaravelController
- Android 視訊控制器出入邏輯及動畫的封裝Android動畫封裝
- 如何使用jMeter傳送兩個邏輯上相關的HTTP請求JMeterHTTP
- linux之LVM邏輯卷LinuxLVM
- sql優化之邏輯優化SQL優化
- mysql學習之-邏輯架構MySql架構
- jMeter Transaction Controller 學習筆記JMeterController筆記
- 形式邏輯(普通邏輯)7:推理概述
- Jmeter系列(50)- 詳解 If 控制器JMeter
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型
- 機器學習之邏輯迴歸:計算概率機器學習邏輯迴歸
- 公司內部分享之mysql邏輯框架MySql框架
- oracle邏輯備份之--資料泵Oracle
- Spark LogisticRegression 邏輯迴歸之建模Spark邏輯迴歸
- Oracle 邏輯備份之EXPDP精講Oracle
- MySQL之SQL邏輯查詢順序MySql
- @Controller基本註解的控制器Controller
- 邏輯分析
- 邏輯題