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 配置

运行规则、编码、标签、忽略目录、默认参数

相关推荐
词元Max3 天前
2.12 pytest 实战:如何测试 AI 应用
人工智能·pytest
biter down4 天前
11:pytest 框架 assert 验证测试
服务器·windows·pytest
biter down5 天前
14:pytest-order 插件 顺序控制案例
开发语言·python·pytest
我的xiaodoujiao5 天前
API 接口自动化测试详细图文教程学习系列21--结合Pytest框架使用2--断言和插件
python·学习·测试工具·pytest
我的xiaodoujiao5 天前
API 接口自动化测试详细图文教程学习系列22--结合Pytest框架使用3-分组、跳过执行和参数化处理
python·学习·测试工具·pytest
测试员周周9 天前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
旦莫11 天前
一个完美的AI测试Agent应该是什么样的
人工智能·python·测试开发·pytest·ai测试