接口测试要测试什么?

news2025/1/19 14:30:01

第一部分:

首先,在做接口测试的过程中,经常有后端开发会问:

  1. 后端接口都测试什么?怎么测的?
  2. 后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

      于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。

然后,我们试着回答上面的问题:

问题1.1、后端接口都测试什么?

  --回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

问题1.2、我们怎么做接口测试?

  --由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、Java+httpclient等。

问题2、后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

  --回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

   从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:

1、基本功能测试:

  由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块。

2、边界分析测试:

  在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限。

 3、性能测试:

  这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。

综论:

      1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。

  2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证

  

第二部分:

1、什么是接口测试?

      接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

2、为什么要做接口测试?我个人认为有三个原因:

   1)、尽早暴露出接口问题,减少返工工作量 
   2)、自动化接口测试,减少冒烟、回归测试的重复工作

   3)、接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

3、接口测试持续集成:

      对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

  a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

  b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

  c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

  d) 结果校验:加强自动化校验能力,如数据库信息校验。

  e) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

4、接口测试质量评估标准:

  a) 业务功能覆盖是否完整

  b) 业务规则覆盖是否完整

  c) 参数验证是否达到要求(边界、业务规则)

  d) 接口异常场景覆盖是否完整

  e) 接口覆盖率是否达到要求

  f) 性能指标是否满足要求

  g) 安全指标是否满足要求

备注:

问题一:目前有开源的postman、apipost、Yapi、Jmeter等接口测试工具,为什么还要开发接口测试框架呢?

答:对于测试一般接口来说 工具是够用,但工具也有存在几点不足:

1.测试数据不可控制:比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。

2.依赖性的。比如定时任务、其他服务依赖、脚本依赖 (工具无法直接操作其他依赖服务)

3.无法测试加密接口。实际项目中,多数接口不是可以随便调用,一般情况无法摸拟和生成加密算法。如时间戳和MDB加密算法,一般接口工具无法摸拟。

4.扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,又想让接口测试集成到CI中,做持续集成定时任务、接通测试平台、接通飞书、公司内部定制化等。

问题二:接口测试流程

测试计划->需求分析 -> 用例设计 -> 框架设计及脚本开发 -> 测试执行 -> 结果分析->持续集成

流程分成以下八步:

第一步:确定测试范围,测试排期、人员安排

第二步:分析出测试需求,并请开发提供接口说明文档;

第三步:设计测试用例,里面要包括详细的入参(正常情况,异常情况包括输入参数个数,类型,可选/必选,特殊字符、考虑参数有互斥或关联的情况) 和出参数据(符合接口文档需求);

第四步:与开发一起对接口测试用例进行评审;

第五步:开始执行接口自动化测试用例;

第六步:BUG管理及追踪

第七步:测试报告总结;

第八步:完成后进行自动化持续集成;

问题三:接口测试注意点

1. 明确接口定义:了解接口的功能、输入输出参数、数据格式等,确保测试的准确性。

2. 测试边界条件:覆盖正常和异常情况,包括最大值、最小值、空值等。

3. 测试正常流程:确保接口在正常情况下的运行情况。

4. 测试异常情况:模拟错误输入、错误参数等,检查接口的错误处理能力。

5. 测试参数组合:尝试不同的参数组合,以发现潜在的问题。

 问题三:接口测试烦人的事情

1.接口文档不清晰:接口不全、字段解释不全、必填字段标注不全、没有示例、响应示例等

2.开发更新了接口、没有及时更新接口文档,导致测试理解不一致

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年5个自动化EDA库推荐

EDA或探索性数据分析是一项耗时的工作,但是由于EDA是不可避免的,所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形,而是获得对数据集的理解,并获得对变量之间的分布和相关…

Apache Kafka CVE-2023-25194(metasploit版)

Step1:用docker搭建环境 Step2:docker查看映射端口 Step3:访问特定端口,然后靶标应用。 Step4:用metasploit进行攻击: 首先,打开metasploit,然后查询需要攻击的板块&#xff0…

对Spring源码的学习:一

目录 BeanFactory开发流程 ApplicationContext BeanFactory与ApplicationContext对比 基于XML方式的Bean的配置 自动装配 BeanFactory开发流程 这里的第三方指的是Spring提供的BeanFactory,Spring启动时会初始化BeanFactory,然后读取配置清单&#…

元宇宙:重塑游戏行业体验下一个前沿

游戏行业在其整个历史中经历了显著的转变,从超级马里奥的像素化冒险发展到Red Dead Redemption等游戏中迷人的开放世界体验。随着时间的推移,游戏不断突破数字领域所能达到的极限。然而,被称为元宇宙的突破性演变将彻底改变游戏行业&#xff…

【复杂gRPC之Java调用go】

1 注意点 一般上来说如果java调用java的话,我们可以使用springcloud来做,而面对这种跨语言的情况下,gRPC就展现出了他的优势。 代码放在这了,请结合前面的go服务器端一起使用 https://gitee.com/guo-zonghao/java-client-grpc /…

2-4、DEBUG和源程序区别

语雀原文链接 文章目录 1、DEBUG 和 汇编编译器MASM区别1:默认进制不同区别2:[地址]示例1:debug示例2:[0]示例3:[寄存器]示例4:ds:[0]小结 区别3:源程序数据不能以字母开头 1、DEBUG 和 汇编编…

labelme等标注工具/数据增强工具输出JSON文件格式检查脚本

标注的文件太多了,还有用数据增强工具生成了一票的新数据。在转换或使用训练时候会报错,错误原因是json中语法有问题,这样会中断程序运行,调试造成很大困扰。 检查确实最后有问题,多写了一次 写一个脚本,用…

机器学习应用 | 使用 MATLAB 进行异常检测(下)

在使用MATLAB 进行异常检测(上)中,我们探讨了什么是异常值,简单的一维数据异常检测问题,针对高维数据的有监督异常检测方法。 在(下)篇中,我们将和大家一起探讨无监督异常检测。 没…

Unity 状态系统

状态系统 原理食用方法Demo 原理 #mermaid-svg-lUbxJ8eMP3KqrEhY {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lUbxJ8eMP3KqrEhY .error-icon{fill:#552222;}#mermaid-svg-lUbxJ8eMP3KqrEhY .error-text{fill:#55…

算法通关村第十八关-青铜挑战回溯是怎么回事

大家好我是苏麟 , 今天聊聊回溯是怎么个事 . 回溯是最重要的算法思想之一,主要解决一些暴力枚举也搞不定的问题,例如组合、分割、子集、排列,棋盘等。从性能角度来看回溯算法的效率并不高,但对于这些暴力都搞不定的算法能出结果就…

快速排序的非递归实现

上期我们实现了快速排序的递归实现,但是我们知道如果递归深度太深,栈就会溢出,所以我们本期将为大家讲述快速排序的非递归实现,我们需要用到栈的数据结构,我们知道栈中的数据全是在堆区开辟的空间,堆的空间…

【EXCEL】offset函数

语法: offset(reference,row,column,[height],[width]) 例子:

【日常总结】mybatis-plus WHERE BINARY 中文查不出来

目录 一、场景 二、问题 三、原因 四、解决方案 五、拓展(全表全字段修改字符集一键更改) 准备工作:做好整个库备份 1. 全表一键修改 Stage 1:运行如下查询 Stage 2:复制sql语句 Stage 3:执行即可…

Volumetric Lights 2 HDRP

高清晰度渲染管道,包括先进的新功能,如半透明阴影图和直接灯光投射加上许多改进。 插件是一个快速,灵活和伟大的前瞻性光散射解决方案的高清晰度渲染管道。只需点击几下,即可改善场景中的照明视觉效果。 兼容: 点光源 聚光灯 碟形灯 矩形灯 通过覆盖摄像机周围大面积区域的…

05 JQuery基础入门

文章目录 一、jQuery介绍1. 简介2. 版本介绍3. 相关网站4. HTML引入方式 二、基础语法1. 顶级对象$2. 与DOM对象转化3. 选择器4. 事件5. 动画6. 修改样式7. 修改属性 一、jQuery介绍 1. 简介 jQuery是JavaScript编程语言底层库,它是一个快速,简洁的Jav…

JavaScript <关于逆向RSA非对称加密算法的案例(附原代码)>--案例(五)

前言: 趁热打铁,标记一下RSA的算法逆向...第二篇会有详解(本篇重在过程) 正文: 废话不说,直接分析步骤图: 到了这里,可以看到在登录的时候,需要验证码(本篇不教反验证码) 下面是正题--->逆他的pwd(密码) 总结: 问题:怎么确定一个密文数据是基于什么算法做出来的呢? 答:…

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时,任意一只眼睛水平方向上的两个特征点构成水平距离,上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时,垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…

Abaqus基础教程--胶合失效仿真

胶合是电子行业中常见的连接方式,abaqus中常用cohesive单元或者cohesive接触两种方法进行胶合失效仿真,这两种方式操作方法有所差别,但结果一般大同小异。 本例模型比较简单,建模过程从略,使用静态分析,使…

python基于ModBusTCP服务端的业务实现特定的client

python实现ModBusTCP协议的client是一件简单的事情,只要通过pymodbus、pyModbusTCP等模块都可以实现,本文采用pymodbus。但要基于ModBusTCP服务端的业务实现特定的client,那得看看服务端是否复杂。前面系列文章,我们学习了对服务端…

【vtkWidgetRepresentation】第五期 vtkLineRepresentation

很高兴在雪易的CSDN遇见你 内容同步更新在公众号“VTK忠粉” 【vtkWidgetRepresentation】第五期 一条直线的交互 前言 本文分享vtkLineRepresentation,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享&#xf…