大体分为以下四步 目录: 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')

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: