jmeter中存在很多逻辑控制器,类似于代码中的if条件控制,for循环等,接下来我们来简单介绍下jmeter中的if条件控制器。
我们先来了解一下if控制器,含义:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和字符串 都需要加引号
条件格式:${__jexl3(条件表达式)}:
== 是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1
!=不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1
!非,如${__jexl3(!(${VAR}!=1),)}对${VAR}!=1的结果取反
&&或||且与或,如 ${__jexl3(${VAR}==1 && ${name} != "heima",)}
> 或者>== 大于等于,如${__jexl3(${count}>=10,)}
接下来我们以获取主题列表接口作为示例:
然后将这个接口中的limit参数设置为一个全局变量,添加用户定义的变量
然后在线程组中添加一个if条件控制,逻辑控制器–>if控制器,并把这个获取主题列表的接口移动到控制器中
接下来我们需要在控制器中编写表达式
接下来我们运行结果得到执行了以下接口请求
接下来我们可以在添加一次控制器和对应的请求:
如果limit我们所传的值是5,那么我们将执行下面这个请求2,然后我们将全局变量仍设置为1,运行后查看效果:
以上我们看到还是只执行了第一个请求,并未执行请求2,因为我们设置的参数并不满足第二个if控制器。
If控制的使用能够让我们更灵活的使用jmeter进行接口测试,根据我们参数的传递自动去执行满足我们条件的接口,特别有些公司可能有多套环境,纳闷我们也可以使用这种方法进行分类划分执行。