fixture的调用方式:
@pytest.fixture(scope="function",params=None,autouse=False,ids=None,name=None)
参数解析:
1.scope:控制fixture的作用范围,类似setup、teardown,默认取值为function(函数级别),控制范围的排序:session>module>class>function
function:函数级,每个函数或方法都会调用
class:函数级,模块级,每一个.py文件调用一次
module:模块级 每一个.py文件调用一次
session:会话级,每次会话只需要运行一次,会话内所有方法集类,模块都共享这个方法;
2.params:fixture的可选形参列表,支持列表传入默认None,每个param的值fixture都会去调用执行一次,类似for循环,可与参数ids一起使用,作为每个参数的标识,被fixture装饰的函数要调用是采用:request.param(固定写法)
3.ids 用例标识id,与params配合使用,一对一关系;
4.autouse:默认False,若为Ture,则每个测试函数都会自动调用该fixture,无需传入fixture函数名,总结调用fixture的三种方式:
1.函数或类里面方法直接传fixture的函数参数名称
2.使用装饰器@pytest.mark.usefixture()
3.autouse=Ture自动调用,无需传任何参数,作用范围跟着scope走(谨慎使用)。
5.name:fixture的重命名,通常来说使用fixture的测试函数会将fixture的函数名作为参数传递,但是pytest也允许将fixture重命名,如果使用name,那只能将name传入,函数名不再生效。