Pytest 参数化用例


    参数化函数使用


        使用装饰器
            @pytest.mark.parametrize(参数,值)


        单参数


            只传一个参数

search_list = ['appinum','pytest']

@pytest.mark.parametrize('name',search_list)

def test_demo(name):

    print(name)

    assert name in search_list


        多参数


            传多个参数

@pytest.mark.parametrize("test_input,expected",[("3+8",11),("2+5",7)])

def test_mark_more(test_input,expected):

  assert eval(test_input) == expected

        用例重命名


            给执行不同参数的用例重新起名
                ids

#命名第一次运行的参数用例叫number_1,同理命名number_2
@pytest.mark.parametrize("test_input,expected",[("3+8",11),("2+5",7)],

                         ids=["number_1","number_2"])

def test_mark_more(test_input,expected):

    assert eval(test_input) == expected


        笛卡尔积


            把不同参数两两组合成集合传入用例
            通常用在排查问题

#笛卡尔积

#输出9次结果,结果两两组合

@pytest.mark.parametrize("wd",["appium","java","python"])

@pytest.mark.parametrize("code",["utf-8","gbk","gb123"])

def test_dkej(wd,code):

    print(f"wd:{wd},code:{code}")


        注意


            参数化的名字要和方法中的参数名一一对应,顺序不变
            如果传递多个参数,则放在列表中,列表中嵌套列表或者元组
            ids个数要等于传递的数据次数

 

posted @   lms21  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示