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('自动执行')

 

 

 

 
posted @   观呼吸  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示