什么是 API?

API:应用程序接口(全称:application programming interface),缩写为 API,是一种计算接口,它定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。它还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展。一个 API 可以是完全定制的,针对某个组件的,也可以是基于行业标准设计的以确保互操作性。通过信息隐藏,API 实现了模块化编程,从而允许用户实现独立地使用接口。

什么是 API 测试?

接口测试是软件测试的一种,它包括两种测试类型:狭义上指的是直接针对应用程序接口(下面使用缩写 API 指代,其中文简称为接口)的功能进行的测试;广义上指集成测试中,通过调用 API 测试整体的功能完成度、可靠性、安全性与性能等指标。

API Best Practice:

  • API 定义遵循 RESTFUL API 风格,语意化的 URI 定义,准确的 HTTP 状态码,通过 API 的定义就可以知道资源间的关系
  • 配有详细且准确的 API 文档(如 Swagger 文档)
  • 对外的 API 可以包含版本号以快速迭代(如 https://thoughtworks.com/v1/users/

API 测试与测试四象限

测试四象限中不同象限的测试,其测试目的跟测试策略也不同,API 测试主要位于第二、第四象限

API 测试与测试金字塔

API 测试在测试金子塔中处于一个相对靠上的位置,主要站在系统、服务边界来测试功能和业务逻辑,执行时机是在服务完成构建、部署到测试环境之后再执行、验证。

API 测试类型

功能测试

  • 正确性测试
  • 异常处理
  • 内部逻辑
  • ……

非功能测试

  • 性能
  • 安全
  • ……

API 测试步骤

  • 发送请求
  • 得到响应
  • 验证响应结果

API 功能测试设计

设计理论

  • 正面
  • 负面
  • 异常处理
  • 内部逻辑
  • ……

测试方法

  • 等价类划分
  • 边界值
  • 错误推断
  • ……

API 非功能测试设计

安全测试

  • 随机测试
  • SQL 注入
  • XSS
  • ……

性能测试

  • 性能瓶颈
  • 稳定性测试
  • ……

API 测试工具

API 请求工具

  • CURL
  • Soap UI
  • Postman
  • Swagger UI
  • ……

Http proxy 工具

  • Fiddler
  • Charles
  • ……

API 性能测试工具

  • ab(apache bench)
  • Jmeter
  • ……

欢迎关注软件测试同学的公众号“软件测试同学”,原创 QA 技术文章第一时间推送。