如果你想從頭學習Jmeter,可以看看這個系列的文章哦
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}
最簡單的栗子
線程組結構樹

第一個 if 控制器

注意:如果取消選中 Interpret Condition as Variable Expression?,這可能會導致性能損失很大,並使測試的可擴展性降低,所以不推薦不勾選
第二個使用 groovy 表達式的 if 控制器

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

查看結果樹

三個 if 控制器的表達式都是 true
Expression 中使用變量的栗子
線程組結構樹

用戶自定義變量

if 控制器

因為是字符串,所以要加雙引號哦 ""
查看結果樹

勾選 Evaluate for all children? 的栗子
線程組結構樹

一共三個請求,第二個請求加了個后置處理器
用戶自定義變量

if 控制器

因為是字符串,所以要加雙引號哦 ""
JSR223 后置處理器

查看結果樹

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