51Testing软件测试论坛
标题:
全网最详细的接口测试实战案例!小白必看!(上)
[打印本页]
作者:
lsekfe
时间:
2021-6-9 09:46
标题:
全网最详细的接口测试实战案例!小白必看!(上)
一、
接
口测试
的误区
前段时间,有个朋友跳槽去了一家公司做服务端的测试开发工程师,月薪涨了50%
我第一时间向他送去了诚挚的祝福,同时询问了他去到新公司的工作情况。
他和我说,他目前主要负责一个电商平台的接口测试工作以及开始着手去搭建一个接口自动化测试平台。
因为该同事以前是做移动端的测试的,从来没有听说过,他有做接口测试的经验。于是我出于好奇,就问了一下:他目前是如何去进行接口测试的。
他对这个问题可能没有做出充足的准备,也有可能他因为之前没有接口测试的相关经验,他给到我的回答,其实和网上随便搜出来的答案差不多:
通过 Postman / Jmeter / 代码调用 等测试工具,来模拟网络请求,
1. 校验接口传参是否合理(少传 / 漏传 / 多传 / 边界值 / 参数类型校验等等)。
2. 测试响应结果是否会返回约定的数据格式,有没有字段没有下发或下发不正确。
3. 验证接口是否有安全性问题,是否鉴权。
利用 Postman 进行接口测试
对于这个回答,我并不感到意外,网上大多数的回复也都是这么说的。
但是对于一个纯服务端的测试而言,仅仅是调调参数,真的就能完成接口测试了么?
NO,这只是接口测试的冰山一角,接口测试远没有你想象中的那么简单!
那么,接口测试主要需要测试哪些方面呢?
按照惯例,先上老(nao)图:
接下来,臻叔将用一次深度的接口测试实战,来分享一下,臻叔是如何去做接口测试的。
二、接口测试的实战步骤
接下来我们以电商平台的搜索接口来做案例,一步步给大家讲解接口测试的步骤。
第一步:梳理上下游调用链
1)为什么要梳理上下游调用链?
目前互联网产品的后端服务,基本上都是分布式部署的,一个接口可能会调用其他接口,也有可能被其他接口调用,接口与接口之间,具有千丝万缕的依赖关系。
如果我们的把自己负责的接口纯粹地当成黑盒去测试,不可谓知己;
如果我们只熟悉自己的接口,不清楚与其他接口的依赖关系,不可谓知彼;
所谓知己知彼,方能百战不殆。
所以,梳理上下游调用链是首先要做的工作。
我们在测试的时候,很可能只会片面的去关注搜索网关开放给前端调用的接口,
但只要把整个调用链路和流程图画出来,我们会发现其实搜索网关依赖好多的服务。
比如:
搜索网关需要调用价签系统,去获取商品促销价格;
搜索网关需要调用推荐系统,去获取搜索场景下的推荐的商品;
搜索网关需要去调用商品系统,去获取实时的商品信息;
搜索网关需要去调用搜索服务,去ES召回商品、获取搜索排序信息等等。
前端在搜索框搜索一个关键词,对搜索网关发起一个HTTP请求,背后其实经过了很多道工序去处理这个请求。
如果只是单独的调调参数,就希望把接口测试做好,显然是不可能的。(开发自己都能调(tiao)接口参数,还要测试做什么?)
接口背后的业务逻辑是否正确处理、后端依赖的服务是否健壮、接口性能是否达标。
2)怎么梳理上下游调用链?
1、看项目wiki、产品文档和开发文档。
2、看开发写的代码,阅读代码,当然是首选:JetBrains全家桶啦(Java用IDEA;Python用Pycharm)
3、梳理出上下游调用关系后,手绘一份系统流程图,如果还有不明确的地方,可以找PM、开发沟通确认。
第二步:编写接口
测试用例
接口测试用例和平常的测试用例差不多,没有太多的要求限制。因为测试工作中很多时候不是专门测接口的,所以这个步骤不一定要做。
但是你心里要清楚你要测的点,如果你是第一次做接口测试,臻叔还是建议自己去写一份接口测试用例,并且好好归档。
如果说要做接口自动化,接口测试用例也是很有帮助的。
这里给出一个接口测试用例的案例:
第三步:测试接口文档&调试接口
接口文档在软件项目开发过程中非常重要,接口文档是连接前端开发和后端开发的一座桥梁。
在项目开发之初,前端开发和后端开发会共同去约定一套接口规范,然后由后端开发去编写接口文档,然后前后端就可以按照约定去进行协同开发。
接口文档的管理和编辑有多种方式:
有的团队习惯用wiki或者在线文档去编写接口文档;
有的团队喜欢用专业的接口文档工具,比如:Swagger、Yapi等去生成接口文档。
我们公司习惯于用丝袜哥(swagger)去维护接口文档。
swagger 对多种编程语言/框架 都提供了良好的接入方案。就拿Java来说,只需要引入相应的jar包,在接口上添加相应的api文档注解,就可以自动生成网页版的接口文档。
并且还可以通过接口文档去对接口进行调试,大大提高了开发效率。
但不管是以何种方式去管理和维护接口文档,接口文档都是必须要有的。
测试接口文档可以参考以下测试点:
确保开发必须提供接口文档。如果开发没有写接口文档的习惯,应push开发去写接口文档。
检查接口文档的格式内容等是否完备,包括:URL、请求方法、Header、入参、返回值、示例Demo等。
检查接口设计是否符合公司规范。包括接口命名、接口格式、字段命名、字段类型、响应状态码、接口容错、字段是否冗余、接口是否鉴权、是否做版本区分等等。
当后端开发完成接口的开发工作时,我们就可以提前开始对接口进行初步测试了。
步骤如下:
把后端代码部署到测试环境上。
通过postman或swagger去对接口文档提到的接口进行测试。
(未完待续···)
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2