本文介绍了基于pytest的自动化测试框架项目架构设计。整体采用分层设计包含config全局配置、core_base底层功能封装、resource业务流关键字、data测试数据、test_cases测试用例等核心目录。其中config存放环境配置和pytest钩子core_base实现底层操作封装resource组合原子操作形成业务流test_cases通过排列组合业务流构建测试用例。框架还包含reports测试报告、common公共工具等辅助目录以及定义pytest运行规则的pytest.ini文件。该架构实现了测试数据与代码分离、功能模块化复用并通过conftest.py管理全局fixture和钩子函数体现了自动化测试框架的高效性和可维护性特点。一、pytest自动化测试框架项目架构图pytest_automation/├── config/ # 全局配置文件│ ├── settings.py # 项目配置环境、URL、账号、超时时间等│ └── conftest.py # pytest 全局钩子、 fixture、插件配置核心文件├── core_base/ # 底层单一功能函数(原子性的)│ ├── base_api.py # API 基础请求封装requests 二次封装│ ├── base_ui.py # UI 基础操作封装selenium/appium│ └── logger.py # 日志打印封装├── resource/ # 业务流关键字封装将多个单一功能函数封装成一个更高层级的动作│ ├── login_page.py├── data/ # 测试数据│ ├── api_data/ # 接口测试用例数据│ └── ui_data/ # UI测试用例数据├── test_cases/ # 测试用例目录测试用例就是多个业务流关键字的排列组合│ ├── api_test/ # 接口用例│ └── ui_test/ # UI用例├── reports/ # 测试报告自动生成├── common/ # 公共工具类│ ├── utils.py # 通用工具时间、加密、文件处理│ └── assert_util.py # 断言封装├── requirements.txt # 依赖包清单└── pytest.ini # pytest 主配置文件二、每个目录 / 文件 作用说明(1)config目录 —— 配置中心settings.py全局配置环境、项目路径、日志级别、报告名称env.yaml多环境地址、账号密码方便切换测试环境(2)core_base目录 —— 框架核心实现所有底层单一功能函数。base_api.py封装 GET/POST/PUT/DELETE自动加请求头、鉴权base_ui.py封装 Selenium 常用操作点击、输入、等待logger.py统一日志格式输出到文件 控制台(3)data目录 — 测试数据测试数据与代码逻辑分离支持 yaml、excel、json(4)resource目录—业务流关键字目录将多个单一功能函数封装成一个更高层级的动作。因为多个测试用例会共用一些相同的测试步骤这时把具有相同测试步骤但是测试数据不同的业务流封装成一个业务关键字函数即core_base目录中的单一功能函数的排列组合测试数据作为业务关键字函数入参即可。(5)test_cases目录 — 测试用例最重要所有用例必须放在这里pytest 默认识别文件名test_*.py 函数名test_*(6)reports目录——测试报告(7)common目录 —— 公共工具类方法全项目复用(8)conftest.py文件 —— pytest 灵魂全局 fixture登录、token、驱动、环境初始化钩子函数修改报告、用例失败截图、数据清理(9)pytest.ini文件 —— pytest 配置运行规则、编码、标签、忽略目录、默认参数
pytest自动化测试框架项目架构
本文介绍了基于pytest的自动化测试框架项目架构设计。整体采用分层设计包含config全局配置、core_base底层功能封装、resource业务流关键字、data测试数据、test_cases测试用例等核心目录。其中config存放环境配置和pytest钩子core_base实现底层操作封装resource组合原子操作形成业务流test_cases通过排列组合业务流构建测试用例。框架还包含reports测试报告、common公共工具等辅助目录以及定义pytest运行规则的pytest.ini文件。该架构实现了测试数据与代码分离、功能模块化复用并通过conftest.py管理全局fixture和钩子函数体现了自动化测试框架的高效性和可维护性特点。一、pytest自动化测试框架项目架构图pytest_automation/├── config/ # 全局配置文件│ ├── settings.py # 项目配置环境、URL、账号、超时时间等│ └── conftest.py # pytest 全局钩子、 fixture、插件配置核心文件├── core_base/ # 底层单一功能函数(原子性的)│ ├── base_api.py # API 基础请求封装requests 二次封装│ ├── base_ui.py # UI 基础操作封装selenium/appium│ └── logger.py # 日志打印封装├── resource/ # 业务流关键字封装将多个单一功能函数封装成一个更高层级的动作│ ├── login_page.py├── data/ # 测试数据│ ├── api_data/ # 接口测试用例数据│ └── ui_data/ # UI测试用例数据├── test_cases/ # 测试用例目录测试用例就是多个业务流关键字的排列组合│ ├── api_test/ # 接口用例│ └── ui_test/ # UI用例├── reports/ # 测试报告自动生成├── common/ # 公共工具类│ ├── utils.py # 通用工具时间、加密、文件处理│ └── assert_util.py # 断言封装├── requirements.txt # 依赖包清单└── pytest.ini # pytest 主配置文件二、每个目录 / 文件 作用说明(1)config目录 —— 配置中心settings.py全局配置环境、项目路径、日志级别、报告名称env.yaml多环境地址、账号密码方便切换测试环境(2)core_base目录 —— 框架核心实现所有底层单一功能函数。base_api.py封装 GET/POST/PUT/DELETE自动加请求头、鉴权base_ui.py封装 Selenium 常用操作点击、输入、等待logger.py统一日志格式输出到文件 控制台(3)data目录 — 测试数据测试数据与代码逻辑分离支持 yaml、excel、json(4)resource目录—业务流关键字目录将多个单一功能函数封装成一个更高层级的动作。因为多个测试用例会共用一些相同的测试步骤这时把具有相同测试步骤但是测试数据不同的业务流封装成一个业务关键字函数即core_base目录中的单一功能函数的排列组合测试数据作为业务关键字函数入参即可。(5)test_cases目录 — 测试用例最重要所有用例必须放在这里pytest 默认识别文件名test_*.py 函数名test_*(6)reports目录——测试报告(7)common目录 —— 公共工具类方法全项目复用(8)conftest.py文件 —— pytest 灵魂全局 fixture登录、token、驱动、环境初始化钩子函数修改报告、用例失败截图、数据清理(9)pytest.ini文件 —— pytest 配置运行规则、编码、标签、忽略目录、默认参数