Description
Aujourd’hui les architectures microservices sont de plus en plus répandues.
En revanche une des grosses problématiques avec l’architecture distribuée à base de microservices est les tests d’intégration inter-services.
La question principale est de savoir comment assurer les différentes interactions (api rest, messages d’événements) entre les différents services qui composent une architecture distribuée ?
Une stratégie de tests de contrats (Consumer-Driven Contract Testing / Directional Contract Testing) pourrait être une solution fiable et efficace à ce véritable défi des tests d’intégration inter-services !
Et pour mettre cette stratégie de tests de contrats en œuvre, le projet PACT.io (Open source) a créé une suite d’outils qui simplifie considérablement l’adoption des tests de contrats.
Cette formation Pact vous permettra d’acquérir et de maîtriser les concepts clés de l’automatisation des tests de contrats avec le framework Pact.io
Objectifs pédagogiques
À l’issue de cette formation d’automatisation des tests de contrats avec Pact, le participant sera en mesure de :
- Comprendre les concepts fondamentaux des tests de contrats
- Concevoir des tests de contrats automatisés avec Pact (Consumer et Provider)
- Comprendre comment intégrer les tests de contrats avec Pact dans une chaîne de livraison continue
Public concerné
- Testeurs ou développeurs désirant se former aux techniques d’automatisation des tests de contrats avec Pact
- QA Managers, Lead QA ou chef de projet tests logiciels
Prérequis
- Connaissances de base en JavaScript
- Connaissances de base en tests fonctionnels
- Connaissances de base en tests d’API (Rest)
Le programme de cette formation est composé de plusieurs modules allant des notions de base aux notions avancées
Module 1 : Introduction aux tests de contrats (Contract Testing)
- La différence entre architecture monolithique et microservices
- Les Problèmes avec les tests d’intégration traditionnels
- Que ce que c’est les tests de contrats ?
- Le principe de fonctionnement de tests de contrats
- Avantages des tests contractuels
- Les tests de contrats avec Pact
- Les cas où les tests de contrats ne sont pas applicables
- Présentation du projet PACT (pact.io)
Module 2 : Les tests de contrats côté consommateur (Consumer)
- Définition du terme consommateur (Consumer)
- Création du projet consumer(Nodejs)
- Présentation et installation de la bibliothèque Pact-js
- Spécification et implémentation de tests de contrats avec Pact-js
- Exécution des tests d’intégration avec Pact et génération du fichier contrat.
- Explication du contenu du fichier contrat
- Synthèse des différents étapes d’implémentation
Module 3 : Les tests de contrats côté fournisseur (Provider)
- Définition du terme fournisseur (Provider)
- Création du projet provider (nodejs)
- Implémentation des tests de vérification de contrats avec Pact-js
- Exécution des tests provider et vérification/validation du fichier contrat.
- Synthèse des différents étapes d’implémentation
Module 4 : Pact-broker
- Introduction à l’utilité du pact-broker
- Présentation de l’interface graphique du serveur pact-borker
- Implémentation de la publication du contrat dans le projet consumer
- Publication du contrat et vérification du résultat sur l’interface graphique
- Implémentation de la récupération de contrat dans le projet provider.
- Récupération et validation de contact
- Synthèse des différents étapes d’implémentation et d’utilisation de l’outil pact-broker
Module 5 : Intégration des tests de contrats dans une chaîne CI/CD
- Présentation de l’outil pact-cli
- Intégration du pipeline du projet consumer dans GitHub Actions
- Intégration du pipeline du projet provider dans GitHub Actions
- Validation de la chaîne complète de tests de contrats
Module 6: Concepts avancés
- Bonnes pratiques
- Comprendre le concept “pending test”
- Comment éviter les boucles infinies sur la validation de contacts
Module 7 : Le mot de la fin
- Synthèse
- Partage de ressources / docs / Articles concernant les tests de contrats