有关RESTful Web API的API测试的一般建议

Shu*_*ing 8 rest web-api-testing

我正在寻找关于主要为RESTful Web API设置和执行API测试的一般工作流程的建议.

更具体地说,我有以下难点:

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

rag*_*nor 11

  1. 使用单元测试可以检查执行逻辑获取请求的数据是正确的,但还不够.要测试API,诸如此类的数据序列化/反序列化到各种格式(JSON,XML,ATOM,...),授权认证,异常处理(翻译应用程序例外HTTP错误代码)应该被检查.应从客户的角度测试API.您可以使用,可以发送类似于客户端发送请求请求IE工具实现它JMeter的.

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

  3. API测试应包括:

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

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

  • count(count> 0&count <= 100,默认值为10)
  • startIndex(startIndex> = 0,默认为0)

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

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

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

请求无效:

  • 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