大体分为以下四步
目录:
1.通过读取.json文件来达到数据分离
2.使用pytest中的parametrize参数化来读取json文件的内容
3.通过requests来指定请求方法,请求参数等
4.通过返回结果来判断json文件中的response是否包含(或者相等)
5.json数据
一、通过读取.json文件来达到数据分离
# 读取.json文件
# 由于需要的数据在item下面一层级,所以在读取时,需要指定位置
# 当然你也可以根据自己喜好来自定义json层级,条件是你要符合json数据的规则,否则就会报错
def read_json():
return json.load(open('json.json','r'))['item']
二、使用pytest中的parametrize参数化来读取json文件的内容
# 通过pytest的parametrize参数化来使用read_json()里面的内容
@pytest.mark.parametrize('data',read_json())
三、通过requests来指定请求方法,请求参数等
def test_json_login(data):
# 通过requests来指定请求方法
r = requests.post(
# 通过指定read_json()里面对应的url
url=data['request']['url'],
# 通过指定read_json()里面对应的body
json=data['request']['body'])
print(r.json())
四、通过返回结果来判断json文件中的response是否包含(或者相等)
# 通过判断返回的json数据判断read_json()里面response内容
# 通过使用assert来断言判断是否满足预期结果
assert r.json()['msg'] in data['response']['msg']
五、json数据,建一个.json文件,里面装需要用到的接口数据即可
{
"item": [{
"request": {
"url": "http://xxx:1111/sys/sso/login",
"body": {
"account": "pos",
"passwd": "2"
}
},
"response": {
"msg": "success"
}
}]
}
六、整体代码
# 导入json库,在读取json文件是需要用到json.load
import json
# 导入pytest库,需要用到参数化parametrize
import pytest
# 导入requests库,需要用到请求方法,请求参数等内容
import requests
# 读取.json文件
# 由于需要的数据在item下面一层级,所以在读取时,需要指定位置
# 当然你也可以根据自己喜好来自定义json层级,条件是你要符合json数据的规则,否则就会报错
def read_json():
return json.load(open('json.json','r'))['item']
# 通过pytest的parametrize参数化来使用read_json()里面的内容
@pytest.mark.parametrize('data',read_json())
def test_json_login(data):
# 通过requests来指定请求方法
r = requests.post(
# 通过指定read_json()里面对应的url
url=data['request']['url'],
# 通过指定read_json()里面对应的body
json=data['request']['body'])
# 通过判断返回的json数据判断read_json()里面response内容
# 通过使用assert来断言判断是否满足预期结果
assert r.json()['msg'] in data['response']['msg']
# 打印出返回的结果
print(r.json())
# 最后执行
if __name__ == '__main__':
pytest.main('-s','-v','test_json_login.py')