import pytest @pytest.fixture() def data_login(): login_data = [{'case': 'case-001:正确账号密码登录', 'username': 'user01', 'pwd': 'P@ss1212'}, {'case': 'case-002:账号为空,密码为空登录', 'username': '', 'pwd': ''}, {'case': 'case-003:账号为空,密码非空', 'username': '', 'pwd': 'P@ss1212'}, {'case': 'case-004:账号存在,密码为空', 'username': '', 'pwd': ''}, {'case': 'case-005:账号不存存在', 'username': 'user00', 'pwd': 'P@ss1212'}, ] return login_data def test_login(data_login): for a1 in data_login: case = a1['case'] user_name = a1['username'] pwd = a1['pwd'] print(case, user_name, pwd) test_data02 = [ { 'case': '登入成功', 'usr': 'admin', # 正常登入 'psw': '123456' }, { 'case': '账号不存在', 'usr': 'admin1', # 账号不存在 'psw': '123456' }, { 'case': '密码错误', 'usr': 'admin', # 密码错误 'psw': '12345' }, { 'case': '账号或密码为空', 'usr': '', # 账号或密码为空 'psw': '' }, ] @pytest.fixture(params=test_data02, ids=[data.get('case') for data in test_data02]) # 给params传入参数化数据 def param_data(request): return request.param # 返回request对象中的param,这里存放的就是参数化数据 def test_login1(param_data): usr = param_data['usr'] psw = param_data['psw'] print(f'usr: {usr} , psw: {psw}') # 调用login接口,传入usr和psw,代码省略
pytest学习实践-day28: fixture学习09:数据驱动和参数传递-02:使用fixture实现参数化.py
于 2024-04-11 09:12:47 首次发布
文章描述了如何使用pytest框架编写测试用例,特别是针对登录功能的测试,包括正确登录、空账号密码、账号不存在和密码错误等场景,通过fixture和参数化数据来覆盖多种测试情况。
摘要由CSDN通过智能技术生成