因為用心,才會喜歡

粥雨

Pytest - Fixture(9) - Fixture传参给测试用例

Pytest - Fixture传参给测试用例

  • 如果想要依赖fixture传递参数给测试用例,可以通过 yield 或者 return 来返回参数;

    • yield:实现setup和teardown,并将参数传递给测试用例;

    • return :仅实现setup,并将参数传递给测试用例而已;


传单个参数

  • return 传递单个参数:

    test_py.py

    import pytest
    @pytest.fixture
    def login():
    name = "==我是账号=="
    # 返回参数
    return name
    # 使用函数传参
    def test_s1(login):
    print("\n**测试用例**")
    # 获取使用参数
    print(login)
    if __name__ == '__main__':
    pytest.main(['-q', 'test_py.py'])

    image-20230529093926332


  • yield 传递单个参数:

    test_py.py

    import pytest
    @pytest.fixture
    def login():
    name = "==我是账号=="
    # 返回参数
    yield name
    print("^^测试结束^^")
    # 使用函数传参
    def test_s1(login):
    print("\n**测试用例**")
    # 返回的是一个元组
    print(login)
    if __name__ == '__main__':
    pytest.main(['-q', 'test_py.py'])

    image-20230529093818352



传多个参数

  • 如果测试用例想要依赖fixture读取测试数据文件,返回多组不同的数据,返回多个参数;

  • 测试用例获取的时候也用多个参数接受数据;

    test_py.py

    import pytest
    @pytest.fixture
    def login():
    name = "==我是账号=="
    pwd = "==我是密码=="
    age = "==我是年龄=="
    # 返回变量
    yield name, pwd, age
    # 使用函数传参
    def test_s1(login):
    print("\n==测试用例==")
    # 返回的是一个元组
    print(f"返回的是一个元组:{login}")
    # 分别赋值给不同变量
    name, pwd, age = login
    # 输出变量内容
    print("输出变量内容:" + name, pwd, age)
    if __name__ == '__main__':
    pytest.main(['-q', 'test_py.py'])

    image


posted @   粥雨  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示