Pytest - 参数化
一、代码示例
import pytest '''装饰测试类: 适用场景:登录框的多种情况组合测试。比如账号空、密码空、账号密码都为空,可以用参数化方式处理''' @pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 42)]) def test_eval(test_input, expected): print(f"测试数据{test_input},期望结果{expected}") assert eval(test_input) == expected '''“笛卡尔积”,多个参数化装饰器: 当装饰器 @pytest.mark.parametrize 装饰测试类时,会将数据集合传递给类的所有测试用例方法,“笛卡尔积”,多个参数化装饰器''' #笛卡尔积,组合数据 data_1 = [1,2,3] data_2=['a','b'] @pytest.mark.parametrize('test1',data_1) @pytest.mark.parametrize('test2',data_2) def test_parametrize_1(test1,test2): print(f'笛卡尔积 测试数据为:{test1},{test2}') '''参数化 ,传入字典数据''' dic_1=( { "user":"admin", "pwd":123456 }, { "user": "test", "pwd": 123 } ) @pytest.mark.parametrize("dic",dic_1) def test_parametrize_2(dic): print(f"测试数据为\n{dic}")
二、执行结果图