8
votes

Comment automatiser les tests de Kafka

Nous avons développé un petit système, en utilisant KAFKA pour faire la queue des données et consommez la suite que des données permettent de passer des commandes pour les utilisateurs. Nous avons testé certaines choses manuellement, mais notre objectif est maintenant automatiser le processus. Y a-t-il un client disponible pour le tester. Quoi de googler des choses que j'ai découvert des moyens de le tester en utilisant Kafka Client lui-même, mais mon objectif est de tester le système dans son ensemble. S'il vous plaît guide

Edit: Notre objectif n'est que des tests API, c'est-à-dire que, juste l'arrière, pas l'interface utilisateur


1 commentaires

Dans mon expérience jusqu'à présent, testez un système basé à Kafka dans un environnement autonome (un seul courtier de Kafka, un seul zookeeper, une seule partition unique, peu de consommateurs / producteurs fonctionnant de manière séquentielle / synchrone) fonctionne bien. Vous pouvez rencontrer des problèmes de synchronisation et de synchronisation avec des compensations et de tous dans un environnement direct où votre système produit et consomme en temps réel et que vous essayez d'exploiter dans le bus pour valider les données qui le passent. C'est pour le cas où Wehre Live Env a-t-il plusieurs courtiers, dépendants de zoomé, partitions, producteurs et consommateurs, et éventuellement de flux asynchrone.


3 Réponses :


11
votes

Vous pouvez commencer par KAFKA de manière programmatique dans votre test d'intégration, KAFKA utilise ZOODEPER SE REGARDER LE ZOOKEEPER TESTOGHTSERVER - L'instance de cette classe crée et démarre le serveur ZK à l'aide du port donné.

Suivant Regardez sur KAFKASERVERTABLE.SSCALA , vous avez Pour fournir une configuration qui pointe sur votre Server de mémoire ZK et invoquer démarrage () méthode, voici le code: xxx

espérons que ces aides :)


2 commentaires

Salut, merci, je ne manque pas de comprendre sur le sujet, mais notre Kafka est déployé sur un serveur distant, vais-je pouvoir y accéder par la manière dont vous avez suggéré de ma machine locale ..


Je vous suggère de démarrer Kafka avant votre suite de tests, dans ce cas, vous n'avez pas à vous connecter au serveur distant. Je pense que c'est une meilleure solution car vos tests ne dépendent pas de ressources externes.



1
votes

Vous pouvez utiliser des tests d'intégration ou des tests de bout en bout en faisant appel à Kafka dans un conteneur docker . Si vous utilisez apache Kafka-Clients: 2.1.0 , vous n'avez pas besoin de traiter zookeper au niveau de l'API tout en produisant ou consommer les enregistrements.

Dockerizing Kafka et test permet de couvrir les scénarios dans un seul noeud ainsi que du groupe multi-nœuds Kafka. De cette façon, vous n'avez pas à tester une fois sur Mock / In-Memory Kafka, puis Real Kafka plus tard.

Si vous avez trop de scénarios de test pour couvrir, vous pouvez aller pour Test de déclaration de Kafka comme Docker-Composez style, par lequel vous pouvez éliminer le codage API du client KAFKA.

Checkout Certains exemples utiles ici pour valider Produire et Consommez .


0 commentaires

0
votes

Comme je comprenais que vous souhaitiez implémenter des tests de bout en bout à partir de messages. Moi et certaines personnes de récemment règnent de bibliothèques, d'outils et de cadres pour tester des systèmes pilotés par des événements à l'aide de Kafka.

Nous avons trouvé Zerocode qui est un test automatisé de l'API utilisant un langage déclaratif tel que JSON ou YAML. Il soutient le repos, le savon et ce que nous sommes intéressés, la messagerie. Il envoie et consomme des messages de sujets et apporte des assertions à la fin, facile à apprendre et à utiliser. Voici le lien pour plus de détails Zerocode . Cela semble être une bonne option bien que nous commençons à l'utiliser.

Vous devrez avoir des courtiers de Kafka et les dépendances fonctionnant pour faire fonctionner cette solution, mais rien de tel qu'un docker compose et / ou certains scripts pour apporter un environnement aux tests.

Un autre moyen est de mettre en œuvre votre propre projet avec des bibliothèques de Kafka et d'utiliser les bibliothèques pour envoyer et recevoir des messages dans les tests.

Malheureusement, nous ne pouvions pas trouver plus d'options disponibles là-bas. Kafka a une proposition pour créer un Kit de test < / a> Mais ce n'est pas encore en cours.


0 commentaires