jmeter通过json提取器获取接口返回token(超详细)
一、接口添加后置处理器——JSON提取器
二、登录接口添加监听器——查看结果树
三、运行登录接口,查看结果数返回的json,是否有token值
四、填写JSON提取器的数据
1、Name of created variables:提取的变量名称,用于存储提取到的值
2、JSON Path Expressions:用于提取 JSON 数据的路径表达式
3、Match Numbers:指定提取第几个匹配的值,当 JSONPath 表达式匹配到多个值时,选择提取哪个值。
-
0
:提取所有匹配的值(返回数组)。(默认值) -
1
:提取第一个匹配的值。 -
2
:提取第二个匹配的值,以此类推。
4、Default Value:当提取失败时返回的默认值。
五、通过查看结果数检查“JSON Path Expressions”是否提取正确:
六、下一个接口需要 传入登录获取的token
添加一个HTTP信息头管理,传入获取的token, ${变量名称}
七、示例
假设服务器返回以下 JSON 响应:获取id
{
"data": {
"id": 12345,
"name": "John Doe",
"roles": ["admin", "user"]
},
"status": "success"
}
配置 JSON 提取器:
- 名称(Name of created variables):
userId
- JSON Path Expressions:
$.data.id
- Match Numbers:
1
- Default Value:
NOT_FOUND
提取结果:
- 提取到的变量:
userId
- 变量值:
12345
——————————————————————————————————————————
常见 JSONPath 表达式示例
-
提取单个字段
-
JSONPath:
$.data.name
-
结果:
"John Doe"
-
-
提取数组中的所有值
-
JSONPath:
$.data.roles[*]
-
结果:
["admin", "user"]
-
-
提取数组中的第一个值
-
JSONPath:
$.data.roles[0]
-
结果:
"admin"
-
-
提取不存在的字段
-
JSONPath:
$.data.age
-
结果:返回默认值(如
NOT_FOUND
)。
-