1.1     参数化

截止现在,一个http请求的配置已经完成,可使用该脚本运行点击jmeter的运行按钮查看。并发测试必然需要使用到参数化。参数化有以下几种方法。

参数化的格式一般均为:

${},如¥{user}

1.1.1      CSV

可在本地新建txt,将参数存储在txt中,以“,”隔开,保存的时候选择utf-8的编码格式。

 

内容如下:

 

 

然后在jmeter中添加配置元件CSV。

 

 

1.1.2      随机数

随机数可使用jmeter中的随机函数生成,如:该APP登录时使用的验证码即可用${__Random(000000,999999,)}来替代。

 

 

 

1.1.3      动态参数

如该APP客户在登录后会返回如下内容:

经过同开发通过,在登录后很多接口都会在headers中带着token和clentId(即登录后返回的userID)。所以我们需要在登录之后拿到token和userID的值。

 通过抓包工具,查看返回结果,结果为json格式。如下内容。

{

       "message": "登录成功",

       "result": {

                ……

                "userId": "171",

                ……

       },

       "returnCode": 200,

       "token": "b15f18b0e424eb3f603eba9166f38f65c25652808d4d4b6bb1bfaec8c04fe1ae"

}

因此我们在登录脚本中增加后置处理器:bean shell postprocessor。

 

 

录入如下内容。

import net.sf.json.JSONObject;  //导入json解析用到的jar

 

String input = prev.getResponseDataAsString(); 

           JSONObject jsonObject = JSONObject.fromObject(input);

           JSONObject result = jsonObject.getJSONObject("result");

           String userid = result.getString("userId");

     String token = jsonObject.getString("token"); 

 

//把获取到的字符串,赋值给对应的变量。后续的请求中,就可以通过 ${userid}这样的方式,读取到这个值了。

vars.put("userid",userid);

vars.put("token",token);

 

因在登录后的接口都会在headers中带着token和clentId,所以我们需要在这些请求下增加“http信息头管理器”,并将参数添加进去即可。

 
 
posted on 2018-06-13 13:00  jxba  阅读(11767)  评论(0编辑  收藏  举报