目录:导读
前言
什么是固件
Fixture 翻译成中文即是固件的意思。
它其实就是一些函数,会在执行测试方法/测试函数之前(或之后)加载运行它们,常见的如接口用例在请求接口前数据库的初始连接,和请求之后关闭数据库的操作。
pytest 中提供了功能更加丰富的Fixture,用于实现setup、teardown功能。
定义方式
使用@pytest.fixture()进行定义,简单示例如下:
import pytest
@pytest.fixture()
def before():
print("连接数据库")
调用方式:
调用单个fixture函数
方式一:使用fixture函数名作为参数
import pytest
@pytest.fixture()
def before():
print("连接数据库")
# 调用before
def test_01(before):
print("执行test_01")
方式二:使用 @pytest.mark.usefixtures(‘fixture函数名’)装饰器
import pytest
@pytest.fixture()
def before():
print("连接数据库")
# 调用before
@pytest.mark.usefixtures('before')
def test_01():
print("执行test_01")
方式三:使用autouse参数自动执行fixture函数
import pytest
# fixture函数定义的时候使用autouse参数,作用域范围内的测试用例会自动调用该fixture函数
@pytest.fixture(autouse=True)
def before():
print("连接数据库")
# 自动调用before
def test_01():
print("执行test_01")
三种方式调用后的结果都如下:
我们可以看到,先执行了fixture函数,再执行测试函数。
1、调用多个fixture函数
import pytest