import pytest
from zonghe.baw import Member
from zonghe.caw import FileRead, Db
# 注册失败的数据
@pytest.fixture(params=FileRead.read_yaml(r'datacase\register_fail.yaml'))
def fail_data(request):
return request.param
@pytest.fixture(params=FileRead.read_yaml(r'datacase\register_pass.yaml'))
def pass_data(request):
return request.param
@pytest.fixture(params=FileRead.read_yaml(r'datacase\register_repeat.yaml'))
def repeat_data(request):
return request.param
# 注册失败的测试逻辑/测试步骤
def test_register_fail(fail_data,baserequests,url):
# 准备测试数据
print('测试数据为:',fail_data['data'])
print('预期结果为:',fail_data['expect'])
# 下发请求(封装)
r = Member.register(baserequests,url,fail_data['data'])
# 检查结果
assert r.json()['msg'] == fail_data['expect']['msg']
assert r.json()['code'] == fail_data['expect']['code']
assert r.json()['status'] == fail_data['expect']['status']
def test_register_pass(pass_data,baserequests,url,db):
# 初始化环境(可能环境中有上次遗留的数据,或者其他人添加的数据,与本次执行的数据冲突了)
Db.delete_user(db,pass_data['data']['mobilephone'])
# 测试数据
print('测试数据为:',pass_data['data'])
print('预期结果为:',pass_data['expect'])
# 下发请求
r = Member.register(baserequests,url,pass_data['data'])
# 检查响应结果
assert r.json()['msg'] == pass_data['expect']['msg']
assert r.json()['code'] == pass_data['expect']['code']
assert r.json()['status'] == pass_data['expect']['status']
# 检查注册的用户在系统中存在
# 方法1:使用注册的用户登录 方法2:检查数据库 方法3:查询所有用户,结果中包含已注册用户
r = Member.list(baserequests,url)
assert pass_data['data']['mobilephone'] in r.text
# 删除用户
# 方法1.调用删除用户的接口删除 方法2.数据库中删除
Db.delete_user(db,pass_data['data']['mobilephone'])
def test_register_repeat(repeat_data,baserequests,url,db):
Db.delete_user(db,repeat_data['data']['mobilephone'])
print('测试数据为:',repeat_data['data'])
print('预期结果为:',repeat_data['expect'])
# 注册手机号成功
r = Member.register(baserequests,url,repeat_data['data'])
# 手机号注册已成功再注册一次
r = Member.register(baserequests,url,repeat_data['data'])
print(r.text)
assert r.json()['msg'] == repeat_data['expect']['msg']
assert r.json()['code'] == repeat_data['expect']['code']
assert r.json()['status'] == repeat_data['expect']['status']
Db.delete_user(db,repeat_data['data']['mobilephone'])
|