流程总结如下:
1.测试用例 : 使用 @pytest.mark.parametrize 标记多个参数
2.fixture 的参数化
3.自定义参数化:可以通过 pytest_generate_tests 这个钩子方法自定义参数化方案
4.第3放插件实现数据驱动 DDT
---
以下是:
1.使用 @pytest.mark.parametrize 标记多个参数
-----------------------------------
import pytest # 单个参数应用 @pytest.mark.parametrize("name", [1, 2, "张三", 'vincent', {1,2,3}]) def test_01(name): print(name) # 多个参数应用 @pytest.mark.parametrize("name,age", [("张三", 18), ("里斯", 19)]) def test_02(name, age): print(name, age) # 多个标记用于参数化,进行排列组合验证 @pytest.mark.parametrize("name,age", [("张三", 18), ("里斯", 19)]) @pytest.mark.parametrize("sc", ["物理", "化学"]) def test_03(name, age, sc): print(name, age, sc) 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'}, ] @pytest.mark.parametrize('param', login_data, ids=[data.get('case') for data in login_data]) def test_login(param): user_name = param.get('username') pwd = param.get('pwd') print(user_name, pwd)