Pytest fixture参数传递的4种方式

这篇具有很好参考价值的文章主要介绍了Pytest fixture参数传递的4种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近使用Pytest中的fixture和conftest时,遇到需要在conftest中的setup和teardown方法里传递参数。这里记录以下4种实现的方式。

一、fixture中的函数返回

conftest.py

@pytest.fixture(scope="class")

def setup_func():

    test_data = [{"k1": "v1"}, {"k2": "v2"}]

    return test_data

testcase.py

def test_func(setup_func)

    print(setup_func)

结果:

执行一条用例,输出:[{"k1": "v1"}, {"k2": "v2"}]

二、与@pytest.mark.parametrize的结合

conftest.py

@pytest.fixture(scope="class")

def setup_func(request):

    print(request.param)

    return request.param

testcase.py

test_data = [{"k1": "v1"}, {"k2": "v2"}]

@pytest.mark.parametrize('setup_func', test_data, indirect=True)

def test_func(setup_func)

    setup_func

结果:

执行两条用例,分别输出:{"k1": "v1"}, {"k2": "v2"}

注:
当 indirect=False 时,“setup_func”被当成普通变量; 
当 indirect=True 时,“setup_func”被当成函数执行,且 “test_data”作为函数中的参数传递

三、fixture中的方法嵌套传递

confitest.py

@pytest.fixture(scope="class")

def setup_func1():

    test_data1 = [{"k1": "v1"}, {"k2": "v2"}]

    return test_data1

@pytest.fixture(scope="class")

def setup_func2(setup_func1):

    a = setup_func1

    b = [{"k11": "v11"}, {"k22": "v22"}]

    return (a, b)

testcase.py

def test_aaa(self, setup_func2):

        print(setup_func2)

结果:文章来源地址https://www.toymoban.com/news/detail-576897.html

执行一条用例,输出:([{'k1': 'v1'}, {'k2': 'v2'}], [{'k11': 'v11'}, {'k22': 'v22'}])

四、测试方法中产生数据后,直接调用teardown

@python.fixture(scope="class")

def teardown_func():

    def _teardown_func(param1, param2):

        func()

    return _teardown_func

到了这里,关于Pytest fixture参数传递的4种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • pytest笔记2: fixture

    pytest笔记2: fixture

      没有 setup/teardown?    

    2024年02月09日
    浏览(8)
  • pytest fixture 高级使用

    pytest fixture 高级使用

    一、fixture中调用fixture 举例:  输出:  说明:登录fixture 作为参数传递到登出方法中,登录方法的返回值就可以被登出方法使用 二、在fixture中多参数的传递(通过被调用函数传参) 举例:  输出:  三、parametsize与fixture同时使用 举例:  输出: 三、 在fixture中存储testca

    2024年02月13日
    浏览(12)
  • Pytest教程__fixture(9)

    Pytest教程__fixture(9)

    fixture是pytest特有的功能,使用装饰器 @pytest.fixture 标记的函数在其他函数中能被当作参数传入并被调用。 fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活。 fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,它自身也可以调用

    2024年02月09日
    浏览(10)
  • pytest fixture 用于teardown工作

    pytest fixture 用于teardown工作

    fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield呼唤teardown操作。 举个例子:  输出: 说明:yield yield 在 fixture 中起到了唤起 teardown 的作用,同时也可以和 r

    2024年02月13日
    浏览(10)
  • Pytest使用fixture实现token共享

    Pytest使用fixture实现token共享

    同学们在做pytest接口自动化时,会遇到一个场景就是不同的测试用例需要有一个 登录 的前置步骤,登录完成后会获取到 token ,用于之后的代码中。首先我先演示一个常规的做法。 首先在conftest定义一个login的方法,方法返回token 2.在测试用例方法中引入这个方法,所有用到

    2024年02月12日
    浏览(12)
  • pytest fixture 创建一个 requests.session() 对象

    当你运行这段代码时,它会执行以下操作: 1. 导入必要的库:`pytest` 和 `requests`。 2. 定义一个夹具(fixture)函数 `session`,使用 `@pytest.fixture(scope=\\\'session\\\')` 装饰器进行标记。这个夹具函数在整个测试会话期间只会被执行一次。 3. 在 `session` 夹具函数中,创建一个 `requests.sess

    2024年02月11日
    浏览(7)
  • 自动化测试 —— Pytest fixture及conftest详解

    自动化测试 —— Pytest fixture及conftest详解

    fixture是在测试函数运行前后,由pytest执行的外壳函数。fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在,类似unittest中setup/teardown,但是比它们要强大、灵活很多

    2024年04月08日
    浏览(13)
  • Pytest测试技巧之Fixture:模块化管理测试数据

    Pytest测试技巧之Fixture:模块化管理测试数据

    在 Pytest 测试中,有效管理测试数据是提高测试质量和可维护性的关键。本文将深入探讨 Pytest 中的 Fixture,特别是如何利用 Fixture 实现测试数据的模块化管理,以提高测试用例的清晰度和可复用性。  什么是Fixture? 在 Pytest 中,Fixture 是一种用于为测试用例提供设置和资源的

    2024年02月22日
    浏览(13)
  • 超强,Pytest自动化测试框架 fixture 传参实战(案例)

    超强,Pytest自动化测试框架 fixture 传参实战(案例)

    为了提高复用性,我们在写测试用例的时候,会用到不同的fixture,比如:最常见的登录操作,大部分的用例的前置条件都是登录 假设不同的用例想登录不同的测试账号,那么登录fixture就不能把账号写死,需要通过传参的方式来完成登录操作 案例1:传单个参数 执行结果 添加

    2024年02月12日
    浏览(13)
  • 超详细从入门到精通,pytest自动化测试框架实战-fixture多样玩法(九)

    超详细从入门到精通,pytest自动化测试框架实战-fixture多样玩法(九)

    在编写测试用例,都会涉及到用例执行之前的环境准备工作,和用例执行之后的环境清理工作。 代码版的测试用例也不例外。 pytest自动化测试框架:https://www.bilibili.com/video/BV18K411m7FH/ 在自动化测试框架当中,我们也需要编写: 用例执行之前的环境准备工作代码(前置工作代码

    2023年04月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包