JMeter笔记:前置处理器-BeanShell预处理程序

本篇用个简单的例子记录下前置处理器-BeanShell预处理程序的用法。

 

测试流程

1、请求userInfo接口,接口会返回多个user信息,我们需要用返回结果中提取全部userName。

userInfo接口返回参数格式如下:

{
    "code":"0",
    "message":"success",
    "data":[
        {
            "id":0,
            "userName":"用户0",
            "password":null,
            "age":0,
            "gender":0,
            "phoneNum":"13788881111",
            "email":"test@123.com",
            "address":"苏州市苏州中心",
            "createTime":"2022-03-06T03:24:19.701+0000",
            "updateTime":"2022-03-06T03:24:19.701+0000"
        },
        {
            "id":1,
            "userName":"用户1",
            "password":null,
            "age":79,
            "gender":0,
            "phoneNum":"13788881039",
            "email":"test@123.com",
            "address":"苏州市苏州中心",
            "createTime":"2022-03-06T03:24:19.701+0000",
            "updateTime":"2022-03-06T03:24:19.701+0000"
        }
    ]
}

2、将第一步获取的userName遍历登录login一遍,需要替换请求参数中的userName值。

login接口请求参数如下:

{
    "userName": "admin",
    "password": 123456
}

 

 脚本编写

1、userInfo接口下添加json提取器来提取userName,同时添加调试取样器方便查看取样变量值

 

2、运行脚本,查看结果树,查看调试取样器的响应结果

 

 从取样器结果来看,userName取出来10个值,userName_matchNr=10且变量名分别为userName_1、userName_2、userName_3......userName_10

 

3、添加循环控制器,循环控制器下添加login请求
循环次数填写变量名${userName_matchNr},不管userInfo接口返回多少个用户信息,保证每个用户登录一次。

 

4、从第2步调试取样器的结果来看,脚本运行的时候我们需要用userName_1、userName_2、userName_3......userName_10替换下login请求参数中userName。

这时候我们就需要添加前置处理器,这里添加BeanShell预处理如下:

 

5、运行脚本,结果如下,userInfo接口返回10个用户数据,login用这10个用户名依次请求login接口

 

posted @ 2022-03-06 17:43  阳光倾林  阅读(3375)  评论(0编辑  收藏  举报