背景
现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值。
上一个接口返回的token作为下个接口的入参。
1.案例场景:
我现在有一个登陆接口A,登陆成功后返回一个token值。有一个重置支付密码接口B,但是接口B必须要先登录后传登录的token才能访问,
A接口登录接口文档基本信息:
访问地址:http://192.168.153.132:8080/app/mobile/api/user/login
请求类型:POST
请求头部:application/json
请求参数:{“mobile”:“13257008322”,
“gqid”:“4000055”,
“password”:“123456”}
2.A接口的请求和返回的报文信息如下:
3.B:接口信息如下
4.登录请求
先在jmeter里面添加http请求,填登录接口的参数
5.HTTP信息头管理器添加post请求类型:Content-Type: application/json
6.运行之后查看结果树,可以看到正确的返回我们想要的token值
如何提取想要的token值呢?
7.json提取器
添加后置处理器-json提取器
响应数据,返回的是json格式
{"code":0,"msg":"成功调用",
"data":{"id":160150,
"username":"guiyin",
"sex":1,"age":20,"mobile":"1357008322",
"email":"13257008311@163.com",
"gqid":"4000017","money":0.0,"pmoney":100.0,
"createtime":1611318524715,"lasttime":1611318524715,
"token":"ze+Ao6yj7XuffImRLBpypQ/i0a4QWHPLfHGJs0jD8BikuDVTcVLx40TG7FQjiAq+xRU/jxaEwo/fQbjJJq9BrA==","identity":"9f89565c1ab59b10"}}
分析A接口登录后返回的token的位置
json提取的公式有两种,一种是绝对路径,一种是相对路径,都可以提取成功。
a)绝对路径
$.data.token
b) 相对路径
$..token
8.返回的结果,通过B接口resetpaypwd;请求成功可以断定提取成功;
请求参数,调用json提取后的值jtoken
9. B接口响应数据,
10. 也可以通过 调试取样器查看:
11. JSON提取器参数说明:
Names of created variables 参数名称
JSON Path expressions 提取表达式
Match No.(0 for Random) 匹配规则,-1所有,0随机,1第一个
Compute concatenation va 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了
Default Values 没提取到就给默认值