news 2026/5/13 11:44:42

五分钟学会接口自动化测试框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
五分钟学会接口自动化测试框架

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快

今天,我们来聊聊接口自动化测试。

接口自动化测试是什么?如何开始?接口自动化测试框架如何搭建?

自动化测试

自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展的趋势。

特别是在敏捷模式下,产品迭代速度快,市场不断调整,客户需求不断变化,单纯的手工测试越来越无法适应整个变化过程(迭代快,加班多)。测试人员如何快速响应并保证产品在上线后的质量能够满足市场要求(如何在上线一个新功能的同时快速对旧功能快速进行回归,保证旧功能不被新功能影响而出现严重的 Bug?)。

针对以上问题,采用自动化测试无疑是一个不错的选择,能够做到在保证产品质量的同时提升测试效率

随着行业内卷越来越严重,对于测试岗位的要求也是水涨船高,岗位招聘要求都会出现自动化测试的字眼,因此也是我们跳槽面试、升职加薪必备利器。

自动化测试又可分为接口自动化、Web UI 自动化、App 自动化,今天我们就来聊聊接口自动化测试。

接口自动化测试的价值

  1. 相比于 UI 自动化测试,接口自动化的维护成本更低,主要体现在以下几个方面
    • 分层测试金字塔模型中,接口测试属于第二层服务集成测试,与 UI 自动化测试相比,接口自动化测试收益更大、更容易实现、维护成本更低,有更高的投入产出比,因此是公司开展自动化测试的首选。
    • 前端页面变化快,而且 UI 自动化比较耗时,比如等待页面元素加载、添加等待时间、定位元素、操作元素、模拟页面动作这些都需要时间,因此 UI 自动化实施起来比较困难。
    • 接口较稳定,接口的响应时间基本上都是秒级、毫秒级别,速度快,并且接口自动化本身也可以做一些有关联的操作、全流程的操作,比如:注册 --> 登录 --> 修改个人信息。
  2. 测试复用性
  3. 快速回归(提高回归的覆盖率、效率、稳定性)
  4. 可以运行更多更繁琐的测试,自动化的一个明显的好处是可以在较少的时间内运行更多的测试

接口自动化测试如何开展

工具选择

  • Python/Java + Requests + Unittest/Pytest + HTMLTestRunner/Allure
  • RobotFramework:关键词驱动的自动测试框架
  • 基于 Web 的自动化测试平台(公司自主研发,成本较高,方便不懂编程也能使用)

自动化测试工具有很多,每种工具都有各自的优缺点,选择适合自身实际情况的框架,落地实施才是重点,具体选择哪种工具放在其他文章再探讨。

这里使用 Python + Requests + Pytest + Allure

举个栗子

接口文档(找了一个开放的接口用于测试)

接口信息:

YAML

1 2 3 4 5 6 7
名称: 全国高校信息查询接口 描述: 用于查询全国高校信息 Host: www.iamwawa.cn Request URL: /home/daxue/ajax Request Method: POST Content-Type: application/x-www-form-urlencoded headers: user-agent:Chrome

参数:

名称类型是否必填描述
typeStringname,根据名称查询
keywordString高校名称,如:四川轻化工大学

请求示例:

CODE

1 2 3 4 5 6 7 8
POST /home/daxue/ajax HTTP/1.1 Host: www.iamwawa.cn user-agent: Chrome Content-Type: application/x-www-form-urlencoded Cookie: PHPSESSID=sjsrn0drje6ds5fq9kouoo2r23 Content-Length: 54 type=name&keyword=四川轻化工大学

响应示例:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "status": 1, "info": "查询成功!", "data": [ { "id": "2181", "name": "四川轻化工大学", "code": "4151010622", "department": "四川省", "city": "自贡市", "level": "本科", "remark": "" } ] }

线性脚本

PYTHON

1 2 3 4 5 6 7 8 9
import requests res = requests.post(url="https://www.iamwawa.cn/home/daxue/ajax", headers={"user-agent": "Chrome"}, data={"type": "name", "keyword": "四川轻化工大学"}) assert res.status_code == 200 res_json = res.json() print(res_json) assert res_json["status"] == 1

使用以上代码,最基础最简单的接口测试就做起来了,好的开始就是成功的一半。

但是,问题也随之而来,线性脚本的缺点也暴露出来了:

  1. 测试的输入和断言都是捆绑在脚本中,易读性差
  2. 无共享或重用脚本,可复用性低
  3. 线性脚本修改代价大,维护成本高,不便于后期优化
  4. 容易受软件变化的影响,容易受意外事件的影响,引起整个测试失败

所以,下一步就是如何优化线性脚本,也就是如何实现代码的高内聚低耦合,也是接口自动化测试框架要解决的问题。

接口自动化测试框架

开源代码请点击文末小卡片领取

  • base_api.py:对 Requests 库进行二次封装,完成对 api 的驱动

  • api:继承 base_api,将 http 请求接口封装成 Python 方法

  • utils:CommonUtil,公共模块,将一些公共函数、方法以及通用操作进行封装,如:日志模块、yaml 操作模块、时间模块

  • config:配置文件模块,配置信息存放,如:URL、Port、Headers、Token、数据库信息等

  • data:测试数据模块,用于测试数据的管理,数据与脚本分离,降低维护成本,提高可移植性,如:yml 文件数据

  • cases:测试用例模块,用于测试用例的管理,这里会用到单元测试框架,如:Pytest、Unittest

  • run.py:批量执行测试用例的主程序,根据不同需求不同场景进行组装,遵循框架的灵活性和扩展性

  • logs:日志模块,用于记录和管理日志,针对不同情况,设置不同的日志级别,方便定位问题

  • reports:测试报告模块,用于测试报告的生成和管理,如:基于 Allure 生成的定制化报告

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 18:29:22

扫描线|离散化|线段树+二分

lc扫描线模板&#xff08;矩形面积并&#xff09;线段树二分#include <bits/stdc.h> using namespace std;typedef long long ll; const int N 2010;// 边的事件结构体&#xff1a;存储扫描线的入边/出边信息 struct Edge {ll x, y1, y2;int k; // 入边k1&#xff08;覆…

作者头像 李华
网站建设 2026/5/5 21:29:30

MLOps中的测试策略:持续验证模型——构建稳健的AI质量防线

一、范式迁移&#xff1a;从代码测试到模型验证的革命 graph LR A[传统软件测试] --> B[静态代码分析] A --> C[单元/集成测试] A --> D[性能压测] E[ML模型验证] --> F[数据质量监控] E --> G[特征漂移检测] E --> H[预测一致性验证] E --> I[业务指标映…

作者头像 李华
网站建设 2026/5/1 15:29:01

联邦学习系统测试:隐私与性能平衡

1. 联邦学习系统概述与测试必要性 联邦学习&#xff08;Federated Learning, FL&#xff09;是一种分布式机器学习范式&#xff0c;其核心在于数据不出本地设备&#xff0c;仅通过模型参数聚合实现协同训练&#xff0c;从而保护用户隐私。这一特性使其在医疗、金融等敏感领域广…

作者头像 李华
网站建设 2026/5/13 10:04:12

手把手实现Lung-DETR:从理论到代码,逐模块解析DETR在稀疏肺结节检测中的创新实战

文章目录 Lung-DETR:变形检测Transformer在稀疏肺结节异常检测中的创新实践——从框架解析到端到端实现的深度指南 第一章:数据基石——从LUNA16 CT扫描到可训练管道的精炼 第二章:模型铸魂——从DETR基线到Lung-DETR的变形升级 第三章:验证落地——从mAP曲线到临床部署的桥…

作者头像 李华
网站建设 2026/5/8 5:57:13

RT-Thread启动流程

系统上电 ↓ 复位中断向量 → Reset_Handler (汇编启动文件) ↓ SystemInit (初始化时钟、内存等) ↓ main() → entry() [GCC] ↓ rtthread_startup() [components.c] ↓ ├─→ rt_hw_interrupt_disable() // 关中断 ├─→ rt_hw_board_init() // 板级…

作者头像 李华
网站建设 2026/5/11 19:06:31

别再对Mamba论文一头雾水了!这篇破局指南手把手带你从理论到实战,彻底跑通第一个Demo

文章目录 从0玩转Mamba神经网络:理论+实战的保姆级教程 一、Mamba:序列任务的“效率新贵” 二、核心原理:Mamba的“制胜逻辑” 1. 状态空间模型(SSM)的魔力 2. Mamba vs Transformer:核心差异 三、实战入门:搭建简易Mamba模型 1. 环境搭建 2. 代码实现:Mamba文本分类器…

作者头像 李华