5.1.6逻辑控制器
控制执行的逻辑,和编程语言中的逻辑控制一样。比如:分支、循环等等。
5.1.6.1.如果(If)控制器
可以控制其下面的子和后代元素是否执行;如果为 true 则执行;如果为 false 则都不执行。
Expression (must evaluate to true or false) :布尔表达式,表达式必须是true 或 false。
Use status of last sample:点击会在 Expression 中生成${JMeterThread.last_sample_ok}代码,表示上一次取样器结果是否通过。适用场景:有的脚本会判断上一个取样器成功后才可往下继续执行。
Interpret Condition as Variable Expression?:默认勾选
不勾选:直接输入需要判断的条件表达式即可,例如:1==1
勾选:这个时候,expression中不能直接填写条件表达式,可以借助的函数jexl3和groovy计算表达式为true/false
Evaluate for all children?:执行每个子项,都会判断一次条件。一般不勾选,条件一般只判断一次即可
注意:
- 文本框上的黄色感叹号,就是提示你,建议采用jexl3 or groovy 表达式,以提高性能,也就是默认的方式,当然不使用也可。
- IF 控制器 只能作用于其下的子项
- jexl全称:Jakarta Commons Jexl,是一种表达式语言(Java Expression Language)解释器
A:变量,比如 ${flag},如果值为 true,则认为通过,否则认为是 fase
B:函数,条件判断同时支持 js、groovy、jexl3 三种脚本语言,出于性能原因,不建议使用 js
js 语法举例:KaTeX parse error: Expected '}', got 'EOF' at end of input: …__javaScript("{count}" ==“1"”)}
groovy 语法举例:${__groovy(vars.get(“count”) !=“1”)}
jexl3 语法举例:KaTeX parse error: Expected '}', got 'EOF' at end of input: {__jexl3({count}< 10)}
手把手教测试,持续更新。学习咨询测试技术,获取完整资料加V:SobasoTest