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

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

相关推荐
2601_962078231 天前
Python接口自动化框架:pytest
python·pytest·接口自动化·测试框架·restfulapi
2601_962078191 天前
Appium+Python+pytest自动化测试框架详解
自动化测试·python·appium·pytest·移动应用
2601_962284503 天前
安卓APP UI自动化测试:Python + UiAutomator2 + pytest + pytest-html
python·pytest·uiautomator2·ui自动化测试·安卓app
2601_962300813 天前
基于pytest的接口自动化测试:使用requests模块的实战项目与接口关联方法详解
接口自动化测试·测试用例·pytest·接口关联·requests模块
2601_962300813 天前
Python + Requests + Pytest + Excel + Allure:接口自动化测试项目实战
python·excel·pytest·allure·requests
11路没有终点4 天前
Pytest 安装、版本与第一个测试用例
测试用例·pytest
11路没有终点5 天前
pytest 参数化与 Mark 标记
pytest
2601_962296285 天前
五种Python自动化测试框架汇总,附学习方法
自动化测试·pytest·unittest·robotframework·python框架
11路没有终点6 天前
pytest Fixture 进阶:conftest 与依赖注入
pytest
2601_962387829 天前
web自动化测试实战教程【selenium/unittest/pytest】【共193课
selenium·pytest·devops·web自动化测试·unittest