当前位置: 首页 > news >正文

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

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

http://www.jsqmd.com/news/915042/

相关文章:

  • 告别卡顿与色偏:PotPlayer搭配MadVR渲染器,针对NVIDIA/AMD/Intel显卡的详细画质调校手册
  • 从水果忍者到你的游戏:Unity刀痕特效避坑指南(材质、Z轴与屏幕坐标转换)
  • 2026 专业做钢格栅的厂家产品测评汇总盘点河北各地钢格栅板源头生产厂家综合品质 - 栗子测评
  • 2026年苏州显示厂家口碑推荐榜:LCD 拼接屏、LED 显示屏、高清大屏、会议商显厂家选择指南,产品、工程、服务三维度权威解析 - 海棠依旧大
  • 别再只懂k-anonymity了:用Python实战带你理解l-diversity和t-closeness的进阶隐私保护
  • 告别VGG16!用MobileNet+PFLD在MindSpore上实现140FPS的人脸关键点检测
  • Layabox CEO王亚伟亮相2026微信小游戏开发者大会:小游戏正式迈入WebGPU与AI时代
  • AI如何重塑影响力营销:从精准匹配到智能优化的六维变革
  • 告别物理限制:手把手教你用USB Network Gate在VMware和Hyper-V虚拟机里直连USB加密狗
  • 炎症信号网络的分子机制、调控失衡与科研应用综述
  • DownKyi如何帮助用户高效下载B站视频?实用操作手册
  • 2026年05月重庆气楼源头厂家口碑推荐,不容错过,9a型天窗/防腐通风气楼/薄型天窗,气楼销售厂家哪家专业 - 品牌推荐师
  • 娱乐沙滩泳池价格,诺亚泳池贵不贵? - myqiye
  • 教会一个 AI,它就能去教别的 AI?
  • 氢氧化镁多少钱,银羽牌氢氧化镁性价比高吗 - 工业品牌热点
  • 2026 盘点专业做钢格栅的厂家汇总河北钢格栅板及钢格板源头生产厂家信息 - 栗子测评
  • 2026年好用的代理记账公司排名,方成财税上榜 - myqiye
  • 告别标准阅读焦虑:一张图带你看懂ISO 16750-2023对电气/机械/气候/化学测试的要求
  • 2026年苏州轻质节能建材口碑推荐榜:发泡混凝土、石膏基自流平、发泡水泥厂家选择指南,产能、工艺、品控三维度权威解析 - 海棠依旧大
  • 2026年月九华山徽菜馆口碑甄选:好吃徽菜馆、必吃美食、农家土菜、实惠餐饮、必打卡土菜馆选择指南 - 海棠依旧大
  • Godot(4.x): 游戏管理器: Excel 动态依赖注入实现
  • 内存计算架构原理、实现与应用解析
  • 用Python+GDAL处理GLASS LAI数据:一个不依赖ArcGIS的免费替代方案
  • 2026年etpu发泡产品制造商排名,口碑好的有哪些? - 工业推荐榜
  • 快手图片去水印软件怎么用?不同场景的处理方法与工具选择方案 - 科技热点发布
  • 2026 锌钢护栏网源头厂家及小区庭院铁艺围栏产品综合测评分析 - 栗子测评
  • Windows右键菜单终极管理指南:用ContextMenuManager让右键菜单秒开如飞
  • 绕线机远程监控运维系统方案
  • 2026教培无人机、低空经济无人机、清洗无人机源头厂家实力推荐 - 栗子测评
  • 2026年佰维存储数字IC笔试试卷带答案