Jmeter----如果(If)控制器

1.说明

   在做接口测试过程中,部分场景的接口是否请求取决于上一个接口的返回结果

   比如:现在一些网站,用户去登录的时候,先走登录的流程,如果是网站用户就登录成功;如果不是网站的用户,就自动注册,再登录

   所以,我们如果想测试这个场景,就需要先调用登录的接口,根据接口返回,决定是否调用注册的接口,此时就需要用到“如果(If)控制器

 

2.操作步骤

 写一个简单的例子做说明

(1)添加“如果(If)控制器”

    线程组---->添加---->逻辑控制器---->如果(If)控制器

 

 

*1:为了提高性能,建议选择“Interpret Condition as Variable Expression”并使用_jexl3或_groovy的值为true或false。  

       ${SJMeterThread.last sample ok} 可用于测试最后一个采样器是否成功

*2:表达式(必须计算为true或false)   

*3:这个选项被选中,将不会使用js解析;条件表达式的值必须是true(忽略大小写)。

       建议勾选并使用这种方式,如果使用js模式,会有性能损耗。

*4:是否每次执行子取样器的时候,都执行一次if条件判断

 

(2)__jexl3 函数

    选项---->函数助手对话框---->选择__jexl3 函数

 ${code} == 30100007

 ${code} 是登录接口返回值中获取到的内容,30100007是开发定义的未注册用户状态码

 如果:登录接口返回的code如果等于30100007,则${__jexl3(${code} == 30100007,)}  的值就为true

 如果:登录接口返回的code如果不等于30100007,则${__jexl3(${code} == 30100007,)}  的值就为false

 

(3)运行结果

 

左图:未注册用户登录,会调用注册接口

右图:已注册用户登录,只调用登录接口

 

posted @ 2022-03-10 17:59  Z_sun  阅读(339)  评论(0编辑  收藏  举报