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}")

二、执行结果图

 

 

 

posted @ 2022-02-24 11:53  一加一  阅读(119)  评论(0编辑  收藏  举报