测开面经分享(pytest装饰器)

  1. pytest装饰器
    a. @pytest.mark.parametrize:这个装饰器用于标记测试函数,并为其提供多组参数进行参数化测试。可以使用元组、列表、字典等形式来指定参数组合。
import pytest

@pytest.mark.parametrize("num1, num2, expected", [(2, 2, 4), (5, 3, 8)])
def test_addition(num1, num2, expected):
    assert num1 + num2 == expected

b. @pytest.fixture:这个装饰器用于定义夹具函数,可以在测试函数执行前后进行准备和清理工作。测试函数可以通过参数来使用夹具。

import pytest

@pytest.fixture
def setup_data():
    # 准备测试数据
    data = [1, 2, 3, 4, 5]
    yield data  # 返回数据
    # 清理工作

def test_data_length(setup_data):
    assert len(setup_data) == 5

c. @pytest.mark.skip:这个装饰器用于标记测试函数,跳过该测试函数的执行。可以用于临时禁用某些测试,或者在某些条件下跳过测试。

import pytest

@pytest.mark.skip(reason="Not implemented yet")
def test_functionality():
    # 测试函数的实现
    assert 1 + 1 == 2

d. @pytest.mark.xfail:这个装饰器用于标记一个预期失败的测试。通常在已知某些条件下测试会失败,但仍然希望执行它们并跟踪失败情况时使用。

import pytest

@pytest.mark.xfail
def test_division():
    assert 10 / 0 == 5

e. @pytest.mark.skipif:这个装饰器用于在满足指定条件时跳过测试。可以使用它来根据环境、配置或其他条件来动态决定是否跳过测试。

import pytest

@pytest.mark.skipif(sys.version_info < (3, 7), reason="Requires Python 3.7 or higher")
def test_functionality():
    # 测试函数的实现
    assert 1 + 1 == 2

互联网大厂测开经历,目前担任测试开发负责人,每天分享互联网面经,如果你有测试相关的问题,欢迎咨询,海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】,已辅导20位以上同学拿到心仪offer

海鲜市场

在使用pytest进行接口自动化试时,可以使用装饰器来对试函数进行标记和配置,以实现更灵活的试功能。pytest提供了多种装饰器,下介绍一些常用的装饰器及其用法: 1. @pytest.fixture:用于定义试用例执行前的准备工作和清理工作。可以在试函数中通过参数注入fixture的返回值,从而使用fixture提供的资源或操作。 ```python import pytest @pytest.fixture def setup(): # 执行准备工作 yield # 执行清理工作 def test_example(setup): # 使用fixture提供的资源或操作 pass ``` 2. @pytest.mark.parametrize:用于参数化试用例,可以根据不同的参数值运行同一个试用例多次,方便验证不同场景下的接口行为。 ```python import pytest @pytest.mark.parametrize('username', ['admin', 'guest']) def test_login(username): # 使用参数化的username执行登录接口试 pass ``` 3. @pytest.mark.skip:用于标记一个试用例跳过执行,可以在发过程中临时跳过某些试用例,以便快速运行其他试。 ```python import pytest @pytest.mark.skip(reason='Not implemented yet') def test_not_implemented(): # 试代码 pass ``` 4. @pytest.mark.xfail:用于标记一个试用例预期会失败,可以在已知某个试用例会失败的情况下进行标记,以便在试结果中正确地显示为失败。 ```python import pytest @pytest.mark.xfail(reason='Known issue') def test_known_issue(): # 试代码 pass ``` 这些装饰器可以帮助你更灵活地管理和配置试用例,在pytest中实现接口自动化试。通过合理使用装饰器,可以提高试的可读性、可维护性和可复用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值