我正在寻找您对设置和执行主要针对 RESTful Web API 的 API 测试的一般工作流程的建议。
更具体地说,我有以下几点困惑:
- API 测试是通过编写代码(如单元测试)还是通过运行工具来完成?
- API 测试应该生成什么样的结果和报告?
- API 测试应该涵盖哪些类型的测试?
我正在寻找您对设置和执行主要针对 RESTful Web API 的 API 测试的一般工作流程的建议。
更具体地说,我有以下几点困惑:
使用单元测试,您可以检查用于获取请求数据的实现逻辑是否正确,但这还不够。要测试 API,应检查各种格式(JSON、XML、ATOM 等)的数据序列化/反序列化、授权和身份验证、异常处理(将应用程序异常转换为 HTTP 错误代码)。API 应该从客户端的角度进行测试。您可以使用可以发送类似于客户端发送请求的工具(即jmeter )来实现它。
API 测试应该生成报告,其中包含请求通过/失败的信息。如果请求失败,应提供响应以供进一步调查。API 测试应该集成到 CI 中。
API 测试应涵盖:
例子
假设有一个带有查询参数的端点/users :
相关的测试场景可以分为两组:有效请求和无效请求
有效请求(始终检查响应格式):
无效请求: