全网最全,接口自动化测试怎么做的?精通接口自动化测试详解

article/2025/8/29 11:46:27

目录:导读

    • 一、前言
    • 二、接口自动化测试的 "能 "
      • 1、接口自动化的目标
      • 2、接口自动化 Case 用例设计原则
      • 3、接口自动化用例定时跑
    • 三、接口自动化测试的 "不能 "
      • 1、接口自动化之难点
      • 2、接口自动化之痛点

一、前言

接口通俗来讲就是前端和后段之间传输数据的桥梁,注意:不是每一个项目都有接口,一些大型项目是前后端分离的,那么他们怎么实现数据的传递和返回呢?在通俗来讲就是前端和后段都有一个模拟参数数据

二、接口自动化测试的 "能 "

1、接口自动化的目标

  • 用于项目的 API 层的 HTTP 接口的功能逻辑验证
  • 减少手工测试的工作(回归验证;跨模块的验证)
  • 实现手工验证不能做的验证(如接口涉及大量数据的排序比较)
  • 手工很难充分验证的功能逻辑(如接口的功能验证涉及大量的数据)

P.S. 实际项目中,接口自动化的根本目的是什么?
个人认为是定时跑时,能监控接口,当接口功能失常时,可以及时发现,即发现 Bug。因此,可以使用代码覆盖率来评估接口自动化的完整性,但更重要的是发现问题

2、接口自动化 Case 用例设计原则

切记:

  • 不要为了做自动化而做自动化,做的首要目标是问题出现时,能第一时间发现
  • 自动化中的代码覆盖率统计可以作为参考,但不能一开始就为了提高覆盖率,陷入 Case 设计之中

注意:好的接口自动化 Case 设计,依赖于 Case 设计者的功能理解程度(手工测试的功力)+ 功能覆盖点

原则:

1.将手工测试点转换为自动化用例
Case 设计注意:验证用例通过的标准—参考一个功能点容易出问题的地方。或者说,一个用例的通过说明此功能点一定没问题;反之,一定有问题。

2.覆盖手工测试不易检查/太浪费时间的检查
比如:

  • 一个 HTTP 接口设计大量的数据比较的时候
  • 接口的 json 返回不能直接检查功能点是否正确(需要调用另一个接口的 json 来间接验证时)
  • 一个接口的 json 返回需要和其他模块的接口联合” 互相验证 “(需要调用其他模块的接口的 json,两个 json 相互来验证彼此的正确性)

3.“边缘性” 的功能检查 这里主要指的是回归验证
如果系统涉及边缘性的功能验证,把此类功能设计层自动化用例

4.接口验证的程度
接口的验证:即判断一个接口是否正常的标准。注意:接口参数”合理地“组合

5.DB 数据更新检查
(如果有必要)注意从接口的角度检查 DB 数据的更新:

  • 其他系统的数据更新到待测系统 DB 中的数据
  • 每天待测系统由于用户操作更新到 DB 中的数据

6.接口自动化的数据准备
关于是否需要为接口自动化,特意在 DB 中准备需要的数据,适需要程度而定。原则:除非必须,否则不用准备。如果不准备数据,无法完成对接口的验证,则自己准备数据即可

注意:一旦自己准备数据,评估对其他功能验证的影响。确保 DB 中数据量和真实性(模拟的数据需要充足,并且不能和真实数据差异性过大)

3、接口自动化用例定时跑

自动化一般会选择每天定时跑。这里需要注意的一点就是定时跑的时间选择

时间选择上注意几点:
1)在线上跑时,注意对线上接口的影响(一般要求:线上的回归验证可以随时跑)

2)如果要检查 DB 数据更新的有关逻辑,注意数据的稳定性 (如用户量少的时候)

3)在测试时(非生产环境),接口涉及读,写 DB,考虑是否需要定时跑

三、接口自动化测试的 "不能 "

首先,接口自动化不是万能的,总有覆盖不到的时候。知道自动化的”不能“之处,才能更好配合手工测试出问题

自动化的 ”不能“ 之处如下:
1)HTTP 接口突然出现压力问题(前期的压测)

2)Web 层面的手动测试 (新功能上线后,对原有功能回归时,仍需要接口自动化验证接口,手工测试 Web 页面功能)

3)异常情况(如需要第三方 API 挂掉/超时的场景)

1、接口自动化之难点

1)实现变动 vs 维护的工作量 vs 检查的详细程度

检查详细程度:自己和自己比;自己和同类接口同一指标比较(因为口径不一致,或者内部实现变化,需要后续维护)

经验:自己和自己比,扩展和兼容性比较好(动态参数 + 完成功能检查);而自己和别的接口比 看需求而定(接口提测前后 数据准确性检查比较参考);

P.S. 小的点,执行时间和执行频率

用途:发现功能失常,功能不可用;

2)接口监控 —— 执行时间和执行频率

  • 检查详细程度 vs 执行时间和执行频率 (只能和自己)
  • 检查详细程度 vs 经常频繁报警(一个接口怎样算是正常的,返回非200+功能正常)

3)数据报表
数据的正确性:统计口径(业务方的口径+多个接口/模块口径的差异后导致业务方不一致)

2、接口自动化之痛点

痛点当然源自难点:

  • 当接口本身实现频繁变动、对接口的检查太过详细、开发修复缓慢时,那么不停的报警将会来了
  • 不合理的自动化设计及维护方案,造成自动化成本大于自动化收益时,接口自动化就变得无足轻重了

实际项目中的体会是:为了自动化而自动化。特别测试场景过于复杂时,当自动化实现成本远大于手工测试成本时,就没有必要非去自动化测试了

相对于UI自动化而言,接口自动化具有更大的价值

为了优化转化路径或者提升用户体验,APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果

而接口一旦研发完成,后期重构/大幅度修改的频率则比较低.因而做接口自动化性价比还是很高的,对于迭代版本旧有功能的回归,beta测试,线上回归都能起到事半功倍的作用



http://chatgpt.dhexx.cn/article/p6tNMsiC.shtml

相关文章

接口自动化测试框架搭建

一、原理及特点 参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理,使用了TestNG参数化测试,通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven 二、准备 使用工具&#xff1…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

在前篇文章: 接口自动化测试实践指导(中):接口测试场景有哪些 中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作及接口测试场景有哪些。 本篇文章是最后一篇,主要分享一下接口自动化测试断言设置思路。 如…

Apifox接口自动化测试方法

1.新建测试用例 2.输入名称、分组、优先级后点击确定 3.点击测试用例名称或者详情 4.添加步骤,两个方式都可以 5.选择要测试的接口后选择模式,复制/绑定,复制-复制一份数据,和原来的接口相互独立,互不影响&…

接口自动化测试,完整入门篇

1. 什么是接口测试 顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主…

如何搭建接口自动化测试框架?

为什么要做(自动化)接口测试? 1、由于现在各个系统的复杂度不断上升,导致传统的测试方法成本上升且测试效率大幅下降,而接口测试相对于UI测试更加稳定,且相对容易实现自动化持续集成,可以减少人…

接口自动化测试实践指导(上):接口自动化需要做哪些准备工作

作者:石臻臻, CSDN博客之星Top5、Kafka Contributor 、nacos Contributor、华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家 、 LogiKM PMC(改名KnowStream)。 LogiKM(改名KnowStreaming) 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不…

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

文章目录 一. 背景二. 基础环境三. 项目结构四、框架解析4.1 接口数据文件处理4.2 封装测试工具类4.3 测试用例代码编写4.4 测试用例运行生成报告 一. 背景 Pytest目前已经成为Python系自动化测试必学必备的一个框架,网上也有很多的文章讲述相关的知识。最近自己也…

接口自动化测试项目实战

目录 1. 什么是接口测试 2. 基本流程 2.1 示例接口 3. 需求分析 4. 用例设计 5. 脚本开发 5.1 相关lib安装 5.2 接口调用 5.3 结果校验 5.4 执行测试 5.5 发送邮件报告 6. 结果分析 7. 完整脚本 8、总结 1. 什么是接口测试 顾名思义,接口测试是对系统或…

接口自动化测试用例详解

phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调用,但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例,讲…

接口自动化测试流程

文章目录 接口自动化测试的基本流程一、需求分析二、自动化接口挑选三、设计自动化测试用例四、搭建自动化测试环境五、设计自动化执行框架六、编写代码七、执行用例八、测试报告 接口自动化测试的基本流程 1、需求分析 2、挑选需要做自动化测试的功能接口 3、设计测试用例 4、…

接口自动化测试框架

本文介绍一个接口自动化测试框架。 Pythonunittestrequests 实现结果:读取Excel接口测试用例并执行,输出测试报告。 框架脑图 如图,各个模块及作用如上。 处理数据库 db_funcs用来处理数据库,实现数据库数据的读取操作。&…

基于 python 的接口自动化测试,让你轻松掌握接口自动化

目录 目录 一、简介 ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用 一、简介 本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势; 然后简单讨论了一下接口测试框架的要点&#xff…

接口自动化测试工程化——了解接口测试

什么是接口测试 接口测试也是一种功能测试 我理解的接口测试,其实也是一种功能测试,只是平时大家说的功能测试更多代指 UI 层面的功能测试,而接口测试更偏向于服务端层面的功能测试。 接口测试的目的 测试左移,尽早介入测试&#…

接口自动化测试【完整版】

1. 什么是接口测试 顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主…

接口自动化测试

接口自动化测试 1.基础知识1.接口测试原理2.接口测试点及用例设计方法3.接口测试要点4.常见HTTP状态码5.HTTP基础知识6.接口自动化测试工具7.token 2.抓包工具1.chrom抓包2.Fiddler抓包(PC端,手机端)1.原理2.下载安装3.抓取数据信息说明&…

接口自动化测试(Python+Requests+Unittest)

(1)接口自动化测试的意义、前后端分离思想 接口自动化测试的优缺点: 优点: 测试复用性。 维护成本相对UI自动化低一些。 为什么UI自动化维护成本更高? 因为前端页面变化太快,而且UI自动化比较耗时(比如等待页面元素的…

接口自动化测试,一看就会

引言 与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小。因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中。 手工做接口测试,测试数据和参数都可以由测试人员手动填写和更新。 因此我们在考…

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)

文章目录 nn.L1Lossnn.SmoothL1Lossnn.MSELossnn.CrossEntropyLossnn.NLLLoss 损失函数,是编译一个神经网络模型必须的两个参数之一,另一个是优化器。损失函数是指用于计算标签值和预测值之间差异的函数,常见的有多种损失函数可供选择&#x…

链表L->next

2020/10/26更新 #include <iostream> using namespace std;struct MyStruct {int data 0;MyStruct* next; }; int main() {MyStruct* L;MyStruct head ,firstNode;head.data 1;firstNode.data 2;head.next &firstNode;L &head;cout << L->next-&g…

L多样化

为了解决同质性攻击和背景知识攻击所带来的隐私泄露&#xff0c;Machanavajjhala等人提出了L-多样性(l-diversity)模型。简单来说&#xff0c;就是在公开的数据中&#xff0c;每一个等价类里的敏感属性必须具有多样性&#xff0c;即L-多样性保证每一个等价类里&#xff0c;敏感…