一、使用场景
针对接口返回结果,提取相应的信息,用于后续接口输入或用于执行结果断言,对应平
台的后置操作、断言规则页签。
二、常用方式实例
接口返回结果
{
"code": 0,
"data": {
"cart": {
"id": "342536277542256634",
"items": [
{
"name":"测试名称1",
"item_id":"3356",
"item_desc":"花花世界",
"price":2000
},
{
"name":"测试名称2",
"item_id":"1987",
"item_desc":"大千世界无奇不有",
"price":1000
},
{
"name":"测试名称3",
"item_id":"7642",
"item_desc":"元宇宙世界",
"price":3000
},
{
"name":"新奇大陆",
"item_id":"1000",
"item_desc":"元宇宙世界",
"price":5000
}
],
"itemsCount": 0,
"joinOrderStatus": 0
},
"cartAmount": {
"delivery": 0,
"giftSupportGoods": 0,
"goods": 0,
"orgPrice": 0,
"totalDiscount": 0
},
"status": 0
},
"syncTime": 1710327597461
}
1. 逐级节点获取信息
需求:
- 获取cart中的id
jsonpath写法:
- $.data.cart.id
2. 相对路径获取信息
需求:
- 获取items数组中的任意一个name
jsonpath写法:
- $.data..items[*].name
语法解析:
- ' .. ' 表示子、孙层级,
- ' * ' 表示数组中的任意一个
3. 文本模糊匹配
需求:
- 获取items中item_desc以 '元宇宙'开始对应的item_id
jsonpath写法:
- $.data..items[*].[?(@.item_desc =~ /元宇宙.*/)].item_id
语法解析:
- [?(表达式)] :条件筛选
- @.item_desc =~ /xxx.*/ :属性信息模糊匹配以xxx开始,后面跟随任意字符
4. 多条件组合筛选
需求:
- 获取item_desc为 '元宇宙世界' 和price大于4000对应的name
jsonpath写法:
- $.data..items[*].[?(@.item_desc == '元宇宙世界' && @.price>4000)].name