接口测试 —— 接口测试的意义

1、接口测试的意义(优势)

(1)更早的发现问题:

不少的测试资料中强调,测试应该更早的介入到项目开发中,因为越早的发现bug,修复的成本越低。

然而功能测试必须要等到系统提供可测试的界面才能对系统进行测试。

而接口测试可以在功能界面开发出来之前对系统进行测试。

系统接口是上层功能的基础,接口测试可以更早更低成本的发现和解决问题。

然而,在实际的开发过程中,开发人员并没有充足的时间去编写单元测试,并且他们往往对自己编写的代码有足够的信心,不愿意将“浪费”时间在编写单元测试上面。

这个时候接口测试的作用就会变得更加重要。

(2)缩短产品研发周期:

对于产品研发周期来说,如果将所有测试工作都集中在功能测试阶段,那么测试的问题和修复周期就会变长。

因为测试可以更早的介入产品开发中,所以可以有效的控制功能测试阶段bug的数量,从而有效的缩短产品开发周期。

(3)发现更底层的问题:

系统的有些底层逻辑是在UI功能测试中不太容易触发的,那么这些逻辑可能会存在问题。接口测试可以更容易更全面的测试到这些底层的逻辑。

(4)检查服务器的异常处理能力:

我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面进行测试,就很难发现一些安全的问题。

而不以功能为入口的接口测试就会很容易的验证这些异常情况。

  1. 比如订单接口是不允许重复提交的。

  2. 有些接口还要考虑性能问题。

  3. 比如购物车里有多个商品,全部勾选后去支付, 会判断商品库存,这时候能提交成功吗,处理逻辑又是什么?

  4. 安全性测试:

    服务端提供API, 接口调用方在客户端,之间的通讯暴露在公网上,如果有不善意的用户抓包获取了支付接口,用1元价格购买到了100元商品,这是非常危险的,这就是安全性测试的一个方面。

    SQL注入等也属于这类。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

2、UI测试与接口测试对比

(1)UI测试特点:

一般互联网公司,最大的特点就是快,产品需要不停的迭代,迭代时间基本在15天左右。

UI自动化测试的优点是,能够实际模拟真实用户的行为,直接验证软件的商业价值,缺点是用例的维护和执行代价很大。

另外,UI自动化测试的稳定性问题,是长期以来阻碍UI测试发展的重要原因。

在快速迭代的情况下(如不停的更新活动界面),页面的改动可能会很频繁,而UI自动化测试本身基于页面元素,前端小小的改动可能需要测试的非常大的改动。

所以总结如下:

  1. web应用和APP迭代速度非常快。

  2. 页面更新频繁。

  3. 测试成本高于效益。

  4. 可交付于第三方进行测试(云测、众测)。

(2)接口测试特点:

针对服务端后台测试,接口规则一旦确定,后期的变化非常的小。

相对于变化频繁的UI来说,接口测试的性价比更高。

这就成为了企业内重点测试的对象,我们都知道服务端中保存着用户数据、业务数据、交易数据等。倘若任何一个接口实现有问题,都会影响所有用户。

正是由于服务端数据和业务逻辑关系着企业的命脉,所以极少会有企业把接口交于第三方测试。

作为测试人员,我们需要验证的是接口间数据传递的正确性和完整性。

END点赞关注不迷路! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端uniapp列表下拉到底部加载下一页列表【下拉加载页面/带源码/实战】

目录 一. 图片1.2. 二.list.vue三.uni-load-more.vue最后 一. 图片 1. 2. 二.list.vue <template><view><!--列表--><scroll-view scroll-y"true" class"scroll-Y" :style"height: scrollviewHigh px;" lower-threshol…

股票价格预测 | Python实现基于CNN卷积神经网络的股票预测模型(keras,Conv1D)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 股票价格预测 | Python实现基于CNN卷积神经网络的股票预测模型(keras) 源码设计 import quandl import datetimedf = quandl

Jenkins自动化部署一个Maven项目

Jenkins自动化部署 提示&#xff1a;本教程基于CentOS Linux 7系统下进行 Jenkins的安装 1. 下载安装jdk11 官网下载地址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/jdk11-archive-downloads.html 本文档教程选择的是jdk-11.0.20_linux-x64_bin.tar.g…

如何优化谷歌商店里应用的评分评论2

在做应用评分优化前&#xff0c;我们需要考虑用户以及他们如何在不浪费太多时间的情况下分享反馈。 1、及时妥善的回复评论。 许多潜在用户在决定下载应用之前都会查看评论。回复正面和负面评论&#xff0c;向用户表明我们重视他们的反馈。回复用户评论是一个改善应用公众形象…

AODNet

【20231117】读研期间没有对阅读的文章进行总结&#xff0c;没想到毕业反而有了机会。即日起会对阅读过的文章要点进行梳理记录&#xff0c;希望这一习惯能够坚持下去。 学术的角度&#xff1a;看论文要学习作者如何逻辑严谨的自证 落地的角度&#xff1a;只用看以下六点&#…

一个美观且功能丰富的 .NET 控制台应用程序开源库

推荐一个美观且功能丰富的 .NET 控制台应用程序开源库&#xff0c;从此告别黑漆漆的界面。 01 项目简介 Spectre.Console 是一个开源的 .NET 库&#xff0c;用于创建美观、功能丰富的控制台&#xff08;命令行&#xff09;应用程序。它提供了一组易于使用的 API&#xff0c;…

cocos----刚体

刚体&#xff08;Rigidbody&#xff09; 刚体&#xff08;Rigidbody&#xff09;是运动学&#xff08;Kinematic&#xff09;中的一个概念&#xff0c;指在运动中和受力作用后&#xff0c;形状和大小不变&#xff0c;而且内部各点的相对位置不变的物体。在 Unity3D 中&#xff…

C#WPF用户控件及自定义控件实例

本文演示C#WPF自定义控件实例 用户控件(UserControl)和自定义控件(CustomControl)都是对UI控件的一种封装方式,目的都是实现封装后控件的重用。 只不过各自封装的实现方式和使用的场景上存在差异。 1 基于UserControl 创建 创建控件最简单一个方法就是基于UserControl …

无线物理层安全大作业

这个标题很帅 Beamforming Optimization for Physical Layer Security in MISO Wireless NetworksProblem Stateme![在这里插入图片描述](https://img-blog.csdnimg.cn/58ebb0df787c4e23b0c7be4189ebc322.png) Beamforming Optimization for Physical Layer Security in MISO W…

DOA估计算法——Capon算法

1.波速形成基本思想 在理解Capon算法之前&#xff0c;我们有必要先了解波束形成的基本思想以及原理到底是什么。这有助于我们更好的理解Capon算法的思想。 图 1 如图1展示了均匀阵列波束导向的示意图。图中wm表示加权值&#xff0c;波速形成(DBF)的基本思想就是将各阵元输出进…

[ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧

文章目录 一、Amazon CodeWhisperer 简介1.1 CodeWhisperer 是什么1.2 Amazon CodeWhisperer 是如何工作的 二、Amazon CodeWhisperer 的优势和功能2.1 Amazon CodeWhisperer 的优势2.2 Amazon CodeWhisperer 的代码功能 三、Amazon CodeWhisperer 安装3.1 安装到 IntelliJ IDE…

Android——Gradle插件项目根目录settings.gradle和build.gradle

一、settings.gradle结构分析 项目根目录下的settings.gradle配置文件示例&#xff1a; pluginManagement {/*** The pluginManagement.repositories block configures the* repositories Gradle uses to search or download the Gradle plugins and* their transitive depen…