如何测试(集成测试)springboot-kafka 微服务
Posted
技术标签:
【中文标题】如何测试(集成测试)springboot-kafka 微服务【英文标题】:How to test(Integration tests) springboot-kafka microservices 【发布时间】:2019-11-02 10:49:36 【问题描述】:我有如图所示的 Spring-boot Kafka pub sub microservices。我想为我的每个应用程序进行集成测试。
UseCase1: SpringBoot-App-c 其中consumes
从Topic X
处理它和produces
到Topic Y
。
UseCase2: SpringBoot-App-b 只是从Topic X
消费并处理它
预期:
在我的测试中,我想向Topic X
(用于Springboot-app-c)发布一条消息,该消息应该由Spring-Boot-App-C处理并生成到Topic Y
,我想要确认该特定消息是否针对主题 Y 生成。
缺点:当我向主题 X 发送消息时,该消息是针对 Springboot-app-c
和 Springboot-app-c, springboot-app-b and spring-boot-app-d
的。当我尝试测试一个应用程序时,它在不知不觉中测试了三个应用程序,我希望对其进行更多控制。我希望测试消息仅由spring-boot-app-c
接收。如何使其特定于应用程序并单独测试每个应用程序
【问题讨论】:
【参考方案1】:如何知道某事已发布到主题 Y
将消费者添加到主题 Y 的测试中,以验证您收到了预期的数据。
如何让主题 X 中只有一个正确的消费者用于该特定应用的测试消息
你不能; Kafka 中没有用于条件路由或消息选择的机制。所有消费者组都会获得该消息的副本。
您必须使用单独的主题。
【讨论】:
以上是关于如何测试(集成测试)springboot-kafka 微服务的主要内容,如果未能解决你的问题,请参考以下文章
使用Mybatis和不同DB进行集成测试开发时如何做集成测试