Jmeter之if逻辑控制器(If Controller)

 概述

类似于编程语言中if语句,根据给定表达式的值决定是否执行该节点下的子节点,表达式的值为true则执行,为false则不执行;默认使用javascript语法进行判断

 If控制器中的字段解释

名称:控制器名称,可根据情况填写(填写的名字最好与if控制器下的业务相关,便于分辨)

注释:可填可不填,可根据需要填写

Expression(must evaluate to true of false):表达式,此处的值默认情况下必须是True或False

Interpret Condition as Variable Expression?:默认勾选,当勾选时将条件解释为变量表达式,此时必须使用__jexl3 or __groovy 表达式;去掉勾选时,此处可直接填写条件表达式。黄色三角处的提示说明了默认勾选的优势。

Evaluate for all children?:对其下所有子项有效,

注意:

1.条件判断语句若是字符串,则需要用引号包围参数

${__jexl3(条件表达式)}
如:${__jexl3(${num} > 10)}、 ${__jexl3(“${num}” == “10”)}

2.选择"Evaluate for all children?"代表该If控制器在每个子节点执行时都会执行一次,不选择则代表If控制器只在入口执行一次

3.If Controller之下的请求才会受到If控制器的约束,若是平级则不会受约束;因此建议将业务请求放在If控制器之下进行测试

默认用法示例

当用例运行标志为Y时,则执行,否则不执行,条件表达式为${__jexl3("${is_run}"=="Y",)}

去掉勾选,直接写入(单条件)示例

接口与接口之间有些存在依赖关系,此处请求方式做了区分,则不存在依赖时则运行,否则另处理,表达式为 "${is_rely}"=="N"

 去掉勾选,直接写入(多条件)示例

有些用例需要满足多个条件中的一个或者全部就执行,表达式"${model}"=="exportperson" || "${model}"=="adjustdepartment"

备注

1、当使用默认用法时,熟练的人可直接填写表达式,若不熟时可借助函数助手生成表达式

 

2、单条件表达式:

== 、> 、< 、>=、<= 、!=

3、多条件表达式(不勾选Interpret Condition as Variable Expression?选项)

|| 或,&& 与

"${model}"=="exportperson" || "${model}"=="adjustdepartment"

"${model}"=="exportperson" && "${model}"=="adjustdepartment"

 温馨提示:欢迎加入软件测试学习交流QQ群:642466721

原文地址:https://www.cnblogs.com/DeryKong/p/13434769.html