1. pytest 的 fixture 机制(作用域、依赖注入、conftest.py)如何支撑接口自动化的分层设计?
pytest 的 fixture 机制(作用域、依赖注入、conftest.py)如何支撑接口自动化的分层设计?
- fixture 机制
- 作用域与依赖注入
- 支撑分层设计
pytest 的 fixture 机制通过"作用域 + 依赖注入 + conftest.py"支撑接口自动化分层。作用域:scope(function/class/module/session)控制 fixture 生命周期——session 级适用于跨用例共享的昂贵资源(如 token、全局 Session、数据库连接),function 级适用于每用例独立数据;分层上用 session 级共享"长生命周期资源"、function 级隔离"用例数据"。依赖注入:测试函数/其他 fixture 通过参数声明依赖,pytest 自动注入(如 def test_login(client, token)),fixture 间可互相依赖(token 依赖 client),形成依赖链,避免手动初始化。conftest.py:按目录组织 fixture 的作用范围——顶层 conftest 放全局 fixture(句柄、环境、公共工具),子目录 conftest 放局部 fixture,实现"按层级组织、按需可见"。支撑分层设计:接口自动化分层(用例层/业务层/请求封装层/数据层)中,fixture 作为"依赖注入的中枢"——用 fixture 提供"已封装的请求客户端"(请求封装层)、"业务操作"(业务层)、"测试数据"(数据层),用例层只需声明依赖即可,实现各层解耦、复用与清晰的分层结构。
fixture 是接口自动化的"装配中枢"。作用域控制共享/隔离、依赖注入串联各层、conftest 分层组织,让用例专注于断言而依赖由 fixture 提供,支撑清晰的分层。