2017-07-03 2 views
6

Je travaille actuellement sur un projet où nous avons implémenté le kafka dans l'architecture de micro service. Avez-vous réussi à créer des cas de test de contrat pour mS à l'interaction de sujet kafka s'il vous plaît en utilisant pact-jvm?Comment implémenter des tests contractuels lorsque kafka est impliqué dans l'architecture des microservices?

Ma mise en œuvre est microservice1 publie un message à un client REST qui publie à son tour le message à Kafka Topic. microservice2 utilise la méthode GET pour récupérer les messages du sujet Kafka.

Répondre

10

Pact-JVM prend en charge les pactes de messages, qui encapsulent un message consommé (à sens unique) sur un mécanisme, normalement une file d'attente de messages. L'idée est de tester le code consommateur peut consommer le message via un test consommateur, puis vérifier que le fournisseur génère un message approprié. La file d'attente des messages n'est pas utilisée dans le test.

Contract over a message queue

Cela a été initialement développé pour appliquer des tests de contrat pour les micro-services de communication sur une file d'attente de messages Kafka. Les tests sont effectués en deux parties, tout comme les tests Pacte de réponse aux requêtes, sauf que le consommateur lit le message pendant le test du Pacte de consommation et qu'en cas de réussite, un fichier de pacte est écrit. Ensuite, le code du fournisseur est appelé pour générer un message, et cela est comparé à ce qui se trouve dans le fichier du pacte.

enter image description here

Les sections pertinentes des documents Pact-JVM sont:

+0

Merci @ ronald-holshausen Pouvez-vous pointer aussi section JVM consommateur où le contrat i s être généré s'il vous plaît? –

+0

Bien sûr, voici un lien pour un test JUnit: https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-consumer-junit/README.md#consumer-test-for-a- message-consommateur –