微服务集成测试全攻略
1. 应用级控制与集成测试要点
应用级控制主要涉及管理任意给定时间运行的实例数量。集成测试应包括对实例数量进行扩展(若支持动态扩展),以确保以下几点:
- 重新平衡按预期进行。
- 内部状态从检查点或变更日志流中恢复,并且数据局部性得以保留。
- 外部状态访问不受影响。
- 对有状态数据的请求 - 响应访问不受应用程序实例数量变化的影响。
对所有这些系统进行全面控制的目的是确保微服务在各种故障模式、不利条件和不同处理能力下仍能按预期工作。
2. 本地集成测试方法
本地集成测试主要有两种方式:
- 嵌入测试库 :将测试库嵌入代码中,但并非所有微服务解决方案都支持,且严重依赖语言和框架支持。
- 创建本地环境 :安装并配置所有必需的系统,可通过安装本地系统或创建包含所有必要组件的容器来实现。
2.1 在测试代码运行时创建临时环境
将测试库嵌入代码是一种较窄的选择,但如果客户端、代理和框架编程语言兼容性良好,效果会很好。以下是 Kafka Streams 应用程序的测试代码示例:
broker.start(brokerUrl, brokerPort, ...);
schemaRegistry.start(schemaRegistryUrl, srPort, ...);
//The first instance of the microservice
topologyOne.st