前言
當遇到需要對不同的條件做不同的操作時,我們可以使用 JMeter 中 if 控制器來實現。
如果(If)控制器
線程組-添加-邏輯控制器-如果(If)控制器
- Expression(must evaluate to true or false) 表達式必須為true或false
- interpret condition as variable expression 勾選表達式為true 執行,為false不執行。不勾選表達式正確,執行,表達式不正確,不執行
- evaluate for all children 如果選中這一項,在每個子結點執行前都會計算表達式
表達式通過jexl3或者groovy轉成true或false結果,條件格式:${__jexl3(條件表達式)}:
- == 是否等於, 如${__jexl3(${VAR}==1,)},判斷${VAR}變量是否等於1
- !=不等於, 如${__jexl3(${VAR}!=1,)},判斷${VAR}變量是否不等於1
- !非, 如${__jexl3(!(${VAR}!=1),)}對${VAR}!=1的結果取反
- &&或||且與或, 如 ${__jexl3(${VAR}==1 && ${name} != "heima",)}
- >或者>== 大於等於, 如${__jexl3(${count}>=10,)}
Expression 為true或false
勾選 interpret condition as variable expression ,表達式可以直接輸入true,請求A會執行,輸入false,請求B不會執行
運行后只有請求A會執行
jexl3 或groovy 函數
勾選 interpret condition as variable expression ,表達式可以通過__jexl3
或__groovy
函數轉成 true 或 false 結果
先定義一個變量user 值為admin
添加條件判斷 user 為 "admin" 的時候,執行請求A
// 使用__jexl3 函數
${__jexl3("${user}"=="admin",)}
// 或者使用__groovy函數
${__groovy("${user}"=="admin",)}
表達式結果為 true 執行請求A
判斷語句
如果不勾選 interpret condition as variable expression ,可以直接使用判斷語句,不需要用'__jexl3 '或'__groovy' 函數
但這樣會有黃色的警告,一般不推薦
函數助手
如果不會寫__jexl3
或__groovy
函數,可以使用函數助手自動生成
Tools - 函數助手對話框
選擇一個功能__jexl3
函數,輸入表達式,點生成按鈕
這樣把生成的函數復制出來就可以了:${__jexl3("${user}"=="admin",)}