pytest框架学习-fixture
一、fixture是什么
被@pytest.fixture()装饰器装饰的函数就是一个fixture,fixture可以灵活的为不同范围的测试用例提供前置和后置操作,以及向测试用例传递测试数据。
二、fixture定义
@pytest.fixture(scope=“function”,params=None,autouse=False,ids=None,name=None)
参数说明:
scope:用于控制fixture的作用范围,默认是function。其他包括class, module, package, session。
params: 表示fixture的参数化功能。
autouse: 默认为False,表示自动使用fixture功能,这样用例就不用每次都去传参了。
ids: 表示对fixture参数化的内容进行加上标识。
name:重命名fixture函数名称。
scope参数值说明:
function:默认值,每一个函数或方法都会调用,不填写时便是它。
class:一个class调用一次。
module:一个.py文件调用一次,文件中可以有多个function和class。
package: 一个包调用一次。
session:多个文件调用一次,可以跨.py文件调用。fixture需放在conftest.py中。
三、fixture调用
有三种方法来调用fixture函数:
1、@pytest.mark.usefixtures(被调用的函数名)
2、直接在测试方法中传入参数,参数名为被调用的函数名
3、fixture设置autouse=True自动调用