满足指定的条件后,才会执行控制器下的http请求,表达式支持: == 是否等于,如 ${__jexl3(${VAR}==1,)} 判断${VAR}变量是否等于1 != 不等于,如 ${__jexl3(${VAR}!=1,)} 判断${VAR}变量是否不等于1 ! 非,如 ${__jexl3(!(${VAR}!=1),)} 对${VAR}!=1的结果取反 &&或|| 且与或,如 ${__jexl3(${VAR}==1 && ${name} != "heima",)} > 或者>== 大于等于,如 ${__jexl3(${count}>=10,)}在if逻辑控制器的Expression中不能直接填写条件表达式,需要借助函数将条件表达式计算为true/false,可以借助的函数有__jexl3和__groovy函数
1. Interpret Condition as Variable Expression?(解释条件为变量表达式?)—— 必须勾选 ✅
勾选后,If 控制器才会按“变量表达式”方式工作:执行
${__jexl3(...)}函数,函数返回true才执行里面的子请求不勾选则是旧的 JavaScript 模式(已废弃):条件会被当成 JS 代码去执行,在较新的 JDK 上没有 JS 引擎会直接报错,所以这个框一定要勾上。
2. Evaluate for all children?(对所有子项求值?)—— 不用勾选
勾选后,每执行一个子请求前都会重新计算一次条件;不勾选则每次进入这个控制器时只判断一次。你的场景里变量在接口返回后就不会再变了,判断一次足够,保持不勾选(默认)即可。