Pytest项目_day11(fixture、conftest)

Fixture

  • fixture是一种类似于setup、teardown,用于测试前后进行预备、清理工作的代码处理机制
    • 相比于setup、teardown来说,fixture命名更灵活,局限性更少
    • 使用conftest.py配置里面可以实现数据共享,不需要import就能自动找到一些配置

使用范围

function范围

  • 我们首先需要在一个自定义方法前写上fixture的注解
    • 如果不写范围,则该fixture默认为function范围
    • 我们需要在要求调用该fixture的方法的形参处,写上自定义方法名
  • 我们也可以使用autouse=True来让该文件内的每一个函数都自动调用fixture,同时避免我们手动写自定义方法名

class范围

  • 我们首先需要在一个自定义方法前写上fixture的注解,并且将范围设置为class
    • 当我们在该文件内不设置class类时,如果将autoclass设置为True,那么pytest会将每一个方法都视为一个类,每一个方法都会调用该fixture
    • 当我们将这些方法都放进一个类时,那么只有类最开始会调用一次fixture
    • 如果该文件内有很多个类,我们只想让其中的某一个类调用fixture,那么只需要将autouse设为False,并且在某一个类中的某一个方法的形参上加上该fixture即可

module范围

  • 我们首先需要在一个自定义方法前写上fixture的注解,并且将范围设置为module
    • 如果我们将autouse设为false,并且在多个方法和类中加上该fixture,那么整个py文件也只会调用一次fixture,且是在第一次加上该fixture的位置处调用
    • 如果我们将autouse设为True,那么只会在整个py文件的最开始调用一次fixture

session范围

  • 我们首先需要在对应目录下创建一个新文件方法前写上fixture的注解,并且将范围设置为session
    • 然后我们可以在控制台用pytest来运行该目录,可以看到对于一次运行多个文件,fixture也只调用了一次,且是在最开始调用的

conftest.py

  • 我们可以将fixture的定义放在conftest.py方法内部,统一管理

  • conftest.py为固定格式,不可以修改名字

  • 使用conftest.py文件中的方法时,无需导入,直接在方法的参数处引入形参即可

  • conftest.py仅作用于当前所处文件夹和下属文件夹

  • 如果在conftest.py中,范围为function的fixture,设置autouse为True,那么当前所处文件夹和下属文件夹的所有测试用例都会自动调用该fixture

    • 一个测试用例可以接收多个fixture

fixture通过return返回数据

  • 我们可以在fixture中使用return来返回数据,供其他测试用例调用
  • 在测试用例中,我们将fixture方法名作为实参传入后,pytest会自动将该fixture的返回值传给该同名形参,因此我们可以在后续代码中直接使用
相关推荐
2601_967987371 天前
Python在自动化测试中有哪些应用?
python自动化测试·selenium·appium·pytest·性能测试
Madison-No76 天前
pytest框架
pytest
凛铄linshuo12 天前
分析业务流程什么时候适合断言?
python·pytest
凛铄linshuo12 天前
自动化测试:pytest第一个实例学习
学习·pytest
Helix25015 天前
Python单元测试实战:pytest框架从入门到企业级测试体系搭建指南
python·单元测试·实战·mock·pytest·测试覆盖率·fixture
在世修行19 天前
干货:pytest
pytest·fixture·pytest assert
小小龙学IT21 天前
Python pytest 测试框架深度解析:从断言重写到插件生态的工程化测试体系
网络·python·pytest
落魄大学生之流水线上谋生计23 天前
pytest 入门与实践:从第一个测试到可维护的测试体系
pytest
念越24 天前
Allure 测试报告保姆级教程:从安装到 pytest 集成与报告生成
pytest·allure
念越25 天前
接口自动化测试从入门到实战:接口用例设计、Requests、Pytest、YAML、JSON Schema 与 Allure 报告
python·测试工具·自动化·json·pytest