欢迎关注公众号 学习资料不会少
接口测试
2.4.1
什么是接口测试?
接口测试主要用于检测外部系统与内部系统之间,以及系统内部各个子系统之间的交互点。其测试的重点是,检查数据的交换、传递和控制管理过程,以及系统间的逻辑依赖关系等。
2.4.2
为什么要做接口测试?
01
传统测试成本急剧增加,测试效率大幅下降
如今的系统复杂度不断上升,传统的测试方法成本急剧增加,且测试效率大幅下降,所以要做接口测试。
另外,接口测试相对容易实现自动化,且接口自动化也比较稳定,可以减少人工测试的人力成本与时间,缩短测试周期,支持后端版本的快速迭代。
02
可以发现很多页面操作中发现不了的Bug
如果在页面中对输入框做了“必填”限制,则用户不输入内容是不能发送请求和调用接口的,这样通过页面进行测试受到的限制比较多,而直接调用接口则跳过了页面的限制。此时,如果接口没有做限制,则可以绕过前端页面去请求服务器,自然能发现很多页面操作发现不了的Bug。
03
可以检查系统的异常处理能力
举例说明,在输入框中输入关键字进行搜索,如果前端做了限制,一旦输入的关键字达到一定长度就会被截断了。而在该情况下,调用接口是正常的,且调用接口可以传很长的参数值。此时能发现一些接口层面的 Bug.比如,接口可能会抛出和数据库表有关的日志信息,借此能看到数据库表中的一些字段数据。
04
可以检查系统的安全性、稳定性
举例说明,比如在页面的搜索框中输入特殊的 SQL 注入语句进行搜索时,发现前端会过滤这些SQL 语句,那么从前端页面的角度来看这是没有问题的。但是,如果接口没有做类似的处理,一旦被他人获取了接口地址并实施 SQL 注入,则会带来严重的后果。所以,页面要做测试,接口更要做测试。
在前/后端分离时,只要前、后端严格按照接口协议来,一般情况下,后端完成接口测试后便可保证业务逻辑的正确性,剩下的便是前端如何展示的问题。所以,一般情况下都是后端先上线,前端再上线。
2.4.3
如何开展接口测试
做接口测试所要面对的现实情况如下:
● 页面原型还不完整,甚至没有原型设计。
● 有具体的页面需求文档和要实现的功能说明书。
● 有接口文档和业务逻辑设计图等。
综上所述,接口测试人员不但需要有很强的抽象能力,而且要有丰富的联想能力。
可以按照下面的步骤来实施接口测试(手工)。
● 获取待测试接口相关数据。一般由开发人员提供接口文档,该文档中包含以下几个基本要素:接口地址、接口请求参数及其说明、请求方式、返回包数据示例、返回码解释等。
● 充分理解接口逻辑。从产品人员的角度和开发人员的角度,理解接口所要实现的功能、数据的处理逻辑和存储逻辑。该环节尤为重要,需要考量以下几个方面:
● 每个接口所要关联的业务场景是怎样的(从产品的角度);
● 每个接口的业务处理逻辑和数据存储结构(从开发角度)。
● 设计接口测试用例。
● 使用工具模拟发送接口请求,检查返回包数据。
● 对比预期结果与实际结果,判断接口测试用例的通过性。
2.4.4
前/后端交互的“契约一接口”文档
在实际的分层项目开发中,经常会看到这样的场景:
前端人员A: “后端人员B, 你什么时候把登录接口给我,我要开始写页面了。”
后端人员B: “等一下,我改一下接口文档就发给你,你按照这个请求就可以了。”