1、编写data.yam存放请求参数l。
以下展示两种写法:
2、新创建一个read_data文件,存放编写调用data.yaml的read_data()。并用get_data接收read_data()的返回。
path的路径参考pytest进阶参数化用法04。
3、主程序文件test_yaml_mobile调用read_data文件中的get_data。
test_yaml_mobile的目录位置:
import pytest
import requests
from utils.read_data import get_data
@pytest.mark.parametrize("param", get_data['mobile_belong_get'])
def test_mobile_get(param):
r = requests.get('https://api.binstd.com/shouji/query', params=param)
print(r.json())
print(r.status_code)
assert r.status_code == 200
result = r.json()
assert result['status'] == 0
assert result['msg'] == 'ok'
assert result['result']['shouji'] == '13456755448'
assert result['result']['province'] == '浙江'
assert result['result']['company'] == '中国移动'
assert result['result']['cardtype'] is None
assert result['result']['areacode'] == '0571'
@pytest.mark.parametrize("mobile,appkey", get_data['mobile_post01'])
def test_mobile_post(mobile, appkey):
r = requests.post('https://api.binstd.com/shouji/query', params={
"shouji": mobile,
"appkey": appkey
})
print(r.json())
print(r.status_code)
assert r.status_code == 200
result = r.json()
assert result['status'] == 0
assert result['msg'] == 'ok'
assert result['result']['shouji'] == '13456755448'
assert result['result']['province'] == '浙江'
assert result['result']['company'] == '中国移动'
assert result['result']['cardtype'] is None
assert result['result']['areacode'] == '0571'
至此,基于data.yaml文件中的传参数据有两组,只有一组正确。则以上两个方法均为一个pass,一个faild。