Accueil > Formations > Développement et Ingénierie de Logiciels > Qualité Logicielle & Testing (QA) > Gatling : automatiser les tests de charge et de performance des applications web
Gatling : automatiser les tests de charge et de performance des applications web
Maîtrisez Gatling pour scripter, exécuter et industrialiser vos tests de charge, du premier scénario jusqu'à leur intégration dans un pipeline CI/CD.
Vue d'ensemble
- Connaissance d'un langage de programmation (idéalement un langage de la JVM : Java, Kotlin ou Scala)
- Notions de fonctionnement des applications web et du protocole HTTP
- Familiarité avec la ligne de commande et un outil de build (Maven ou Gradle) appréciée
Objectifs pédagogiques
Programme détaillé
Architecture de Gatling et mise en place de l'environnement
– Positionnement de Gatling : outil open source de test de charge « as code », alternative DevOps au testeur historique JMeter
– Architecture asynchrone : simulation d’un grand nombre d’utilisateurs virtuels avec un minimum de ressources
– Offre communautaire et offre Gatling Enterprise : périmètres, différences et critères de choix
– Installation et intégration : configuration de Gatling dans un IDE et un outil de build (Maven ou Gradle)
– DSL de Gatling : présentation du langage de scénarios, disponible en Java, Kotlin ou Scala
– Structure d’un projet de tests : organisation des simulations, des ressources et des fichiers de configuration
– Installation de Gatling et configuration d’un projet dans l’IDE et l’outil de build
– Exécution d’une première simulation de démonstration
Conception d'un premier scénario de test de charge
– Concepts fondamentaux : simulation, scénario, injection de charge, action, checkpoint, feeder et pause
– Utilisateurs virtuels (VU) : modèle d’exécution et gestion des requêtes asynchrones
– Enregistreur Gatling (recorder) : génération d’un scénario à partir d’une navigation réelle
– Syntaxe du DSL : construction d’une requête HTTP et gestion des pauses
– Métriques de performance : temps de réponse, bande passante, débit et taux d’erreurs
– Use cases et groupes d’utilisateurs : définition, réutilisation et combinaison de profils de charge
– Enregistrement d’un scénario de navigation avec le recorder
– Réorganisation du scénario enregistré et lancement d’une simulation
– Définition de plusieurs profils d’injection de charge
Scénarios dynamiques : feeders, session et Expression Language
– Session d’un utilisateur virtuel : stockage et propagation des données tout au long du scénario
– Session API : lecture et écriture programmatiques des données de session
– Expression Language : injection dynamique de valeurs dans les requêtes
– Feeders : alimentation des scénarios en données (CSV, JSON, tableaux, générateurs) et types disponibles
– Vérification de la réponse : checks, extraction de données et assertions
– Paramètres en ligne de commande : externalisation de la configuration d’exécution
– Manipulation de la session d’un utilisateur virtuel
– Alimentation d’un scénario par un feeder de données
– Mise en place de checks et d’assertions sur les réponses
Maîtrise du protocole HTTP dans les scénarios
– Protocole HTTP : paramètres cœur et paramètres avancés du protocole dans Gatling
– Construction de requêtes : méthodes, en-têtes, paramètres, formulaires et envois multipart
– Authentification : gestion des mécanismes d’authentification HTTP
– Traitement de la réponse : extraction, transformation et sauvegarde des données
– Gestion des cookies et continuité des sessions HTTP
– HTTPS et SSL : configuration des échanges sécurisés
– Polling et WebSocket : test d’échanges temps réel et de protocoles non strictement requête/réponse
– Spécification d’un scénario exploitant l’authentification et les cookies
– Configuration HTTP avancée et extraction de données de réponse
– Test d’un échange WebSocket
Analyse des résultats et industrialisation en CI/CD
– Rapports Gatling : lecture des rapports HTML détaillés et des graphiques de performance
– Interprétation des métriques : percentiles, temps de réponse, débit et erreurs
– Assertions de performance : définition de seuils de réussite ou d’échec d’une simulation
– Intégration build : exécution des tests via Maven ou Gradle
– Intégration CI : exécution des simulations dans une plateforme d’intégration continue (ex. Jenkins)
– Tests de performance en pipeline : automatisation de l’exécution et publication des résultats sur la plateforme CI
– Analyse d’un rapport de performance et identification des points de contention
– Définition d’assertions de seuils sur une simulation
– Exécution d’une simulation Gatling dans un pipeline CI et publication du rapport
Prochaines sessions
Avis des participants
Financement
Cette formation est éligible aux financements OPCO et FNE-Formation. Nos équipes vous accompagnent dans le montage de votre dossier.
En savoir plus sur le financement
