python自动化测试框架pytest.pdf_Python Pytest框架(三)测试固件——下

本文详细介绍了Pytest框架中fixture的使用,包括如何列出所有fixture、测试固件的三种使用方式以及多个测试固件的执行顺序。通过实例展示了fixture在测试函数中的参数传递、作用域管理和自动调用等特性。
摘要由CSDN通过智能技术生成

一、执行命令Pytest -- fixture:可以列出当前所有可用的fixture,包括内置的、插件中的、以及当前项目定义的。

二、使用测试固件的三种方式

eg:conftest.py和test_1.py在同一目录下,要使用测试固件login。

方式1:在测试函数里通过参数,指定要使用的测试固件。

conftest.py

import pytest

@pytest.fixture()

def login():

print('登录系统')

# import pytest

#

# @pytest.fixture(name = "lg")

# def login():

# print('登录系统')

test_1.py

def test_1(login):

print('测试test1')

# def test_1(lg):

# print('测试test1')

方式2:在测试函数里通过装饰器pytest.mark.usefixtures,声明要使用的测试固件。

conftest.py

import pytest

@pytest.fixture(name = "lg")

def login():

print('登录系统')

test_1.py

import pytest

@pytest.mark.usefixtures("lg")

def test_1():

print('测试test1')

方式3:将测试固件装饰器pytest.fixture的参数autouse设为True,测试函数会自动使用该测试固件。

conftest.py

import pytest

@pytest.fixture(name='lg', autouse=True)

def login():

print('登录系统')

test_1.py

def test_1():

print('测试test1')

三、多个测试固件的执行顺序

1、测试用例可以通过参数使用测试固件,测试固件也可以通过参数使用其他测试固件。按照传参顺序执行,此例:先执行fix1(),然后执行fix2(),最后执行test_1()。

import pytest

@pytest.fixture()

def fix1():

print('fix1')

@pytest.fixture()

def fix2(fix1):

print('fix2')

def test_1(fix2):

print('执行测试1')

2、测试用例可以调用多个测试固件,如果它们的作用域相同,则按照传参顺序执行;如果它们的作用域不同,则按照作用域级别,从高到低执行。此例:先执行fix2(),然后执行fix1(),最后执行test_1()。

import pytest

@pytest.fixture()

def fix1():

print('fix1')

@pytest.fixture(scope='module')

def fix2():

print('fix2')

def test_1(fix1, fix2):

print('执行测试1')

3、如果使用autouse参数,测试用例自动调用测试固件。作用域相同时,按函数名的编码从小到大执行;作用域不同时,按作用域的级别从高到低执行。此例:先执行fix1(),然后执行fix2(),最后执行test_1()。

import pytest

@pytest.fixture(autouse=True)

def fix2():

print('fixc')

@pytest.fixture(autouse=True)

def fix1():

print('fixb')

def test_1():

print('执行测试1')

原文链接:https://blog.csdn.net/maoxuexue/article/details/106111102

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值