当kafka参与微服务架构时,如何实现合约测试?

2022-09-03 06:20:25

我目前正在从事一个项目,我们在微服务架构中实现了kafka。您是否成功为mS创建了合同测试用例,以卡夫卡主题交互,请使用pact-jvm?

我的实现是微服务1将消息发布到REST客户端,而REST客户端又将消息发布到Kafka Topic。微服务 2 使用 GET 方法从 Kafka 主题中检索消息。


答案 1

Pact-JVM 支持 Message Pacts,它封装了通过某种机制(通常是消息队列)使用(单向)的消息。这个想法是测试使用者代码可以通过使用者测试来使用消息,然后验证提供者是否生成了适当的消息。实际的消息队列不在测试中使用。

Contract over a message queue

这最初是为通过Kafka消息队列进行通信的微服务应用合约测试而开发的。

测试分为两部分,就像请求-响应约定测试一样,除了使用者在使用者约定测试期间读取消息,如果成功,则写入约定文件。然后调用提供程序代码以生成消息,并将其与 pact 文件中的内容进行比较。

enter image description here

Pact-JVM 文档的相关部分是:


答案 2

推荐