跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python+requests+pytest 接口自动化测试框架搭建

基于 Python、requests 和 pytest 构建接口自动化测试框架,涵盖需求分析、数据准备、测试设计及结果查看四个核心步骤。框架结构包含配置文件、断言封装、日志记录、请求封装及数据库查询模块。通过 conftest.py 实现参数化,run.py 作为执行入口,支持 Jenkins 集成。使用流程涉及配置接口信息、创建用例数据、自动生成测试脚本并执行验证,确保接口功能符合预期。

利刃发布于 2026/2/5更新于 2026/9/15K 浏览
Python+requests+pytest 接口自动化测试框架搭建

框架设计思路

明确接口自动化测试实施步骤如下:

文章配图

逐步拆解需要完成的工作:

1)需求分析: 了解接口要实现的功能。

2)数据准备: 根据开发文档确定接口基本情况,知晓接口的 URL、请求方式、入参等信息,然后根据业务逻辑及入参预期接口输出。

  • 需要配置文件存储接口基本信息;
  • 需要方法读取配置文件;
  • 需要 Excel 或 YAML 格式文件存储测试数据;
  • 需要方法读取测试数据;
  • 需要方法将配置文件和测试数据组装为测试执行所需的参数化数据;
  • 若预期结果需通过数据库查询验证,则需具备 SQL 执行能力。

3)设计与执行测试: 生成测试文件,根据入参调用接口获得输出并验证。

  • 利用 pytest 特性,将参数化准备工作放在 conftest.py 下;
  • 编写调用接口及断言验证的测试文件,命名规则为 xxx_test.py 或 test_xxx.py;
  • 封装系统自带断言以优化输出与预期输出的验证;
  • 封装 requests 模块,制定统一输入输出标准;
  • 引入日志记录模块记录执行错误信息。

4)查看结果: 根据断言结果判定接口是否满足需求。

框架最终执行顺序如下图所示:

文章配图

框架基本结构

文章配图

各目录功能说明:

  1. 测试数据文件:每个文件对应一个接口所需测试数据,命名规则为 nameA.xlsx 或 nameA.yaml(nameA 泛指待测接口名称)。文件内存放调用接口所需参数 name、value、所需 cookie、预期输出结果。

文章配图

  1. 核心脚本文件:
  • assertion.py:封装断言方法,验证接口返回值与预期结果一致性;
  • config.py:封装读取配置文件的方法;
  • get_caseparams.py:将测试数据加工成接口所需格式;
  • log.py:封装日志记录方法;
  • request.py:封装 HTTPS 请求方法,主要支持 POST 和 GET;
  • selectDB.py:查询 SQL 并将结果加工为列表格式,每条数据为一个字典;
  • testcasetemplate.py:根据 caseparams 文件夹下的测试数据自动在 testcase 文件夹下生成测试文件的脚本。

文章配图

  1. 配置文件:存放两个配置文件,base.ini 用于数据库连接配置,interface.ini 存储所有测试接口所需配置。

文章配图

  1. 日志文件:记录测试日志,log.log 为当天文件,其他为历史日期日志。

文章配图

  1. 参数化与测试文件:conftest.py 为固定名称文件,放置于被测接口脚本同目录下,为每个被测脚本提供参数化支持。test_XXX.py 为接口测试文件,XXX 为被测接口名称。

文章配图

  1. 执行入口:run.py 为测试执行主入口。若将框架部署至 Jenkins 进行持续集成,可通过配置 Jenkins 替代此入口。

使用说明

当需要使用本框架对接口(假定名称为 abc)进行自动化测试时,操作步骤如下:

  1. 在 interface.ini 文件下添加名称为 abc 的节点,配置好接口的参数文件格式、HTTP 请求方式、接口 URL、接口 Wiki。
  2. 在 caseparams 文件夹下创建名称为 abc.xlsx 的用例数据文件。
  3. 执行 common 文件夹下的 testcasetemplate.py,脚本会自动根据前两步配置内容在 casefile 文件夹下生成 test_abc.py 脚本文件。
  4. 编辑 test_abc.py 添加所需断言,验证接口准确性。
  5. 执行 run.py 完成测试。

测试执行详情:run.py 指定要执行测试的文件路径(testcase 目录)。根据 pytest 运行机制,会先调用 testcase 目录下的 conftest.py。该文件遍历 testcase 目录下以 test_ 开头的测试文件,调用 config.py 读取配置文件、get_caseparams.py 读取并组装参数,将测试用例数据参数化传递给测试文件。测试文件执行时将参数拆分,调用 request.py 发送 HTTP 请求,获取 JSON 格式返回结果,并通过以下方式验证:

  1. 若根据产品业务逻辑已知入参可得出预期结果,可直接将预期结果放入 Excel 或 YAML 测试数据文件中,执行时一并传递,直接取出来与接口输出验证。
  2. 需查库验证的情况,将接口入参作为 SQL 条件写好 SQL,调用 selectDB.py 得到查询结果,再拿 SQL 返回结果与接口输出验证。
  3. 复杂场景可根据接口入参及业务逻辑自行编写脚本获取预期结果,然后与接口输出验证。

目录

  1. 框架设计思路
  2. 框架基本结构
  3. 使用说明

更多推荐文章

查看全部
  • 主流 AI 编程助手对比:Claude、Cursor、Aider 与 Copilot 怎么选
  • FastGPT 集成 MCP 协议构建工具增强型智能体
  • 2026 年 3 月 18 日 AI 技术动态汇总
  • Spring 整合 Apollo 配置中心
  • Whisper 模型版本及下载链接
  • MCP 协议详解:与 Function Call 的区别及使用思路
  • Copilot 与 Codeium 核心技术解析:AI 代码助手原理与实践
  • ClawX:OpenClaw 可视化桌面客户端入门指南
  • 基于微信小程序的菜谱查询点评系统设计与开发
  • Java 注解与反射:自定义注解定义及应用
  • ESP32 基于 IDF v5.3.1 实现一键 WEB 配网
  • OpenClaw 完整安装与配置:Minimax/DeepSeek 模型及飞书机器人接入
  • 基于 Comsol 的 Ar 棒板粗通道流注放电仿真分析
  • Java ArrayList 底层方法自我实现
  • Python 循环语句与推导式:从语法到 CPython 字节码实现
  • OpenClaw 网络搜索与抓取工具最佳实践
  • TRAE 规则配置实战:6A 工作流与 5S 敏捷开发指南
  • C++ 反向迭代器:原理、实现与避坑
  • PostgreSQL 动态分区裁剪技术:查询性能优化实战
  • EhViewer:开源免费安卓 E-Hentai 漫画浏览器安装与使用教程

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online