在使用Python + requests + pytest +allure 的框架中,jsonpath 起至关重要的作用
简单的说, jsonpath 是用于提取接口数据响应为json格式的值
举例说明:
某个接口数据返回格式如下:
rsp = {
"code": 200,
"data": {
"rows":[
{"name": "a", "sex": "male"},
{"name": "b", "sex": "female"},
{"name": "c", "sex": "male"}
]
},
"query":170085
}
1.取code的值,可以使用绝对路径或者使用相对路径
from jsonpath import jsonpath
code1 = jsonpath(rsp, "$.rsp.code")
code2 = jsonpath(rsp, "$..code")
2.取rows下所有的数据
from jsonpath import jsonpath
rowsList = jsonpath(rsp, "$..rows[*]")
3.取rows 下所有的name
from jsonpath import jsonpath
nameList = jsonpath(rsp, "$..rows[*].name")
4.按条件查找,取rows下,name是c的性别字段, 如果有多个条件支持逻辑运算符 【and 、or】等
from jsonpath import jsonpath
sex = jsonpath(rsp, "$..rows[?(@.name=='c')].sex")