2:fixture
fixture的优势
- 命名方式灵活,不局限于 setup 和teardown 这几个命名
- conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture
- scope="module" 可以实现多个.py 跨文件共享前置
- scope="session" 以实现多个.py 跨文件使用一个 session 来完成多个用例
- fixture可以让我们自定义测试用例的前置条件
1:pytest-fixture----特殊用例前置(默认是作用域function级别--只能在单个方法里用)
场景:
1:用例1需要登录
2:用例2不需要登录
3:用例3需要登录
这种场景无法用setup与teardown方法,
可以在需要特殊前置方法前加@pytest.fixture()---,在使用时测试用例传入前置的方法名
yield返回数据--login01相当于把返回的变量赋值给login01
@pytest.fixture()
def login01():
print('那个用例用传函数调用先执行-登录')
yield 123
print('用例执行传函数调用后在执行类似teardown')
def test_01(login01):
print(f'{login01}')
2:conftest.py
1:conftest文件名不能换
2:conftest.py与运行的用例要在同一包下,并且有__init__.py文件
3:全局配置和前期工作都可以写在这里
2:yield--特殊用例后置(类似teardown)----需要用例执行返回的数据
第一次调用yield之前的并返回的结果,第二次调用yield之后的并返回结果 ,有返回值要使用addfinalizer
scope='class'---类级别先在执行用例之前执行一次,在执行完整个测试类之后在执行一次
@pytest.fixture(scope='class')
def open_browser():
print('\n打开浏览器')
yield
print('关闭浏览器')
3:@pytest.fixture(autouse=True)---全部用例都自动执行
@pytest.fixture(autouse=True)
def login():
print('自动执行')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结