天天看点

Python 接口测试利器jsonpath使用

在使用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")