什么是接口?

接口就是有特定输入和特定输出的一套逻辑处理单元,而它不用知道自身的内部实现逻辑,也可以叫做接口的黑盒处理逻辑

由于服务对象不同,接口又可以分为两种

  • 一种是系统或服务的内部接口
  • 一种是外部依赖接口

内部接口

系统内部调用的接口

内部接口的实际场景

购物流程,从登录系统,到加入购物车,再到支付订单,这一长串的流程中,都是通过系统内部接口来完成的

外部接口

外部系统对外提供的接口

外部接口的实际场景

你在购物后点击付款时,页面会跳转到支付系统,等你完成支付流程后,再跳转回订单页,在这样的流程中,都会涉及系统对外的接口,还比如说付款工程的支付接口、配送过程的物流接口等等

接口的本质

其实就是一种契约,遵循这样一种形式: 在开发前期,我们约定接口会接收什么数据;在处理完成后,它又会返回什么数据

什么是接口测试?

接口测试,其实就是验证接口内部处理逻辑是否正确;我们既要保证单接口的正确性,也要保证接口的业务逻辑正确性,主要体现在两方面:

  • 输入正确的测试数据,验证接口正常处理后返回的结果是否正确(数据结构&数据内容)
  • 输入异常的测试数据,验证接口能否正确处理异常数据并返回特定提示,是否合理,是否健壮

简单来说

  • 正确接受合法 Request 入参
  • 正确拒绝非法 Request 入参

这两种情况都是要验证的,都属于正向测试

反向测试

  • 正向测试相对应的是反向测试
  • 反向测试是指: 测试流程的反向测试或者是功能的反向测试,这是一个在业务测试里的概念,例如:支付付款是正向测试,那么退款是反向测试

接口测试工作

根据前面的讲述,总结一下,接口测试工作,主要包括

  • 获取接口文档,评审文档,了解接口的实现细节
  • 根据接口文档,写出测试用例,
  • 等产品发布后,根据测试用例,使用软件工具,直接通过消息接口 对 被测系统 进行消息收发,验证被测系统行为是否正确

评审接口文档

通过 接口 进行测试 和 通过 用户界面 进行测试一样, 都需要有 测试用例 。

测试用例的依据就是 需求设计文档, 接口测试用例当然也需要 接口的 需求设计文档,通常称之为 接口文档。

接口文档 通常 是由 开发人员提供, 测试人员 根据接口文档编写接口测试用例。

接口文档 里面应该包括 我们要测试的系统接口的具体信息。

点击这里查看一个SMS系统的接口文档

接口文档是人写的,当然就会有 错误、遗漏,甚至有自相矛盾的地方。

文档也可能有写的不清楚,难以理解,测试人员看不懂的地方。

所以在写测试用例之前,必须要先对接口文档进行评审,找出里面的问题,和 文档作者进行沟通 ,确保接口文档 基本正确、完善,然后才能动手写测试用例。

编写测试用例

编写测试用例的时候,通常可以采用 条件组合、边界值、错误猜测 等方法。