jmeter控制器--if控制器
一、背景
在實際工作中,當使用Jmeter做性能腳本或者接口腳本時,有可能會遇到需要對不同的條件做不同的操作,基于這種訴求,在Jmeter中可使用if控制器來實現
作用:根據給定表達式的值決定是否執行該節點下的子節點,默認使用javascript的語法進行判斷(如下圖紅框內的文字)。
二、實際操作
邏輯控制器位置:
在線程組下,執行:添加? ---->> 邏輯控制器 ---->> 如果(If)控制器
例如:要實現登錄成功后進行其他操作,登錄是否成功用正則表達式獲取token來判斷
那么看下if控制器,
參數:
- Interpret Condition as Variable Expression?:選中這一項時表示:判斷變量值是否等于字符串true(不區分大小寫)
- Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算表達式?
示例一:使用表達式的方式進行判斷:
if控制器判斷的寫法是 “”“變量”=="值" 這樣的寫法,if控制器下有個選項是Interpret Condition as Variable Expression?翻譯過來意思是將條件解釋為變量表達式?
if邏輯控制器控件中最重要就是Expression(must evaluate true or false)輸入框,此處需要寫入需要進行判斷的表達式,從must evaluate true or false可知,實際使用時,只能填入true或者false這樣的值,因此我們需要借助其他模塊或者函數將需要進行判斷的表達式(如 ${var}== 5)轉換成true或false,判斷才能生效,直接將${var}== 5這樣的表達式寫入Expression中是無效的。
從該控制器提示的信息中,可以借助__jexl3或者__groovy函數來計算表達式的值,這樣著重介紹下__jexl3在 if控制器中的使用。
jexl全稱:Jakarta Commons Jexl,是一種表達式語言(Java Expression Language)解釋器。
JEXL Expression to evaluate:此處直接填寫需要進行判斷的表達式即可
表達式支持:
==? 是否等于,如${__jexl3(${VAR}==1,)},判斷${VAR}變量是否等于1
!= 不等于,如${__jexl3(${VAR}!=1,)},判斷${VAR}變量是否不等于1
! 非,如${__jexl3(!(${VAR}!=1),)}對${VAR}!=1的結果取反
&&或|| 且與或,如? ${__jexl3(${VAR}==1 && ${name} != "heima",)}
> 或者>==? ?大于等于,如${__jexl3(${count}>=10,)}
?
那么此處判斷的條件是token不等于0,填入if控制器中,執行
執行結果通過。
ps: 也可以使用用戶自定義變量的方式,直接設置變量的值為true,也 可以進入if控制器
?
?
?
?示例二:使用JavaScript進行條件解釋
不勾選Interpret Condition as Variable Expression?選項,設置條件為token不等于0 ,進行執行
?
?
最后執行成功。
轉載于:https://www.cnblogs.com/gezirui/p/9618411.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的jmeter控制器--if控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NOIP知识点
- 下一篇: Anaconda 下libsvm的安装