Jmeter系列(50)- 詳解 If 控制器

若是你想從頭學習Jmeter,能夠看看這個系列的文章哦html

https://www.cnblogs.com/poloyy/category/1746599.html性能

 

簡單介紹

能夠經過條件來控制是否運行其下面的測試元件(子元素)學習

 

If 控制器

 

If 控制器界面介紹

  • Expression (must evaluate to true or false) :表達式(值必須是 true 或 false ),也就是說,在右邊文本框中輸入的條件值必須是 true 或 false(默認狀況下)
  • Interpret Condition as Variable Expression?:默認勾選,將條件解釋爲變量表達式(須要使用 ${__jexl3 } 或 ${__groovy } 表達式)
  • Evaluate for all children?:條件做用於每一個子項(具體理解見後面的栗子說明)

 

黃色感嘆號那一段文字

就是建議要選中 Interpret Condition as Variable Expression?,而後經過 ${__jexl3 } 或 ${__groovy } 表達式返回 true 或 false測試

 

擴展

若是要測試上一個樣本(sampler)是否成功(code=200),則能夠使用 ${JMeterThread.last_sample_ok} lua

 

最簡單的栗子

線程組結構樹

 

第一個 if 控制器

注意:若是取消選中 Interpret Condition as Variable Expression?,這可能會致使性能損失很大,並使測試的可擴展性下降,因此不推薦不勾選spa

 

第二個使用 groovy 表達式的 if 控制器

 

第三個使用 jexl3 表達式的 if 控制器

 

查看結果樹

三個 if 控制器的表達式都是 true線程

 

Expression 中使用變量的栗子

線程組結構樹

 

用戶自定義變量

 

if 控制器

由於是字符串,因此要加雙引號哦 "" 3d

 

查看結果樹

 

勾選 Evaluate for all children? 的栗子

線程組結構樹

一共三個請求,第二個請求加了個後置處理器code

 

用戶自定義變量

 

if 控制器

由於是字符串,因此要加雙引號哦 ""htm

 

JSR223 後置處理器

 

查看結果樹

 

總結

勾選了 Evaluate for all children? 意味着它的每一個子元素在運行前都會運行一次 if 控制器裏面的條件表達式,看看是否仍是 true,是的話就能夠運行,false 就不運行

相關文章
相關標籤/搜索