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个数要等于传递的数据次数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)