• 欢迎光临~

Selenium56-pytest测试固件

开发技术 开发技术 2022-12-30 次浏览

pytest测试固件

  • 通过装饰器@pytest.fixture(),定义测试固件(test fixture)
  • 测试固件是什么?
    • 也叫测试夹具,用于实现初始化的前置操作或清理扫尾的后置操作。
  • @pytest.fixture()修饰器来标记固定的工厂函数,在其他函数、模块、类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作。

设置测试固件的作用域

  • 通过装饰器@pytest.fixture()的参数scope,设置测试固件的作用域(scope)
    • scope='function' 每个测试函数或方法前做处理。
    • scope='class' 每个测试类前做处理。
    • scope=”module” 可以实现多个.py跨文件共享前置。
    • scope=”session” 以实现多个.py跨文件使用一个session来完成多个用例。
      Selenium56-pytest测试固件

autouse自动调用

  • @pytest.fixture(scope=?, autouse=True)
    • 当用例很多的时候,每次都传这个参数,会很麻烦
    • fixture中的参数autouse,默认是False
    • autouse设置为True,自动调用fixture功能
    • 使用scope=class时,每个测试函数都会自动使用其所修饰的初始化函数

yield关键字

  • yield实现用例执行完之后清除数据(或还原)操作。
  • 为什么要使用yield关键字?
    • fixture默认作为用例执行之前的前置操作函数存在。
    • 用例执行完之后如果有后置操作,需要使用yield关键字实现。
  • fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。

yield返回值

  • yeild也是一种函数的返回值类型,是函数上下文管理器。
    • 使用yield被调fixture函数执行遇到yield会停止执行,接着执行调用的函数,调用的函数执行完后会继续执行fixture函数yield关键后面的代码。
    • yield在fixture中起到了唤起teardown的作用,同时也可以和return一样返回值。
  • yield和return的区别是:
    • return执行完成,该函数终止;
    • yield在返回结束后,后续的代码仍可执行。

yield使用注意事项

Selenium56-pytest测试固件

程序员灯塔
转载请注明原文链接:Selenium56-pytest测试固件
喜欢 (0)