接口测试怎么做

一、接口测试是什么

1.1 什么是接口

接口是程序将自身的内部逻辑封装起来,仅对外提供一个数据出入口。
例如:登录接口、查询个人信息接口

1.2 什么是接口测试

对系统接口进行测试。原理是跳过前端解析渲染的过程,模仿前端直接调用接口进行测试。测试时对入参、响应结果进行验证。

1.3 为什么要做接口测试

互联网产品的菱形测试模型


菱形模型.jpg

菱形模型:轻UI自动化,重接口自动化,部分单元测试覆盖

  • UI测试:模拟真实用户的行为,在软件界面上操作并验证操作的对应结果,也就是常说的“点点点”。
  • API测试:即接口测试。接口是底层代码到UI显示,或者多个服务间进行通信的桥梁。
  • 单元测试:即白盒测试,对方法、类的测试,通常由开发完成。越早发现缺陷,其修复成本就越低。

根据DevOps,在开发过程中,以及代码提交前,应该有两种测试类型,测试驱动开发和单元测试。但在实际紧张的项目过程中,开发和测试都没有时间去测试,底层单元测试无法保障。
同样的,手工测试本身就耗时耗力,但又很难开展UI自动化。因为现在的产品普遍迭代周期短、界面修改频繁,大量修改导致维护成本高,而且脚本编写本身也不容易。
做接口测试,并且重接口测试的优点如下:

  1. API测试用例的开发效率高
  2. API测试用例执行执行稳定
  3. 测试接口的速度快
  4. API接口本身一般改动较少,维护成本低

二、接口测试怎么做

2.1 测试对象

接口测试的对象有三个,分别是:

  • 接口文档
  • 入参数据
  • 响应结果

接口文档
检查接口文档是否符合规范,接口的入参、响应结果是否满足功能需要,依赖接口间是否逻辑自洽。

入参数据
入参测试包括功能测试和异常测试。
对于接口的功能测试,像正常功能测试时一样,按照边界值、等价类等设计方法来设计接口的入参。
对于异常测试,主要指数据异常,例如入参为null,空字符串、错误的数据类型。

响应结果
测试响应结果是否符合相应入参的预期,检查结果格式、编码是否与接口文档一致。

2.2 测试工具

常见测试工具有postman、jmeter,还可以自己搭建测试框架。

2.3 测试流程

  1. 准备入参数据
  2. 调用接口
  3. 验证接口响应结果

三、API测试的场景

3.1 单接口

最简单的测试场景,准备入参-调接口-验证结果。

3.2 接口数据依赖

场景一:接口调用时需要指定header。例如:调用请求时要在header中带上cookie。
场景二:一个接口的入参是另一个接口的返回。例如:调用删除学生的接口时,需要学生id作为参数值。可以调用学生列表接口获取学生id。

解决方法:jmeter,使用json提取器或正则表达式提取器,从上个接口的响应结果中提取需要的值,并配置引用名称。需要用到这个值时通过引用名进行调用。

3.3 接口依赖

接口间存在依赖关系。例如:积分兑换奖励的接口的内部,还会有积分扣减、物品库存扣减、订单生成、购物车物品清除等步骤,通常会通过调用其他内部接口来完成。若其中某一个接口未开发完成,整个流程就无法走通,导致测试阻塞。

解决方法:通过mock,虚拟接口和接口返回。

3.4 异步接口

当接口处理很耗时时,一般会采用异步处理的方式。例如:一键清空历史记录,完全清空需耗时数十分钟。
解决方法:
如果异步接口提供了查询接口,可采取轮询的方式,每隔一段时间去调接口查询处理结果,直到接口返回状态是成功或超时。
如果没有提供接口,可以用同样的方法查询数据库,验证业务逻辑处理是否正确,直到成功或超时。

你可能感兴趣的:(接口测试怎么做)