Skip to content

Files

Latest commit

17d6819 · Mar 13, 2023

History

History
100 lines (63 loc) · 2.56 KB

Introduction_of_API_Test.md

File metadata and controls

100 lines (63 loc) · 2.56 KB

什么是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
  • ……