8

我正在寻找您对设置和执行主要针对 RESTful Web API 的 API 测试的一般工作流程的建议。

更具体地说,我有以下几点困惑:

  1. API 测试是通过编写代码(如单元测试)还是通过运行工具来完成?
  2. API 测试应该生成什么样的结果和报告?
  3. API 测试应该涵盖哪些类型的测试?
4

1 回答 1

11
  1. 使用单元测试,您可以检查用于获取请求数据的实现逻辑是否正确,但这还不够。要测试 API,应检查各种格式(JSON、XML、ATOM 等)的数据序列化/反序列化、授权和身份验证、异常处理(将应用程序异常转换为 HTTP 错误代码)。API 应该从客户端的角度进行测试。您可以使用可以发送类似于客户端发送请求的工具(即jmeter )来实现它。

  2. API 测试应该生成报告,其中包含请求通过/失败的信息。如果请求失败,应提供响应以供进一步调查。API 测试应该集成到 CI 中。

  3. API 测试应涵盖:

    • 功能测试:测试参数和参数的不同组合的有效请求,准备模拟客户端请求的测试场景还应测试无效(坏)请求以检查是否正确处理并且不会使您的应用程序崩溃
    • 安全测试:检查来自不同客户端的请求是否相互影响
    • 性能测试:测量端点的响应时间

例子

假设有一个带有查询参数的端点/users :

  • 计数(计数 > 0 & 计数 <= 100,默认 10)
  • startIndex (startIndex >=0, 默认为 0)

相关的测试场景可以分为两组:有效请求和无效请求

有效请求(始终检查响应格式):

  • GET /users - 验证响应包含 10 个项目,从项目 0 开始
  • GET /users?count=1 - 验证响应包含 1 项,从第 0 项开始
  • GET /users?count=100 - 验证响应包含 100 个项目,从项目 0 开始
  • GET /users?startIndex=5 - 验证响应包含 10 项,从第 5 项开始
  • GET /users?startIndex=200&count=100 - 验证响应包含 100 个项目,从项目 200 开始
  • GET /users?startIndex=0&count=10 - 验证响应包含 10 个项目,从项目 0 开始

无效请求:

  • GET /users?count=0 - 验证响应码是 400
  • GET /users?count=-10 - 验证响应码是 400
  • GET /users?count=foo - 验证响应码是 400
  • GET /users?count=10bar - 验证响应码是 400
  • GET /users?count=101 - 验证响应码是 400
  • GET /users?startIndex=-1 - 验证响应代码是 400
  • GET /users?startIndex=foo - 验证响应代码是 400
  • GET /users?startIndex=foo&count=bar - 验证响应码是 400
于 2013-10-09T05:57:08.473 回答