文章目录
1、pytest夹具fixture
夹具:在用例执行之前、执行之后,自动的运行自定义代码
场景:
- 执行之前:创建测试账号,执行之后:删除测试账号
- 执行之前:启动浏览器, 执行之后:关闭浏览器
- 执行之前:创建测试场景,执行之后,销毁测试场景
1.1、创建fixture
- 创建函数
- 添加装饰器
- yield
@pytest.fixture
def f():
print('启动浏览器') # 前置操作,用例执行之前,自动执行
yield '浏览器类型:chrome' # 返回值,供用例使用
print('关闭浏览器') # 后置操作,用例执行之后,自动执行
简便的方式创建fixture
@pytest.fixture
def f(): # 使用fixture
print('启动浏览器')
return None
1.2、使用fixture
def test_abc(f): # 使用fixture,得到它的返回值
print('我是用例内容,正在执行')
print('收到fixture的返回值:', f)
执行结果:
def test_abc(f): # 使用fixture,得到它的返回值
print(‘我是用例内容,正在执行’)
print(‘收到fixture的返回值:’, f)
简便的方式使用fixture
@pytest.mark.usefixtures('f') # 使用fixture
def test_abc():
print('我是用例内容,正在执行')
1.3、fixture的作用范围
fixture启动比较慢,能否共享(复用)fixture?
- 每个用例执行fixture: 5s * 3(fixture执行次数) = 15s
- 每个用例复用fixture:5s * 1(fixture执