软件接口测试是什么?怎么测?

软件测试是一条超级长的跑道,最好分阶段来跑:先入行,后精通。网上能看到很多软件测试的帖子,但能够准确分类详细介绍的并不多。正好最近有时间,就把我所了解的软件测试做一个小小总结,对你有帮助的话,记得点赞、收藏、关注偶~

一、软件测试分类

在招聘网站上能够看到很多软件测试的岗位,但大部分岗位的名称都是非常笼统的软件测试,到底是做功能测试的,还是做接口测试的,还是做性能测试的,并不十分明晰。有些招聘明明在岗位描述里写的是功能手工测试,面试的时候希望用7k的工资招聘一个资深测试开发人员,逗儿呢?

不吐槽了,先做一点介绍吧。软件测试想必不用我做介绍了,就是通过一系列的手段和方法,通过或手工或工具来测试软件里的错误(bug),要有“鸡蛋里挑骨头”的勇气和细心。当然不能乱挑刺。

根据测试阶段,可以将软件测试分为单元测试(UT)、集成测试(IT)、系统测试(SY)、验收测试(UAT,又可以分为alpha、beta、gamma测试)等。这种分类方法必须知道并且其中涉及的点是需要记忆的。

根据是否自动化,可以将软件测试分为人工测试和自动化测试。像我们在招聘网站里看到的自动化测试就是这里的概念,通俗来说,就是用机器来代替人工进行测试,以提升效率。现在测试入行的门槛是在逐步抬高的,基本是家公司,不管招人来是干什么的,都希望候选人会自动化测试。

根据是否要运行程序,可以将软件测试可以分为静态测试和动态测试。静态测试其实主要就是看一看文档呀、页面呀之类的,很重要,但是我们主要做的还是动态测试。

根据是否要对代码进行测试,可以将软件测试分为白盒测试和黑盒测试。直接对源代码进行测试是为白盒测试,这块一般是直接由开发人员来测试的。不对源代码进行测试是为黑盒测试,又可以分为很多种类。对于测试人员来说,大部分进行的都是黑盒测试。

接口测试是介于黑盒与白盒测试之中的一种测试,我们理解为是灰盒测试。因为接口要比手工测试(如点点点)更提前介入,更早地发现程序中可能存在的bug,从而补救成本比较低,所以很受重视。而且就点点点的功能测试来说,现在很多公司选择外包,这也造就了很多外包测试公司。而接口测试因为涉及到公司的核心业务逻辑和数据,很少有公司愿意把接口外包。

看到这里是不是感觉仍旧十分的迷惑,接口测试到底是干什么的呢?通俗点来说,接口测试和功能测试没有什么太大的区别。只不过功能测试一般是要等程序上线以后,才能够用手来点点点测试的。而接口测试也是测试软件的功能,只不过是在没有UI界面、在程序没有上线之前就可以测试的。

图片来源:pixabay

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

二、接口测试是什么?

1、接口是什么?接口是从哪里来的?

在介绍接口测试是什么之前,让我们先思考一个问题:什么是接口呢?举个现实点的例子来说,USB和电脑连接的接口就是一个接口;人与人之间交流的语言也是一个接口。接口的目的是为了方便人与人之间的协同,以提高工作效率的一套标准与规范。就软件测试来说,接口就是一套前端和后端在开发过程中都需要遵循的用以数据传输的规范与标准。

明确了标准,就可以将软件开发的业务划分成若干个部分,然后交由不同的专业人士去开发了。前端的归前端,后端的归后端。在提升效率的同时,也方便了以后的迭代升级和人员流动等场景需求。

好,那也就是说,所谓接口就是一套规范吗?是的。其实有一个专业的名词:API文档。这个词应该不算是太陌生吧,不管是不是搞软件的,基本都听说过它。这份文档其实就是软件开发过程中的一套标准,它里面规定了软件的功能,以及每个功能的标准。当然,API文档是由人来书写的,它也不一定就是完美无缺的。

一般来说,API文档是由公司里非常有经验的架构师大佬来编写的,编写的格式没有通用的标准。不过有一种流行的风格,那就是restful风格。restful风格是一种软件架构设计风格,但是并不是一套标准。所以如果你的公司所用的不是这种风格,也不必惊奇。

这种风格最大的好处就是流行,便于协同,其实也不是什么很厉害的东西,就是约定了一些方法、数据格式、状态码等。非常的简单。

2、接口清单

有了API文档有什么作用呢?------>找接口!前面说了,API文档就是软件开发的规范和标准,它里面包括了功能以及功能实现的标准。那么作为测试人员,就需要有能力从API文档中将接口提炼出来,形成接口清单。

提炼的方法其实也比较简单,这里还是以restful风格的API文档来举例吧。根据软件功能模块,可以分为N个层次,每个层次里又包括了若干个功能(接口),就可以提炼出N个层次、M个独立的接口了。

可是这样的接口是比较乱的,我们再根据restful风格中约定的get、post、put、delete四种方法进行分类,就可以在N个层次下将M个独立的接口归位四类。于是,一套脱胎于API文档的接口清单就形成了。

可是,可是,我怎么知道它是一个接口呢?这就要提到接口的三要素了:url+方法+参数+返回值。在API文档中,能够找到这么一套东西的,就是一个接口。

3、接口测试是什么

接口测试就是根据接口清单,模拟客户端向服务端发送请求数据,并获取响应数据后,查看响应数据是否符合预期的过程。

整个过程可以分为三个步骤:

第一步:模拟客户端向服务端发送请求;

第二步:接受服务端返回的数据;

第三步:查看返回数据是否符合预期。

必须要明确的一点是,接口测试的依据是接口清单,接口清单的依据是API文档,API文档的依据的项目需求文档和原型图。有了接口清单后,针对于每一个接口依次执行上述三个步骤的过程就是接口测试。

那么是怎么执行的呢?因为接口测试是在程序开发过程中进行的,是没有完整的程序的,所以测试是需要用到工具的。不仅模拟客户端向服务端发送请求是需要工具的,从服务端接受数据也是需要工具的,而且有时候验证返回数据是否符合预期也是需要用到工具的。

这就不得不提到在接口测试中常用的如fiddler之类的抓包工具、postman、Jmeter等工具了。如果再涉及到接口自动化测试的话,还需要学习python、pytest、java等有关内容,这里先不介绍。对于小白来说,能够先入门是最重要的。

4、接口测试的分类有哪些?

虽然接口测试已经是一个比较小的分类了,但是它仍旧是可以细分的。一般来说,可以分为两种:

web接口测试------>指基于BS架构的软件测试

模块接口测试------>指基于CS架构的软件测试

在做接口测试的过程中,主要做的是web接口测试,即基于BS架构开发的软件。至于说BS和CS架构是什么,这里就不介绍了,百度一下就可以找到很多答案了。

上面的分类方法我们知道即可,在工作中最常用的两种接口测试,实际上是:单接口测试关联接口测试(多接口测试)。

顾名思义,单接口测试就是针对于接口清单里的某一个接口来进行测试,主要针对的是某一个点,而关联接口测试(多接口测试)则是指针对于接口清单里的某几个接口进行测试,主要针对的是某一业务逻辑。

测试的点不同,所需要学习了解的点就不同。单接口测试的目的是为了测试某个接口是不是完美地实现了需求,那么就需要测试到各种可能出现的情况,所以是对某一个接口进行大量同类用例的设计,这就是常说的数据驱动测试。

关联接口测试的目的是为了测试某一业务逻辑是不是能正常实现的,所以基本上是建立在单个功能接口正常的前提下的,即一般不会填入逆向数据。在这个过程中,难点在于不同接口之间的数据传递。

以上这两个点是接口测试执行过程的重点,也是在学习使用postman和jmeter工具过程中的重点。我们以后再来介绍。

三、软件接口测试怎么测?

前面铺垫了这么多,这里做一个简单的小结,到底应该要怎么做接口测试呢?

第一步:根据API文档提取接口清单;

第二步:根据接口清单,确定适用于单接口测试的接口。根据需求评审及业务逻辑,确定适用于关联接口测试的接口类。

第三步:根据确定的单接口测试和关联接口测试,搭建测试框架,设计测试用例。这里的重点是用postman或jmeter等工具搭建测试框架(重点是数据驱动和参数传递),并根据等价类法、正交表法等方法设计合理有效的测试用例。

第四步:执行测试用例,并验证结果是否符合预期。如果是bug,提交bug等。

到这里,软件接口测试就结束了。当然,还有一些更细节的实现流程没有介绍,比如说,用例设计的方法有哪些?postman如何使用?jmeter如何使用?软件测试的基本理论有哪些?缺陷管理工具怎么用?接口测试自动化如何学习?等等、等等,我们之后的文章再来介绍。

END今天的分享就到此结束了!点赞关注不迷路~!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【100个Cocos实例】环形ScrollView的实现方法

引言 Cocos中环形ScrollView的实现 大家好,今天是圣诞节,又是寒冷的一天。 在游戏开发中经常需要用到ScrollView去实现滚动的列表。 他通常包括垂直方向和水平方向两个选择。 本文将介绍一下ScrollView环形方向的实现。 本文源工程可在文末阅读原文…

ServletContext对象和ServletConfig对象

Servlet几个重要的类的关系图 ServletContext对象 问题: Request解决了一次请求内的数据共享问题,session解决了用户不同请求的数据共享问题,那么不同的用户的数据共享该怎么办呢? 解决:使用ServletContext对象 作…

关键字:extends关键字

在 Java 中,extends 是一个关键字,用于表示继承关系。当一个类使用 extends 关键字时,它表示该类是一个子类,并且继承了父类的属性和方法。 以下是 extends 关键字的解析: 语法: 描述: ChildC…

二分查找——OJ题(二)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、点名1、题目讲解2、算法原理3、代码实现 二、搜索旋转排序数组中的最⼩值1、题目讲解2、算…

Unity向Web服务器上传和下载图片

Unity向Web服务器上传和下载图片 如果本片有看不懂的请查看我上篇文章:[Unity与Web服务器Post,Get](https://blog.csdn.net/qq_42194657/article/details/103031573)一、上传和下载图片1.在Unity中创建一个RawImage并在WebManager.cs脚本中添加一个Textu…

石油石化应急三维电子沙盘系统研究分析与业务应用

一、概述 易图讯科技(www.3dgis.top)以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑,支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换,集成油田原…

Unity-Shader-渲染队列

Unity-Shader-渲染队列 渲染简介Unity中的几种渲染队列Background (1000)最早被渲染的物体的队列。Geometry (2000) 不透明物体的渲染队列。大多数物体都应该使用该队列进行渲染,也就是Unity Shader中默认的渲染队列。AlphaTest (2450) 有透明通道,需要进…

巅峰画师Midjourney:新时代的独角兽

介绍 AI绘画领域中,Midjourney处于绝对地位,并且一年时间就登顶。 Midjourney是一家独立的AI研究实验室,探索新的思维媒介,拓展人类的想象力。 它由一个小型的自筹资金团队组成,专注于设计、人类基础设施和AI。 在AI绘画领域,Midjourney取得了非常突出…

SaaS医院信息化云his系统源码带电子病历+LIS系统

一、系统概述 •采用主流成熟技术,软件结构简洁、代码规范易阅读,SaaS 应用,全浏览器访问前后端分离,多服务协同,服务可拆分,功能易扩展; •支持多样化灵活配置,提取大量公共参数&am…

P7 RV1126推流项目 —— 写代码前的思路草图

目录 前言 01 项目介绍: 02 项目框图: 03 模块设计思路 3.1.rv1126_ffmpeg_main.cpp(主模块代码): 3.2.rkmedia_assignment_manage.cpp(RKMEDIA 任务管理模块) 3.3. rkmedia_data_process.cpp(RV1126 数据处理模块): 3.4. rkmedia_…

详解IDEA git 版本回滚

作者简介 目录 1.git分区 2.未commit,进行回滚 3.commit未push,进行回滚 3.1.undo commit 3.2.reset 4.已commit&push,进行回滚 1.git分区 git的版本回滚其实就是回滚不同的分区,所以在聊git回滚之前我们有必要简单了解…

linux(centos)相关

文件架构: 用户组 查看用户组中的用户! 用户 切换用户:su 提高用户权限命令:sudo 进程状态命令:top 杀死进程:kill 关机命令:shutdown 重启命令:reboot 时间同步 目录命令 ls pwd rm mv …

git中的smart checkout和force checkout

切换分支时出现了这个问题: 这是因为shiyan01分支修改了代码,但是没有commit, 所以在切换到test分支的时候弹出这个窗口 一、smart checkout(智能签出) 会把shiyan01分支的改动内容带到test分支。合并处理后的内容就变成了test分支的内容,而shiyan01分支的改动会被…

EternalBlue【永恒之蓝】漏洞详解(复现、演示、远程、后门、入侵、防御)内容丰富-深入剖析漏洞原理-漏洞成因-以及报错解决方法-值得收藏!

漏洞背景: 1.何为永恒之蓝? 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子…

yolov7添加FPPI评价指标

学术上目标检测大多用mAP去评价一个模型的好坏,mAP用来作为比较模型的指标是挺好的,不过有个问题就是不够直观,比如mAP0.9到底代表什么呢?平均一个图会误检几个呢?该取什么阈值呢?mAP说明不了,所…

获取android签名

1、安装安卓模拟器,比如MuMu模拟器; 2、打包需要签名的apk,记住包名,比如org.ungleyou.uy,后面签名用得着; 3、下载签名工具,Gen_Signature_Android.apk: http://dlied5.qq.com/msdk/Gen_Sig…

【力扣题解】P101-对称二叉树-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P101-对称二叉树-Java题解🌏题目描述💡题解🌏总结…

揭秘Pod状态与生命周期管理的秘密(上)

写在前面 前几篇文章中主要分享了k8s的几种控制器,本文将着重分享一下k8s最小的创建和部署单位pod的状态与生命周期管理。 点击 这里 可以查看所有相关文章。 Pod 概览 Pod 是 kubernetes 中你可以创建和部署的最小也是最简的单位。Pod 代表着集群中运行的进程。…

C# LINQ

一、前言 学习心得&#xff1a;C# 入门经典第8版书中的第22章《LINQ》 二、LINQ to XML 我们可以通过LINQ to XML来创造xml文件 如下示例&#xff0c;我们用LINQ to XML来创造。 <Books><CSharp Time"2019"><book>C# 入门经典</book><…

Quadratic Assignment Problem 二次分配问题

1 问题定义 二次分配问题&#xff08;Quadratic Assignment Problem&#xff0c;QAP&#xff09;是一种组合优化问题&#xff0c;涉及确定将设施分配到位置的最优方案。它的目标是找到最佳分配&#xff0c;以最小化设施对之间的总成本或距离&#xff0c;考虑到它们之间的相互作…