Wiremock: Bringing Readability and Robustness to Algolia Testing
Summary
TLDRDans cette présentation, Gregoar Paris, ingénieur logiciel chez ManoMano, explique l'importance des tests d'intégration dans les environnements SaaS, comme Algolia. Il montre comment utiliser WireMock pour simuler les services d'Algolia et ainsi effectuer des tests sans dépendre d'un service distant. Cette méthode permet de gagner du temps, d'éviter les problèmes de connexion et d'assurer des tests fiables et rapides, même avec des API complexes. Gregoar partage également son expérience sur la migration de l'infrastructure d'Algolia et sur la gestion de grandes quantités de données avec un trafic élevé.
Takeaways
- 😀 Gregoar Paris travaille chez Mano Mano, une plateforme de commerce en ligne spécialisée dans le bricolage et le jardinage, avec plus de 1 milliard de requêtes par mois vers Algolia.
- 😀 Algolia est utilisé par Mano Mano pour des recherches rapides sur une base de données de 45 millions de produits répartis sur plusieurs pays et marchés.
- 😀 Gregoar est le principal point de contact technique pour Algolia chez Mano Mano et participe à des projets open source comme le projet Doctrine.
- 😀 L'intégration de tests dans des projets logiciels est essentielle pour valider des fonctionnalités complexes, comme les recherches dans Algolia, tout en assurant la cohérence des résultats.
- 😀 L'outil 'WireMock' permet de simuler des services HTTP, utile pour effectuer des tests sur des APIs externes comme Algolia sans utiliser l'API réelle.
- 😀 Utiliser une version locale simulée de l'API Algolia via WireMock peut améliorer la rapidité des tests et éviter les problèmes de connexion ou d'incidents externes.
- 😀 En recourant à WireMock, les tests peuvent être isolés, éliminant les risques de conflits entre les indices créés par différents développeurs sur une même API Algolia.
- 😀 L'approche de test local via WireMock permet d'éviter les lenteurs et interruptions dues à l'API réelle, offrant ainsi une solution plus rapide et plus robuste pour les tests d'intégration.
- 😀 L'intégration de WireMock dans un projet Golang permet de capter les requêtes envoyées à Algolia et de les rejouer en mode test, offrant ainsi un environnement contrôlé pour les tests.
- 😀 En utilisant des fichiers de mappage (mapping files) générés par WireMock, les tests peuvent être exécutés de manière instantanée, sans avoir à répéter la même procédure à chaque exécution.
- 😀 Gregoar recommande d'utiliser des tests d'intégration même pour des services SaaS comme Algolia afin d'assurer la stabilité et la fiabilité des fonctionnalités de recherche sans dépendre uniquement de l'API réelle.
Q & A
Qu'est-ce que Gregoar Paris présente dans cette vidéo ?
-Gregoar Paris présente un outil de test d'intégration appelé WireMock, qui permet de simuler des services HTTP, et explique comment il l'utilise pour tester des applications intégrant Algolia, un moteur de recherche en ligne.
Quelle est la principale utilisation de WireMock dans ce contexte ?
-WireMock est utilisé pour simuler les requêtes et réponses d'Algolia afin d'effectuer des tests d'intégration locaux, ce qui permet de s'assurer que les applications interagissent correctement avec l'API d'Algolia sans avoir besoin de se connecter à un service distant.
Pourquoi Gregoar Paris préfère-t-il utiliser WireMock plutôt que de tester directement avec Algolia ?
-Il préfère WireMock car il permet de simuler les réponses de l'API d'Algolia sans nécessiter une connexion internet. Cela rend les tests plus rapides, fiables et isolés des problèmes de disponibilité ou d'incidents d'Algolia.
Quels sont les avantages de l'utilisation de WireMock pour tester Algolia par rapport à un test en ligne réel ?
-Les avantages incluent la possibilité de tester hors ligne, d'éviter les pannes de service, de réduire le temps de test, de ne pas avoir à nettoyer les indices créés, et de garantir des tests déterministes avec une meilleure isolation.
Qu'est-ce que Gregoar Paris fait dans la démonstration ?
-Dans la démonstration, Gregoar Paris montre comment intégrer WireMock dans un projet Golang pour simuler des requêtes à l'API d'Algolia, en passant de tests réels à des tests simulés avec WireMock. Il montre également comment configurer les tests pour qu'ils fonctionnent en mode enregistrement et lecture.
Quelles sont les étapes principales du processus de test avec WireMock ?
-Les étapes incluent la création d'un conteneur WireMock via Docker, la configuration du client Algolia pour qu'il se connecte à WireMock, l'enregistrement des requêtes et des réponses, puis l'utilisation des fichiers enregistrés pour jouer les tests rapidement sans se connecter à l'API réelle.
Quel est le rôle des fichiers de mappage JSON dans le processus de test avec WireMock ?
-Les fichiers de mappage JSON contiennent les enregistrements des requêtes et réponses HTTP. Ils permettent à WireMock de simuler les réponses d'Algolia lorsque les tests sont exécutés en mode lecture, ce qui rend les tests instantanés et évite de refaire les mêmes appels à l'API.
Comment Gregoar Paris améliore-t-il la rapidité des tests en utilisant WireMock ?
-Il améliore la rapidité en utilisant le mode de lecture de WireMock, qui réutilise les fichiers de mappage déjà enregistrés, permettant ainsi des tests instantanés sans avoir à attendre les réponses d'Algolia.
Pourquoi Gregoar Paris recommande-t-il les tests d'intégration même avec des services SaaS comme Algolia ?
-Il recommande les tests d'intégration pour s'assurer que les interactions avec des services SaaS sont fiables, consistantes et correctes. Les tests permettent d'identifier rapidement les problèmes liés aux versions de l'API, aux migrations de l'architecture ou à des problèmes de syntaxe SQL, par exemple.
Quels outils et dépendances Gregoar Paris utilise dans son projet Golang ?
-Il utilise plusieurs dépendances dont 'Test Containers Go' pour gérer les conteneurs Docker, un client API pour interagir avec WireMock, et une bibliothèque d'intégration pour faciliter la gestion des tests et l'interaction avec les conteneurs.
Outlines

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video

Crash Course in Observability - DevConf.CZ 2022

Scaling Argo CD: From Symptoms To Solution - Alexandre Gaudreault, Intuit

Flakiness : Quand tester, c’est vraiment douter - Maxime CLEMENT (Docker)

ECE professional interview #2

Women in STEM - Science Technology Engineering and Mathematics

What Is Jenkins? | What Is Jenkins And How It Works? | Jenkins Tutorial For Beginners | Simplilearn
5.0 / 5 (0 votes)