1. fixture指定范围
1.1 指定范围
会话级别:session----driver创建到关闭仅引用一次
模块级别:module-----每个.py模块文件应用一次
类级别:class--------每个测试类引用一次
函数级别:function---每个测试函数引用一次
1.2 代码
## conftest.py 文件
import pytest
# 函数级别
@pytest.fixture(scope='function')
def func_scope():
print("函数级别的fixtue--开始")
yield
print("函数级别的fixtue--结束")
# 类级别
@pytest.fixture(scope='class')
def class_scope():
print("类级别的fixtue--开始")
yield
print("类级别的fixtue--结束")
# 模块级别
@pytest.fixture(scope='module')
def module_scope():
print("模块级别的fixtue--开始")
yield
print("模块级别的fixtue--结束")
# 会话级别--autouse属性设置为True后,整个浏览器创建到quit仅自动调用一次,无需引用
@pytest.fixture(scope='session', autouse=True)
def session_scope():
print("会话级别的fixtue--开始")
yield
print("会话级别的fixtue--结束")
# test_scope.py 文件
import pytest
@pytest.mark.usefixtures("module_scope")
@pytest.mark.usefixtures('func_scope')
def test_func_01():
print("执行函数1")
def test_func_02():
print("执行函数2")
@pytest.mark.usefixtures('class_scope')
class Test_class:
@pytest.mark.usefixtures('func_scope')
def test_func_03(self):
print("执行类函数1")
def test_func_04(self):
print("执行类函数2")
# 输出
会话级别的fixtue--开始
模块级别的fixtue--开始
函数级别的fixtue---开始
.执行函数1
函数级别的fixtue---结束
.执行函数2
类级别的fixtue--开始
函数级别的fixtue---开始
.执行类函数1
函数级别的fixtue---结束
.执行类函数2
类级别的fixtue---结束
模块级别的fixtue---结束
会话别的fixtue---结束
1.3 总结
session ---针对整个driver仅运行一次,可以有多个.py文件
module{ ---针对每个.py文件仅运行一次,可以有多个测试类或函数
class[ ---针对每个测试类仅运行一次,可以有多个函数
func1() ---针对每个函数仅运行一次
class]
module}
session