Python+Pytest+Allure实战:DummyJSON接口自动化测试框架搭建全指南

大家好!今天给大家分享一个基于 Python + Pytest + Requests + Allure 构建的 DummyJSON 接口自动化测试框架。DummyJSON 提供了丰富的模拟接口,非常适合用于接口自动化测试练习和框架搭建实战。本文会从项目结构、环境准备、核心模块实现、使用方法等方面,带大家完整掌握这个测试框架的搭建与使用。

一、框架介绍与技术选型

1. 项目背景

DummyJSON 是一个提供模拟REST API的服务,包含用户、商品、购物车、认证等多个模块的接口,无需自己搭建后端服务,即可快速开展接口自动化测试练习。本框架基于该服务,实现了接口的封装、测试用例的编写、测试报告的生成等全流程自动化。

2. 技术栈选型

  • Python 3.x:作为核心开发语言,语法简洁,生态丰富,适合快速构建测试框架
  • Pytest:强大的Python测试框架,支持用例分组、参数化、夹具(fixture)等功能,简化测试用例编写
  • Requests:Python HTTP请求库,简洁易用,用于发送HTTP请求与接口交互
  • Allure:美观、详细的测试报告生成工具,支持展示用例执行结果、测试步骤、错误信息等,便于问题定位
  • PyYAML:用于解析YAML格式的配置文件和测试数据,实现数据与代码分离

二、项目结构详解

一个清晰的项目结构是框架可维护性的基础,本项目采用分层设计思想,各目录职责明确,结构如下:

三、环境准备与安装

1. 前置要求

  • Python 3.7+(推荐3.9+):确保安装并配置好环境变量
  • Java 8+:Allure报告生成依赖Java环境,需安装并配置JAVA_HOME

2. 安装步骤

步骤1:克隆仓库并进入项目目录

步骤2:安装项目依赖

项目依赖已整理在 requirements.txt 中,执行以下命令一键安装:

requirements.txt 内容参考:

四、核心配置说明

项目配置文件位于 config/config.yaml,采用YAML格式,支持多环境配置(如测试环境、生产环境),可根据需求修改:

核心配置说明:

  • env:指定当前使用的环境,修改该值即可切换环境
  • base_url:接口基础URL,统一管理,便于环境切换
  • username/password:测试认证凭证,用于登录接口获取Token 

五、核心模块实现解析

1. 公共工具类(common/)

该目录封装通用功能,避免代码重复,核心文件包括:

  • request_handler.py:封装Requests的GET、POST等请求方法,统一处理请求头、请求参数、响应结果
  • token_manager.py:管理登录Token,实现Token的获取、缓存、刷新,避免重复登录
  • config_handler.py:解析YAML配置文件,提供配置参数的统一获取方式

示例:request_handler.py 核心代码

2. API封装层(api/)

按业务模块封装接口,每个模块对应一个Python文件,对外提供清晰的调用方法,屏蔽接口细节。核心模块包括:

1)认证模块(api/auth_api.py)

(2)商品模块(api/product_api.py)

3. 测试数据(data/)

用YAML文件存储测试数据,实现数据驱动测试。示例:data/login_data.yaml

4. 测试用例(testcases/)

编写测试用例,调用API封装和测试数据,使用Pytest的夹具和断言功能。示例:testcases/test_login.py

六、框架使用方法

1. 运行测试用例

本项目提供了统一的启动脚本 run.py,执行该脚本即可完成测试用例执行、报告生成、自动打开报告全流程:

python run.py

run.py 核心代码逻辑:

也可直接使用Pytest命令运行测试(灵活指定用例、分组等):

2. 查看测试报告

方式1:通过 run.py 自动打开(执行后会自动在默认浏览器打开报告)

方式2:手动生成并打开报告(若直接用pytest运行用例)

allure serve report/allure-results # 生成临时报告并打开

# 或生成静态报告后打开

allure generate report/allure-results -o report/allure-report --clean allure open report/allure-report

Allure报告展示内容:

  • 用例执行统计:总用例数、通过数、失败数、跳过数
  • 测试用例详情:每个用例的执行步骤、请求参数、响应结果
  • 错误信息:失败用例的详细错误日志,便于定位问题
  • 图表统计:用例执行趋势、模块分布等可视化图表

七、支持的接口模块

目前框架已封装DummyJSON的核心接口模块,具体接口如下:

1. 认证模块(Auth)- api/auth_api.py

  • 登录(Login):POST /auth/login,参数:username、password

2. 商品模块(Product)- api/product_api.py

  • 获取商品列表:GET /products,支持分页(limit、skip)、排序(sortBy、order)等参数
  • 获取单个商品:GET /products/{id},参数:商品id

3. 购物车模块(Cart)- api/cart_api.py

  • 添加到购物车:POST /carts/add,参数:userId、products(列表,含id和quantity)

4. 用户模块(User)- api/user_api.py

  • 获取当前用户信息:GET /auth/me,需Authorization头(Token由TokenManager自动处理)

可根据DummyJSON的接口文档,继续扩展其他接口(如修改商品、删除购物车等)。

八、贡献指南

如果您想为该框架贡献代码,欢迎按以下步骤操作:

  1. Fork 本仓库到您的GitHub账号
  2. 创建特性分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m 'Add some amazing feature'(描述清晰修改内容)
  4. 推送到分支:git push origin feature/amazing-feature
  5. 在GitHub上提交Pull Request,描述您的修改内容和目的

九、总结

本框架基于 Python + Pytest + Requests + Allure 构建,实现了接口自动化测试的全流程,具有以下特点:

  • 分层设计:接口封装层、工具类层、用例层分离,结构清晰,可维护性高
  • 数据驱动:测试数据与代码分离,支持多环境配置,灵活切换测试场景
  • 报告美观:Allure报告详细直观,便于团队协作和问题定位
  • 易于扩展:新增接口或模块时,只需按规范添加API封装和用例,无需修改核心逻辑

该框架适合接口自动化测试初学者学习参考,也可直接用于基于DummyJSON的接口测试工作。如果使用过程中有任何问题,欢迎在评论区留言或提交Issue!

最后,求点赞、求收藏、求关注!后续会持续更新框架的扩展功能和自动化测试实战技巧~

Read more

Python 基本命令详解:入门必备指南

Python 基本命令详解:入门必备指南

Python 基本命令详解:入门必备指南 📌 引言 Python 是一种简单易学、功能强大的编程语言,广泛用于数据分析、Web 开发、人工智能、自动化脚本等领域。掌握 Python 的基本命令是入门的第一步。本篇文章将详细介绍 Python 基本语法、常用命令及示例代码,帮助你快速上手 Python 编程。 1. Python 环境安装与运行 ✅ 检查 Python 版本 在终端(Mac/Linux)或命令提示符(Windows)中输入: python --version 或 python3 --version 如果 Python 未安装,请前往 Python 官网 下载并安装。 ✅ 运行 Python 交互模式 输入

By Ne0inhk

终极指南:5步掌握Orbbec SDK Python深度摄像头开发

终极指南:5步掌握Orbbec SDK Python深度摄像头开发 【免费下载链接】pyorbbecsdkOrbbecSDK python binding 项目地址: https://gitcode.com/gh_mirrors/py/pyorbbecsdk Orbbec SDK Python绑定为开发者提供了在Python环境中控制奥比中光深度摄像头的完整解决方案。这个开源项目让您能够直接使用Python编程语言来操作Orbbec品牌的RGB-D设备,包括Astra系列、Gemini等产品线,实现数据流获取、设备配置和实时处理等功能,特别适合计算机视觉、三维建模和物体识别等应用场景。 🚀 快速入门:5分钟搭建开发环境 获取项目源码 首先从GitCode仓库克隆项目到本地: git clone https://gitcode.com/gh_mirrors/py/pyorbbecsdk.git cd pyorbbecsdk 安装系统依赖 对于Ubuntu系统,确保安装必要的开发包: sudo apt-get install python3-dev python3-

By Ne0inhk
飞算 JavaAI 深度体验:不止于 “能用“,更是 Java 开发的 “增效神器“

飞算 JavaAI 深度体验:不止于 “能用“,更是 Java 开发的 “增效神器“

飞算JavaAI深度体验:不止于"能用",更是Java开发的"增效神器" 作为一名深耕Java开发十余年的老兵,我曾对各类AI编程工具充满期待,却屡屡被"生成代码跑不通"“逻辑驴唇不对马嘴"的问题泼冷水。直到遇见飞算JavaAI,才真正体会到"AI成为开发助手而非累赘"的畅快。今天就从实战角度,带大家深入解锁这款工具的"超能力”。 一、从"卡壳到通关":一个报表功能的救赎 先分享个上周的真实经历。产品经理突然甩来需求:“明天要上线员工绩效分析模块,得按部门、时间范围做分页查询,还要统计每个部门的平均分、达标率和排名”。看着涉及5张关联表的复杂逻辑,我当时就懵了——正常开发至少要两天,这明显是"不可能完成的任务"。 想起同事推荐的飞算JavaAI,抱着试错心态输入需求:

By Ne0inhk
Python大数据毕设选题:基于Hadoop+Django肥胖风险分析与可视化系统详解 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

Python大数据毕设选题:基于Hadoop+Django肥胖风险分析与可视化系统详解 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡如果你遇到具体的技术问题或计算机毕设方面需求可以在主页上详细资料里↑↑联系我~~ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡获取源码主页–> 计算机编程指导师 ⚡⚡文末获取源码 温馨提示:文末有ZEEKLOG平台官方免费提供的博客联系方式的名片! 温馨提示:文末有ZEEKLOG平台官方免费提供的博客联系方式的名片! 温馨提示:文末有ZEEKLOG平台官方免费提供的博客联系方式的名片! 肥胖风险分析与可视化系统-简介 本系统“基于Hadoop+Django的肥胖风险分析与可视化系统”旨在构建一个完整的大数据分析与Web应用流程。系统底层采用Hadoop分布式文件系统(HDFS)作为海量肥胖相关数据的存储基石,确保数据的高容错性和高吞吐量。核心计算引擎则选用Apache

By Ne0inhk