1今日主題:詳解jmeter邏輯控制器
江北網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
Jmeter邏輯控制器(Logic Controller)介紹:
1、 Jmeter官網(wǎng)對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。
意思是說,邏輯控制器可以控制采樣器(samplers)的執(zhí)行順序。由此可知,控制器需要和采樣器一起使用,否則控制器就沒有什么意義了。放在控制器下面的所有的采樣器都會當(dāng)做一個整體,執(zhí)行時也會一起被執(zhí)行。
2、JMeter中的Logic Controller分為兩類:
控制測試計劃執(zhí)行過程中節(jié)點的邏輯執(zhí)行順序,如:Loop Controller、If Controller等;
對測試計劃中的腳本進行分組、方便JMeter統(tǒng)計執(zhí)行結(jié)果以及進行腳本的運行時控制等,如:Throughput Controller、Transaction Controller。
3、Jmeter提供如下這么多的控制器:
2jmeter控制器之一
一、簡單控制器(Simple Controller):
作用:這是Jmeter里最簡單的一個控制器,它可以讓我們組織我們的采樣器和其它的邏輯控制器(分組功能),提供一個塊的結(jié)構(gòu)和控制,并不具有任何的邏輯控制或運行時的功能。
二、循環(huán)控制器(Loop Controller):
作用:指定其子節(jié)點運行的次數(shù),可以使用具體的數(shù)值(如下圖,設(shè)置為5次),也可以使用變量
1、Forever選項:勾選上這一項表示一直循環(huán)下去
2、如果同時設(shè)置了線程組的循環(huán)次數(shù)和循環(huán)控制器的循環(huán)次數(shù),那循環(huán)控制器的子節(jié)點運行的次數(shù)為兩個數(shù)值相乘的結(jié)果。
三、僅一次控制器(Once Only Controller):
作用:在測試計劃執(zhí)行期間,該控制器下的子結(jié)點對每個線程只執(zhí)行一次,登錄場景經(jīng)常會使用到這個控制器。
注意:將Once Only Controller作為Loop Controller的子節(jié)點,Once Only Controller在每次循環(huán)的第一次迭代時均會被執(zhí)行。
四、ForEach控制器(ForEach Controller):
作用:ForEach控制器一般和用戶自定義變量一起使用,其在用戶自定義變量中讀取一系列相關(guān)的變量。該控制器下的采樣器或控制器都會被執(zhí)行一次或多次,每次讀取不同的變量值。如下圖:
參數(shù):
· Input Variable Prefix:輸入變量前綴
· Output variable name:輸出變量名稱
· Start index for loop(exclusive):循環(huán)開始的索引(這里如果不填寫,默認從1開始,如果沒有1開始的變量,執(zhí)行時會報錯)
· End index for loop(inclusive):循環(huán)結(jié)束的索引
· Add”_”before number:輸入變量名稱中是否使用“_”進行間隔。
用戶自定義變量:
變量名前綴為ForEach Controller中Input variable prefix定義的name + 下劃線(上圖中我們勾選了下劃線)+數(shù)字編號
執(zhí)行結(jié)果:
總共執(zhí)行了3次,每次執(zhí)行時會把獲取到的變量值賦值給輸出變量outNmae,其它地方可以通過${outNmae}進行調(diào)用。
五、事務(wù)控制器(Transaction Controller):
作用:事務(wù)控制器會生產(chǎn)一個額外的采樣器,用來統(tǒng)計該控制器子結(jié)點的所有時間。
· 應(yīng)用場景: 完成一個完整的頁面請求或一組請求
參數(shù):
Generate parent sample:勾選后,所有的結(jié)果將在父結(jié)點中展示(選中這個參數(shù)結(jié)果展示如下圖紅框,否則顯示為下圖藍框)
Include duration of timer and pre-post processors in generated sample:選中這一項會統(tǒng)計定時器(timer)的時間,否則只統(tǒng)計采樣器(sample)的時間
3jmeter控制器之二
六、If 控制器(If Controller):
作用:根據(jù)給定表達式的值決定是否執(zhí)行該節(jié)點下的子節(jié)點,默認使用javascript的語法進行判斷(如下圖紅框內(nèi)的文字)。
參數(shù):
Interpret Condition as Variable Expression?:選中這一項時表示:判斷變量值是否等于字符串true(不區(qū)分大小寫)
Evaluate for all children:如果選中這一項,在每個子結(jié)點執(zhí)行前都會計算表達式
示例一:使用變量表達式的方式進行判斷:
示例二:選中Interpret Condition as Variable Expression?,使用變量的方式判斷
七、Switch控制器(Switch Controller):
作用:Switch控制器通過給該控制器中的Value賦值,來指定運行哪個采樣器。有兩種賦值方式:
· 第一種是數(shù)值,Switch控制器下的子節(jié)點從0開始計數(shù),通過指定子節(jié)點所在的數(shù)值來確定執(zhí)行哪個元素。
· 第二種是直接指定子元素的名稱,比如采樣器的Name來進行匹配。當(dāng)指定的名稱不存在時,不執(zhí)行任何元素。
當(dāng)Value為空時,默認執(zhí)行第1個子節(jié)點元素。
示例:
1、Switch Controller選擇的值為login page
2、執(zhí)行結(jié)果:
八、吞吐量控制器(Throughput Controller):
作用:控制其下的子節(jié)點的執(zhí)行次數(shù)與負載比例分配,別被名字迷惑了,跟吞吐量沒任何關(guān)系。也有兩種方式:
Total Executions:設(shè)置運行次數(shù),整個測試計劃中總計執(zhí)行次數(shù)
Percent Executions:設(shè)置運行比例(1~100之間),整個測試計劃中總計執(zhí)行百分比
Throughtput: 設(shè)計的數(shù)值
Per User: 依據(jù)網(wǎng)上的說明在選擇Total Executions時,勾選時會在每個線程中執(zhí)行的次數(shù)。但在3.0版本中嘗試使用無效
示例:
1、設(shè)置線程組循環(huán)5次:
2、Throughput Controller1的子結(jié)點執(zhí)行3次:
3、Throughput Controller2的子結(jié)點執(zhí)行(40% * 線程組循環(huán)次數(shù)5)= 2次:
執(zhí)行結(jié)果:
九、隨機控制器(Random Controller):
作用:隨機執(zhí)行其下的某個子結(jié)點,隨機選擇控制器中的請求進行執(zhí)行
應(yīng)用場景: 頁面的隨機訪問
配置說明:ignore sub-controller blocks: 忽略子控制器
十、隨機順序控制器(Random Order Controller):
作用:隨機執(zhí)行其下的所有子結(jié)點
· 與Random Controller不同的是,這個控制器會先將需要隨機的內(nèi)容均執(zhí)行一遍,但次序不定
· 應(yīng)用場景: 頁面的隨機訪問,但均需要訪問,且次序不限
4jmeter控制器之三
十一、Critical Section Controller 關(guān)鍵部分控制器
作用:用于核心部分的控制,確保其子節(jié)點下的取樣器或控制器在一個線程中僅會執(zhí)行一次
應(yīng)用場景: 用戶登錄
配制說明
· Lock name: 鎖名稱,這里可以填入其子節(jié)點下執(zhí)行的線程的名稱,這個線程作為一個全局鎖存在
十二、Include Controller 引用外部測試計劃控制器
應(yīng)用場景: 測試過程中,需要引用外部的測試計劃
配制說明
· Include Test Plan-Filename: 選擇需要引入的外部測試計劃文件
十三、Interleave Controller 間隔控制器
也稱交替控制器,使得該控制器包含的取樣器步驟交錯執(zhí)行在每個循環(huán)中,每個線程用戶僅執(zhí)行一次控制器內(nèi)的請求,線程用戶依據(jù)循環(huán)的次數(shù)請求控制器中的請求數(shù)
配制說明:ignore sub-controller blocks: 是否忽略子控制器
十四、Module Controller 模塊控制器
· 模塊控制器,用于跳轉(zhuǎn)到選定的控制器位置并執(zhí)行對應(yīng)的控制器
· 應(yīng)用場景: 業(yè)務(wù)邏輯的跳轉(zhuǎn)
· 配制說明
· Module to Run: 選擇需要跳轉(zhuǎn)到的目標控制器
尋找目標元素(Find target element):
尋找測試計劃中需要特定測試的元素,模塊;也可理解為該控制器可以控制已經(jīng)封裝好的模塊元素
一個測試計劃由一個控制器和所有的測試元素(取樣器等)組成,測試計劃可以位于任何線程組或工作臺;如果計劃位于線程組,則可以禁用其他控制器,防止正在運行的測試計劃被影響(除了模塊控制器)
模塊控制器的優(yōu)勢在于:當(dāng)存在多個線程組時,該控制器可以輕松切換,只需要選擇對應(yīng)的取樣器,方便快捷,替代了創(chuàng)建很多測試計劃的繁瑣操作
任何一個模塊所用的控制器名字必須唯一,因為其名字被用來找到目標控制器時重新加載;出于這個原因,最好保證控制器名字不同,否則執(zhí)行測試時候可能發(fā)生意外
模塊控制器與遠程測試不應(yīng)使用或非gui測試與工作臺部件,因為工作臺測試元素并沒有測試計劃的一部分 jmx 文件。 任何這樣的測試就會失敗
十五、Runtime Controller 運行時間控制器
· 運行時間控制器,設(shè)置控制器中的請求運行時間,單位:秒
· 應(yīng)用場景: 對業(yè)務(wù)請求時間進行限制
· 配制說明
· Runtime(seconds): 配制需要設(shè)置的運行時間,單位秒
十六、While Controller 循環(huán)控制器
· 循環(huán)控制器,與開發(fā)語言中的While功能一致。直到條件為false時,停止運行
· 應(yīng)用場景: 循環(huán)執(zhí)行一個請求,僅判斷一種狀態(tài)下退出循環(huán)
· 配制說明
· Condition(function or variable): 可配制為空/LAST/變量或方法
可能的條件值有:
空:最后一個示例循環(huán)失敗時退出循環(huán)
LAST:最后一個示例循環(huán)失敗時退出循環(huán)。 如果之前的最后一個示例只是循環(huán)失敗,不進入循環(huán)。
false:退出時(或不輸入)循環(huán)條件等于字符串“ 假 ”
條件可以是任何變量或函數(shù),最終等于字符串” 假 ”。需要注意的是:條件是評估兩次,一次取樣前,一次隨機取樣
網(wǎng)站名稱:jmeter學(xué)習(xí)指南之快速玩轉(zhuǎn)16個邏輯控制器
文章位置:http://aaarwkj.com/article10/gppsgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作、企業(yè)建站、App設(shè)計、軟件開發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)