Pytest fixture 参数化(params 参数)

简介

pytest 还支持参数化 fixture,即可以为一个 fixture 提供多个不同的值,让多个测试用例使用不同的测试数据。这样可以有效减少重复代码,尤其适合测试多组输入输出的情况。


基本语法

  • params:传入一个列表,包含 Fixture 的不同参数。

  • request.param:可以在 Fixture 函数中通过 request.param 获取当前参数。

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[param1, param2, param3, ...])
    def fixture_name(request):
        return request.param

单参数

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[1, 2, 3])
    def number(request):
        yield request.param
        # return request.param  # 效果一致,同时存在只生效一个
    
    def test_number(number):
        assert number > 0
    • 运行结果

多参数

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[
       ["user", 123],
       ["appli", 123456]
    ])
    def login(request):
        print(f"用户名:{request.param}")
        yield request.param
    
    def test_demo(login):
        print(f"demo case: 数据为: {login}")
    • 运行结果
相关推荐
BaoshengTT9 小时前
2026年双流区汽车贴膜种类及挑选要点保圣威固7V不凡门店
python
乐启国际旅行社有限公司9 小时前
Java线程池实战:文旅系统批量任务性能优化(团期生成/数据导出)
java·开发语言·性能优化
zhiSiBuYu05179 小时前
Flask 请求与响应新手实战指南
后端·python·flask
宸津-代码粉碎机9 小时前
告别手动Jar部署!生产级无损热部署方案,彻底解决OOM与更新失效问题
java·大数据·开发语言·人工智能·python
米码收割机9 小时前
【移动】线上购物移动端网站(源码+文档)【独一无二】
java·开发语言·前端·python·django
未知违规用户9 小时前
大模型项目: 学习FastAPI 服务器开发
服务器·人工智能·python·学习·fastapi
小肝一下9 小时前
多态(上)
android·开发语言·c++·vscode·多态·面向对象·伊蕾娜
想会飞的蒲公英9 小时前
PyTorch reshape、view、transpose、广播到底怎么选?
人工智能·pytorch·python
卷无止境9 小时前
Python装饰器:一层糖衣包裹的函数魔法
后端·python
xlrqx9 小时前
长治家电清洗培训基地如何挑选及行业基本培训标准科普
大数据·python