当请求一个接口,返回数据后,返回的数据由xml格式、json格式,那么怎么根据返回的结构化数据进行断言,判断返回信息是否正确,接口响应是否正确?
断言数据获取方式:
1、requests自身提供了json断言功能
def test_json_assrt(self):
payload = {'key1': 'value1', 'key2': 2}
r = requests.post('https://httpbin.testing-studio.com/post', json=payload)
print(r.json())
assert r.status_code == 200
assert r.json()['json']['key2'] == 2
这个接口返回的数据比较简单,因此assert r.json()['json']['key2'] == 2这行代码看起来还算简洁,接下来看一个复杂的json数据结构:https://ceshiren.com/categories.json
此时如果仍然是使用requests自带的json提取器,那么代码将会写的很长,此时可以采用json path来简化提取所需数据
2、json的查询语言jsonpath提取json数据
requests没有提供json path的解决方案,需要安装第三方库