API 测试全解析:从合约到端到端测试
在 API 开发过程中,测试是确保其质量和稳定性的关键环节。本文将详细介绍 API 测试的多种类型,包括合约测试、组件测试、集成测试和端到端测试,以及相关的存储方案和工具。
合约存储与测试决策
合约的存储对于 API 测试至关重要。合约需要能够被生产者和消费者获取,并且存储点要允许提交新合约。生产者应能控制项目中接受哪些合约,以确保不会出现不期望的更改或添加额外合约。
合约存储有几种选择:
- 仓库存储 :可以使用像 Artifactory 这样的仓库。不过,在大型组织中,可能难以找到所有使用合约的 API 服务。
- 集中存储 :将所有合约存储在集中位置,如 Git 仓库,能提高可见性。但如果组织和设置不当,合约可能会被推送到生产者无意履行的模块中。
- 使用代理 :Pact 合约框架的代理产品可以作为集中存储合约的位置。代理能显示生产者验证过的所有合约,还能查看谁在使用合约,生成网络图表,集成 CI/CD 管道,并提供更多有价值的信息。这是最全面的解决方案,推荐使用与 Pact 代理兼容的框架。
为了帮助你决定是否使用合约测试以及选择何种类型的合约,以下是 ADR 准则:
|决策|讨论要点|
|----|----|
|构建 API 时是否使用合约测试,若使用,是使用消费者驱动合约(CDC)还是生产者合约?|1. 确定是否准备将合约测试纳入 API 测试。
2. 是否要为 API 添加额外的测试层,这要求开发者学习相关知识。
3