jmeter接口测试--JSON JMESPath Extractor(提取特定值)
·
文章目录
一、JSON JMESPath Extractor介绍
- JSON JMESPath Extractor介绍
JMeter 中的一个后置处理器,用于从 JSON 响应中提取数据;

-
和JSON提取器区别
JSON提取器:只能提取单个值,随机提取
JSON JMESPath Extractor:可以对提取的值进行判断 -
表达式详解
(1)点操作符(.) - 访问属性
person.name
{"person": {"name": "John", "age": 30}} // 数据
"John" // 结果
(2)方括号([]) - 访问数组元素
people[0].name
{"people": [{"name": "John"}, {"name": "Jane"}]} // 数据
"John" // 结果
(3)通配符()* - 匹配所有元素
people[*].name
{"people": [{"name": "John"}, {"name": "Jane"}]} // 数据
["John", "Jane"] // 结果
提示:具体实例
二、示例
- 总体结构

- JSON JMESPath Extractor配置
Name of created variables:target_id
JMESPath expressions:data.list[?submitFlag == `false`].id | [0]
Default Values:NOT_FOUND

- 引用

三、data.list[?submitFlag == false].id | [0]详细解释
- 需要"查询"接口返回的未使用过的id
即“id”值,且“submitFlag==false” - 查询接口返回参数
{
"data": {
"list": [
{"id": 18071, "submitFlag": true, ...},
{"id": 18065, "submitFlag": false, ...}, // ← 这个
{"id": 18063, "submitFlag": false, ...},
{"id": 18061, "submitFlag": false, ...}
]
}
}
- JMESPath 表达式
data.list[?submitFlag == `false`].id | [0]
- 详细解释
(1)data.list
访问路径:data→ list
获取到数组:[…]
(2)[?submitFlag == `false`]
[? … ]是过滤器表达式
submitFlag == `false`是过滤条件
false是布尔值 false(注意是反引号,不是单引号)
结果:过滤出 submitFlag为 false的对象数组
// 原始
[
{"id": 18071, "submitFlag": true},
{"id": 18065, "submitFlag": false},
{"id": 18063, "submitFlag": false},
{"id": 18061, "submitFlag": false}
]
// 过滤后
[
{"id": 18065, "submitFlag": false},
{"id": 18063, "submitFlag": false},
{"id": 18061, "submitFlag": false}
]
(3).id
从过滤后的数组中提取 id字段
结果:[18065, 18063, 18061]
(4). | [0]
|是管道符,表示对前面结果进一步处理
[0]取数组的第一个元素
最终结果:18065
四、如何添加JSON JMESPath Extractor
选择线程组中已经添加好的HTTP请求——右键“添加”——后置处理器——JSON JMESPath Extracto

更多推荐
所有评论(0)