搜索
您的当前位置:首页Jmeter-逻辑控制器IfController的实例运用

Jmeter-逻辑控制器IfController的实例运用

来源:智榕旅游
Jmeter-逻辑控制器IfController的实例运⽤

⼀、If Controller概述

Expression (must evaluate to true or false) :表达式(值必须是true或false),也就是说,在右边⽂本框中输⼊的条件值必须是true 或 false,(默认情况下)

Interpret Condition as Variable Expression?:默认勾选项,将条件解释为变量表达式(需要使⽤__jexl3 or __groovy 表达式,可⽤函数助⼿⽣成)

Evaluate for all children?:条件作⽤于每个⼦项(即意味着它的每个⼦元素在运⾏前都会运⾏⼀次 if 控制器⾥⾯的条件表达式,看看是否还是 true,是的话就可以运⾏,false 就不运⾏)注:

1、⽂本框上的黄⾊感叹号,就是提⽰你,建议采⽤__jexl3 or __groovy 表达式,以提⾼性能,也就是默认的⽅式。2、if 控制器 只能作⽤于其下的⼦项

⼆、If Controller的实例运⽤

(⼀)直接输⼊条件

  如图,去掉 “Interpret Condition as Variable Expression?” 前⾯复选框,直接输⼊条件 1==1。if控制器⾥⾯的“按编号筛选列表-2106000014”的取样器将被执⾏。

  

  执⾏结果如下图:

(⼆)默认⽤法,采⽤__jexl3 or __groovy 表达式

案例描述:

添加⾃定义的变量值,利⽤ForEach Controller进⾏读取此变量值,然后将读取的变量值保存到设定的变量中;当变量取值符合IF Controller中设定的条件时,则执⾏其下的业务请求并监控

业务说明:

以“版单管理列表”接⼝为例

> 添加⽤户定义的变量code(3个:2106000007,2106000008,2106000009)> ⽤ForEach控制器读取变量codelike> 接⼝⼊参prototypeCodeLike使⽤此变量值

> if控制器中判断codelike等于2106000007时,执⾏控制器下⾯的取样器

操作步骤:

1、⽬录结构

2、⽤户定义的变量

  ForEach根据输⼊变量前缀来循环遍历,格式满⾜{aa_1,aa_2,aa_3}的格式,注意 变量后是以_带数字分隔的

3、ForEach控制器

4、在ForEach Controller下添加版单管理列表接⼝取样器  取样器的请求中配置引⽤forEach读取的参数 codelike

5、在ForEach Controller之下添加IF Controller,设置判断真假的求值函数  

  ${__groovy(${codelike}==2106000007,)} 表⽰ForEach Controller中读取的变量值为\"2106000007\"时,才会执⾏IF Controller之下的请

6、执⾏结果

  【版料管理列表-${codelike}】接⼝取样器,执⾏满⾜forEach设定读取添加的所有变量值,当if为true时,则执⾏if控制器下的取样器【if为true时,执⾏版单管理列表-${codelike}】,所以最终执⾏结果如图

(三)Evaluate for all children? 的⽤法

  勾选了之后意味着它的每个⼦元素在运⾏前都会运⾏⼀次 if 控制器⾥⾯的条件表达式,看看是否还是 true,是的话就可以运⾏,false就不运⾏。演⽰如下:

1、勾选上,使条件作⽤于每个⼦项

2、添加JSR223 后置处理器或前置处理器,将code_1的值变为123

3、执⾏结果

  由于变量code_1的值变了,导致不符合if条件${__groovy(${codelike}==2106000007,)},所以便不会执⾏if控制器下的【版单管理列表-应⽤于所有⼦项】取样器

  附上去掉勾选的执⾏结果

因篇幅问题不能全部显示,请点此查看更多更全内容

Top