当前位置:网站首页>【2022全网最细】接口测试一般怎么测?接口测试的流程和步骤
【2022全网最细】接口测试一般怎么测?接口测试的流程和步骤
2022-07-06 16:29:00 【测试小娜】
一、什么是接口测试
我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试
!
那么接口测试是怎么来测试接口的呢?
接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求.
简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”
二、接口测试的好处
- 通过接口测试,我们可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率.
- 通过接口测试, 可以为项目带来高效的缺陷监测和管理能力,可以提到软件的整体质量;
项目越复杂,系统越庞大,接口测试使用的越频繁的效果越明显
三、接口测试的原理
通过模拟客户端 or Web浏览器向服务器发送请求
,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?
1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码
2、判断数据: 返回数据的正确性与完整性
3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等等
简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范
接口测试的原理
四、接口测试测试工具
接口测试需要模拟客户端发送请求获取响应,所以我们就需要一个能够发送请求获取响应的工具,也就是联网工具:
通过工具来进行接口测试
最知名的就是postman,当然还有restclient之类的 。当然也可以用jmeter,jmeter也可以用来做接口性能测试,当然我们也可以通过编写脚本(代码)进行接口测试。
一般我们使用python语言中最流行的联网库requests
!
五、如何做好接口测试
接口测试要遵循一些要点:
- 测试接口的功能实现. 检查不同参数的数据请求时,接口返回的数据与预期结果也就是接口文档的规范的一致性.
- 测试接口的健壮性(容错性), 比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的能否正常处理.
- 测试接口参数的边界值. 比如说传递的数据超出了接口规范的规定的范围,或者数据足够大或者为负数时能否正常处理
- 测试接口的性能, 接口处理和响应数据的时间,并发性等等, 当然这牵扯到代码实现的优化,需要与开发人员沟通
- 测试接口的安全性.比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面
六、接口测试流程
1、分析接口文档和需求文档
分析接口文档或者需求文档一般会去找测试点,那么接口测试的测试点我们一般从几种方向去找
· 功能性测试点
· 性能测试点
· 安全性测试点
2、编写接口测试计划
测试计划就是功能测试计划基本一样就是知名的5w1h了
1) why——为什么要进行接口测试;
2) what—测试接口包括哪些;
3) when—测试接口不同阶段的起止时间;
4) where—相应接口文档,接口缺陷的存放位置,测试环境等;
5) who—项目有关人员组成,哪些接口分配给哪些人;
6) how—使用哪些测试工具以及测试方法进行测试。
3、编写接口测试用例
测试用例就是根据具体的哪个接口来编写,一般会分为单接口和多接口两种场景来编写测试用例
1) 单接口场景的测试
- 正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:
- 所有必填参数
- 全部参数(必填参数+选填参数)
- 参数组合(必填参数+某些选填参数)
- 反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
- 异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
- 异常的参数:不传参数,少传参数,多传参数,传递错误的参数
- 异常的业务数据:结合业务功能考虑输出的各种异常返回情况
2) 多接口场景的测试
- 业务场景功能测试(站在用户角度考虑常用的使用场景)
- 多业务场景功能测试主要是测试接口之间数据依赖
4、接口测试执行
根据设计的测试用例就可以执行测试用例当然执行的方式有几种
1. 使用postman之类的工具,一个一个进行测试,这种方式我们叫做手工测试
2. 使用jmeter之类的有自动化功能方式进行测试,这种叫做工具自动化测试
3. 我们可以自己编写测试脚本,使用测试脚本自动加载测试,这种就是自动化测试了
5、生成接口测试报告。
- 测试完成了以后就可以生成测试报告了
接口测试流程
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。
边栏推荐
- Rider离线使用Nuget包的方法
- Automatic test tool katalon (WEB) test operation instructions
- Local deployment Zeppelin 0.10.1
- STM32通过串口进入和唤醒停止模式
- 氢创未来 产业加速 | 2022氢能专精特新创业大赛报名通道开启!
- The problem of ASP reading Oracle Database
- Design of short chain
- Close unregistering application XXX with Eureka with status down after Eureka client starts
- DAY FOUR
- The intranet penetrates the zerotier extranet (mobile phone, computer, etc.) to access intranet devices (raspberry pie, NAS, computer, etc.)
猜你喜欢
App general function test cases
B 站弹幕 protobuf 协议还原分析
Ajout, suppression et modification d'un tableau json par JS
How much does the mlperf list weigh when AI is named?
Do you still have to rely on Simba to shout for a new business that is Kwai?
Newsletter L Huobi ventures is in-depth contact with genesis public chain
app通用功能测试用例
求帮助xampp做sqlilab是一片黑
Wu Enda 2022 machine learning course evaluation is coming!
DAY FOUR
随机推荐
The largest single investment in the history of Dachen was IPO today
三句话简要介绍子网掩码
浅谈现在的弊端与未来的发展
Detailed explanation of regular expression (regexp) in MySQL
MVC and MVVM
App general function test cases
The important data in the computer was accidentally deleted by mistake, which can be quickly retrieved by this method
app通用功能测试用例
Common modification commands of Oracle for tables
koa2对Json数组增删改查
达晨史上最大单笔投资,今天IPO了
[unmanned aerial vehicle] multi unmanned cooperative task allocation program platform, including Matlab code
在docker中快速使用各个版本的PostgreSQL数据库
内网穿透zerotier 外网(手机、电脑等)访问内网设备(树莓派、NAS、电脑等)
《数字经济全景白皮书》保险数字化篇 重磅发布
在Docker中分分钟拥有Oracle EMCC 13.5环境
pinia 模块划分
The tutorial of computer reinstallation win10 system is simple and easy to understand. It can be reinstalled directly without U disk
士大夫哈哈哈
Rider离线使用Nuget包的方法