pytest装饰器 @pytest.mark.parametrize 使用方法

这篇具有很好参考价值的文章主要介绍了pytest装饰器 @pytest.mark.parametrize 使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@pytest.mark.parametrize 有三种传参方法,分别是:

1.列表传参:将参数值作为列表传递给装饰器。

@pytest.mark.parametrize("param", [value1, value2, ..., valuen])

2.元组传参:将参数值作为元组传递给装饰器。

@pytest.mark.parametrize(("param1", "param2", ..., "paramn"), [(value1, value2, ..., valuen)])

3.字典传参:将参数名和参数值以字典的形式传递给装饰器。

@pytest.mark.parametrize({"param1": value1, "param2": value2, ..., "paramn": valuen})

使用方法如下:

import pytest

@pytest.mark.parametrize("input", [1, 2, 3])
def test_function(input):
    # 测试逻辑
    assert input > 0

在上面的例子中,我们定义了名为 test_function 的测试函数,并使用 @pytest.mark.parametrize 装饰器为参数 input 传递了一个列表 [1, 2, 3]。这样,pytest 会分别使用这三个值来运行测试函数。

注意,在使用元组或字典传参时,如果只有一个参数,需要在参数名或值的周围加上逗号,以表示这是一个元组或字典。

@pytest.mark.parametrize(("input",), [(1,), (2,), (3,)])
def test_function(input):
    # 测试逻辑
    assert input > 0
@pytest.mark.parametrize({"input": 1})
def test_function(input):
    # 测试逻辑
    assert input > 0

这些传参方法可以根据具体的测试需求选择使用,灵活地为测试函数提供不同的输入参数。

在使用 @pytest.mark.parametrize 设计测试用例时,可以使用多种方法来传递复杂参数。

1.使用列表或元组嵌套:可以使用列表或元组来传递多个参数,例如传递多个数字、字符串等。

@pytest.mark.parametrize("param1", [(1, "a"), (2, "b"), (3, "c")])
def test_function(param1):
    # 测试逻辑
    assert param1[0] > 0
    assert param1[1] != ""

2.使用嵌套的字典列表:可以使用嵌套的字典列表来传递多个复杂的参数。

@pytest.mark.parametrize("param1", [{"name": "John", "age": 25}, {"name": "Alice", "age": 30}])
def test_function(param1):
    # 测试逻辑
    assert param1["name"] != ""
    assert param1["age"] > 0

3.使用参数化装饰器多次调用:可以多次使用 @pytest.mark.parametrize 装饰器来实现传递不同的参数。

import pytest

@pytest.mark.parametrize("name", ["John", "Alice"])
@pytest.mark.parametrize("age", [25, 30])
def test_function(name, age):
    # 测试逻辑
    assert name != ""
    assert age > 0

4.使用参数化装饰器的参数化参数:可以在 @pytest.mark.parametrize 装饰器中使用元组或嵌套元组来传递复杂参数。

@pytest.mark.parametrize(("name", "age"), [("John", 25), ("Alice", 30)])
def test_function(name, age):
    # 测试逻辑
    assert name != ""
    assert age > 0

通过这些方法,可以灵活地传递复杂参数给测试用例,覆盖多种不同的测试情况。文章来源地址https://www.toymoban.com/news/detail-776699.html

到了这里,关于pytest装饰器 @pytest.mark.parametrize 使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【沐风老师】3dMax道路标识生成器插件Road Markings Generator使用方法详解

            Road Markings Generator道路标记生成器是一个高效的脚本,可以在3dsMax中自动创建道路标记的2D遮罩。它可以灵活地应用于Archviz项目,同时为3D艺术家节省大量时间。           【主要特点】 -创建可编辑的自定义人行横道线。 -可编辑街道侧面和中间的虚线和连续线。

    2023年04月23日
    浏览(48)
  • Pytest的使用方法和操作

    Pytest的介绍 pytest是一个流行的Python测试框架,可以用于编写各种类型的自动化测试,包括单元测试、集成测试和端到端测试等。以下是pytest的基本使用方法:  在编写测试用例:在一个.py文件中编写测试函数,以test_开头,例如: 运行测试用例:在终端中进入测试文件所在目

    2024年02月07日
    浏览(32)
  • 接口自动化框架之python pytest-mark(三)

    在测试用例/测试类前面加上: @pytest.mark.标签名, 打标记范围:测试用例、测试类、模块文件 在使用mark标签之前要创建pytest.ini配置文件,同样在运行的时候,‘-m’参数后边也要标识分类标签的名称 1.创建测试代码 2.配置文件:(注意:一定是pytest.ini) 3.执行: 完整代码

    2024年02月07日
    浏览(42)
  • 从0到1精通自动化测试,pytest自动化测试框架,使用自定义标记mark(十一)

    pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行 app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是ios用例,哪些是android的,运行代码时候指定mark名称运行就可以 1.以下用例,标记test_send_h

    2024年02月11日
    浏览(92)
  • Pytest中使用Fixture替换Unittest的Setupclass及Pytest使用装饰器应用参数化

            Pytest中夹具(Fixture)有几种生命周期:function-model-class-session-packages,其中默认为function。             在类外写Fixture,通过@pytest.para.usefixtures(\\\"fixture name\\\")来调用。              fixture中不使用参数,测试用例使用参数化。

    2024年02月05日
    浏览(34)
  • csrf跨站请求的相关装饰器、Auth模块(模块的使用、相关方法、退出系统、修改密码功能、注册功能)、扩展默认的auth_user表

    1 csrf跨站请求的相关装饰器 2 Auth模块的使用 3 Auth模块的相关方法 3.1 登录页面前端代码 3.2 Auth模块之退出系统 3.3 Auth模块之修改密码功能 3.4 Auth模块之注册功能 4 扩展默认的auth_user表

    2024年02月12日
    浏览(39)
  • chatgpt赋能python:Python中的矩阵合并方法:介绍和使用方法

    矩阵合并是Python编程中常用的操作之一,特别是针对数据分析、机器学习和深度学习等领域。Python提供了多种方法来合并矩阵,本文将介绍这些方法并分享如何在实际应用中使用它们。 最基础的矩阵合并方法是使用numpy库的concatenate方法。这个方法接受两个或多个矩阵作为参

    2024年02月14日
    浏览(57)
  • Python策略模式介绍、使用方法

    Python策略模式(Strategy Pattern)是一种软件设计模式,用于通过将算法封装为独立的对象,而使得它们可以在运行时动态地相互替换。该模式使得算法的变化独立于使用它们的客户端,从而达到代码的可扩展性、灵活性和可维护性。 功能: 1.将不同算法进行抽象和封装,使得

    2024年02月15日
    浏览(63)
  • Python组合模式介绍、使用方法

    概念: 组合模式(Composite Pattern)是一种结构型设计模式,它通过将对象组合成树状结构来表示“整体/部分”层次结构,让客户端可以以相同的方式处理单个对象和组合对象。 功能: 统一对待组合对象和叶子对象 方便添加/删除节点 简化客户端代码 优点: 可以更方便地添加

    2024年02月15日
    浏览(44)
  • python urllib库使用方法

      urllib库是 Python的一个第三方库,它提供了丰富的功能和强大的性能。Python版本为2.11,提供了在不同平台上运行的选项,其中包括用于桌面和移动设备的应用程序。与 pycharm和 libc等库不同, urllib不是为了构建桌面应用程序而设计的,但是它可以用于移动设备上的应用程序。

    2023年04月09日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包