news 2026/4/17 23:44:50

接口测试基础知识,如何开展接口测试?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接口测试基础知识,如何开展接口测试?

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

一、接口测试基础理论

接口测试:接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。– 百度百科

接口原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做判断并将最终结果返回至客户端,客户端再次接收返回结果并应答的过程。

检查重点:测试的重点是检查接口参数传递、接口功能实现、输出结果的正确性,以及对各类异常情况容错处理的完整性与合理性。

接口类型:内部接口及外部接口,内部接口为程序开发的接口,方法之间或模块之间的调用,外部接口为外部接入调用接口,例如王者荣耀的微信登录、支付宝的支付功能等,均是外部接口。

接口分类:webservice接口及http api接口,webService接口使用soap协议传输,通过http进行传输,是HTTP POST专用版本之一,遵循一种特殊的xml消息格式(请求及返回均为xml),http api接口使用http协议,通过路径来区分调用的方法,通过key-value请求,返回报文通常为json。

接口本质:接口的本质上是一个公开的函数类,进行数据传输的发送与接收,可以理解成一条通道,在发送get或post请求方式时,实际上就是从通道进行发送、在由服务器从通道返回数据。

测试范围:接口功能、接口性能、接口稳定性以及接口安全性等。

二、为什么要进行接口测试

1、稳固代码底层:在初期阶段的开发时,业务层面无法检测到底层内容,代码底层不稳固牢靠,故此需要对底层内容进行接口测试,否则底层代码错误可能会引发更多外部系统或调用模块的错误。

2、低成本高效益:初期开发且资源未设计完成时,提前介入测试工作提前暴露问题,符合质量前移理念,能够明显有效的控制测试成本,且接口可进行自动化持续集成,故此会有更高的长期收益体现。

3、测试范围更广:接口测试大部分是从用户的角度而言对系统接口进行全方面的检查测试,无论是软件项目还是游戏项目,接口测试均会覆盖到部分业务逻辑,故此在进行接口测试时也同样能够辅助业务测试。

4、提高接口安全:上述提到了接口安全的测试范围,在接口安全方面考虑,客户端进行的限制条件容易避开绕过,同样需要测试服务端的限制,涉及到部分隐私数据时还需要验证接口的加密传输,例如用户密码、身份证、银行卡信息等。

5、保障系统稳固:进行接口测试能够保障系统间的数据传输以及容错,从而提高系统层面的稳定性。

总结:

接口测试的优点:提高整体测试效率,降低研发测试的成本,综合性提升产品质量、降低后续维护资源。

三、如何开展接口测试

3.1、接口开展方式

业务层面:

常用接口测试工具:Postman、Jmeter、SoupUI等。

接口测试工具原理:通过接口测试工具模拟请求与数据接收,实现数据传输。

代码层面:

接口自动化测试:通过代码实现,发送请求通过代码断言判断接口正确性。

ps:会在后续自动化的文章教学接口自动化框架搭建、持续集成等内容。

3.2、接口测试流程

在真实的项目工作中,接口测试的流程大致分为以下几个步骤(公司不同,流程会存在部分差异):

1、公司有接口测试需求或测试人员收到接口测试任务时开始正式介入接口测试的流程阶段。

2、由开发人员提供接口文档,测试人员拿到接口文档后先行熟悉需求文档,了解各个接口的功能以及相关信息。(包括但不限于服务器地址端口、请求方式、请求参数、约束条件、返回状态码等)

3、当测试人员熟悉需求文档完成后,开始介入测试用例的编写,与业务测试相同,需要考虑到正常、异常的请求参数、还需要考虑到对应的响应报文数据的正确性。

4、最后可以通过接口测试工具进行用例执行,可以选用Postman、Jmeter等,举例:Jmeter可以先建立线程组、添加http请求,写好相关的请求地址、端口、请求参数,并设置好参数化,添加断言,最后添加结果树再运行,Postman与Jmeter原理是一样的,只是操作方式不同,这里不过多阐述,有兴趣的朋友可以网上查找下相关的工具使用说明与资料。

5、当运行完成后,检查接口是否通过,如果接口测试不通过,第一步先检查请求方式、参数等信息是否有错误,如果无错误的情况下,检查下网络环境,如果都没有问题,可能是接口本身存在问题,先以自己的认知进行判断是前端还是后端问题,判断完成后提单给开发并附上相关日志信息直至全部确认完成。值得一提的是,在业务的接口测试过程中更多的会关注失败的接口,在接口自动化的过程中也同样需要关注测试通过的接口,以用于质量提升、报告输出等方面。

3.3、接口测试需求

一份接口需求文档,核心要素主要包括以下内容:

文档封面:封面为xx公司接口需求文档,有公司名称及公司logo并注明为保密文件、需求文档的版本号、文档创建日期等。

修订记录:通常为表格形式,其中至少包括修订的版本及日期、修订说明、修订人、审核时间以及审核人等。

接口说明:接口访问地址格式、接口地址举例、返回结果说明等。(状态码及相关注释)

接口信息:模块名称、子模块、业务描述、接口名称、请求方法、请求格式、响应格式、请求参数、结果说明、返回示例等。

简单介绍接口信息中对应信息所产出的内容:

模块名称:登录、支付等

子模块名:微信登录、QQ登录、手机号登录

业务描述:简洁概括接口的功能

接口名称:

/login/wechat,/payment/personal

请求方法:GET / POST 等

请求格式:application/x-www-form-urlencoded

响应格式:application/json

请求参数:手机号、登录密码(包括变量名、类型、说明注释、是否必填)

结果说明:参数内容、变量名、类型(例如string),返回状态码等

返回示例:返回成功的举例,下方4.4接口演示中有图片体现

ps:并非所有的接口文档都很规范,绝大多数的需求文档中不会有如此详细的信息说明,具体情况大家依据公司接口文档为准即可。

3.4、接口演示(王者荣耀、企业微信接口演示)

笔者在这里进行一些接口的演示,帮助大家了解接口、熟悉接口需求和说明~

王者荣耀接口展示如下:

英雄列表:

接口地址:

https://pvp.qq.com/web201605/js/herolist.json

请求方式:GET

输入参数:无

输出参数:

返回结果(部分展示):

企业微信接口展示如下:

文件上传接口:

素材上传得到media_id,该media_id仅三天内有效

media_id只能是对应上传文件的机器人可以使用

请求方式:POST(HTTPS)

接口地址:

https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE

使用multipart/form-data

POST上传文件, 文件标识名为“media

参数说明:

POST的请求包中,form-data中媒体文件标识,应包含有 filename、filelength、content-type等信息

filename标识文件展示的名称。比如,使用该media_id发消息时,展示的文件名由该字段控制

请求示例:

POST

https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa&type=file HTTP/1.1

Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468

Content-Length: 220

---------------------------acebdf13572468

Content-Disposition: form-data; name=“media”;filename=“wework.txt”; filelength=6

Content-Type: application/octet-stream

mytext

---------------------------acebdf13572468–

返回数据(未传参):

{

“errcode”: 44001,

“errmsg”: “empty media data, hint: [1638347756075722279950035], from ip: 183.14.133.153, more info at https://open.work.weixin.qq.com/devtool/query?e=44001”

}

3.5、接口测试用例设计

用例设计格式:

用例序号:项目名称_模块名称_序号

接口模块:对应的接口模块,例如英雄列表、召唤师技能,企业微信的登录模块、语音模块等

请求方式:通常请求方式为GET、POST

接口地址:通常有固定的地址格式便于接口自动化测试(图中的是全地址)

接口参数输入:部分接口不需要接口参数的输入,部分存在接口输入,如果有,填写即可

用例设计重点及关注点:

(1)发送给服务器的请求数据是否正确;

(2)服务器返回给客户端的数据是否与需求一致,符合预期;

(3)查看数据库中接口是否实现对应功能;

(4)接口的响应时间是否符合需求文档要求

接口用例设计考虑的范围:

1、业务功能:功能是否实现

2、业务规则:定义的描述是否符合预期

3、请求参数:参数的长短、大小、格式等

4、异常场景:传参异常、操作异常、服务异常等

5、数据传输:数据传输结果的正确性

6、接口性能:接口性能的正确,例如并发等

7、接口安全:如支付类、充值接口的数据篡改等

ps:在以上范围内还需要考虑接口的用例覆盖率及代码覆盖率,至少符合预期

3.6、后端接口测试内容

所谓的接口测试,后端接口都测试什么内容?下面的图片会给你一定的帮助(图片来源于网络):

好啦~以上就是本次文章分享的全部内容啦,你学会了吗?有问题记得留言讨论哦~

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

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

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

写简历用什么软件

在 2026 年的求职环境下,“用什么软件写”其实是一个关于“谁是你的第一读者” 的策略问题。现在的真相是:你的简历在被 HR 看到之前,必须先通过 ATS(申请人追踪系统) 的算法扫射。 如果你选错了工具,导致排…

作者头像 李华
网站建设 2026/4/18 8:55:30

C3/5怎么指定信道,带宽,发送自定义内容?

这个问题已经进入 Wi-Fi PHY/MAC 控制层 帧注入 调度控制 的范畴了,我直接给你一套工程上可行、在 ESP32-C3 / C5 上能落地的方案框架。 ⚠️先说明:下面讲的是协议测试 / 抗干扰 / 私有协议 / 安全研究层面的能力,不涉及实际攻击指导。 …

作者头像 李华
网站建设 2026/4/18 0:38:48

Python:(一)变量、类型与 f-string —— 数据的载体

目录 1. 变量 (Variables):给数据贴标签 命名规范(ML 领域的潜规则) 2. 四大核心数据类型 (The Core Types) A. Float (浮点数) —— ML 的绝对主角 B. Int (整数) —— 计数器 C. Bool (布尔值) —— 逻辑开关 D. String (字符串) —…

作者头像 李华
网站建设 2026/4/17 21:49:45

DODAP,CAS号:127512-29-2,二油酰基-3-二甲基氨基丙烷

DODAP,CAS号:127512-29-2,二油酰基-3-二甲基氨基丙烷 DODAP(N,N-dioctadecyldimethylammonium Propane Sulfonate)是一种常见的阳离子表面活性剂,广泛应用于药物递送、基因传递、纳米技术以及生物医学领域…

作者头像 李华
网站建设 2026/4/18 6:57:47

计算机等级考试—E-R 图符号对照表—东方仙盟练气期

E-R 图符号对照表 图形符号名称含义你的图中例子▭(单矩形框)强实体可以独立存在,拥有唯一主键的实体代购员、配送员、商品、顾客、托运公司▭▭(双矩形框)弱实体必须依赖其他强实体才能存在,自身没有完整…

作者头像 李华
网站建设 2026/4/18 8:50:58

Spring Boot 如何防护 XSS + SQL 注入攻击 ?终于懂了!

01 XSS漏洞 ① XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被解析执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击! ② XSS漏洞…

作者头像 李华