Gatling : logiciel de test de performance

Logo Gatling

Gatling est un logiciel qui permet de tester la charge et les performances d’un site ou d’une application web.

Il inclut un outil de test de charge, un générateur de rapport au format HTML, et un enregistreur de simulation.

Gatling va lancer des simulations, qui vont contenir un ou plusieurs scénarios.

Ces scénarios sont composés de requêtes à exécuter.

Des utilisateurs fictifs sont ensuite injectés au scénario pour simuler une charge et/ou un timing donné (exemple : 10 utilisateurs pendant 30 secondes).

Pour établir ces simulations Gatling propose deux solutions :

  • utiliser le recorder
  • coder soi-même les classes en Scala

Utiliser le recorder

Gatling met à disposition un recorder (fichier bin/recorder.sh), qui une fois lancé va capturer les requêtes HTTP qui transitent.

Pour ça il faut configurer son navigateur, ou Postman (ou autre) en indiquant le détail du proxy proposé par le recorder (IP et port).

Une fois terminé, il va générer automatiquement une simulation : un fichier RecordedSimulation.scala

Coder sa simulation

Dans le cadre d’un test de performance d’API, il va surement être nécessaire de passer par le code plutôt que le recorder afin de réutiliser certaines données dans des variables (exemple : un token).

L’autre avantage est de pouvoir versionner son code et l’inclure dans une suite d’intégration continue.

Prenons l’exemple d’une plateforme qui héberge plusieurs API, comme Gravitee.

Dans un premier temps on va vouloir s’authentifier et garder le token en session, puis effectuer une batterie de requêtes sur les différentes API disponibles sur le portail (plateforme d’API Management).

On peut isoler les requêtes et scénarios dans des classes Scala séparées, et les grouper par API.
La classe de simulation (qui fait office de bootstrap) aura pour but d’exécuter tous les scénarios en y injectant les utilisateurs.

Ce billet explique comment mettre en oeuvre cette architecture.

Lancer les tests

Les test de performance se lance à l’aide du fichier bin/gatling.sh.

Sélectionner la simulation souhaitée et valider, l’outil va cracher du log en sortie (plus ou moins verbeux, paramétrable via le fichier conf/logback.xml).

Visionner le rapport

Le rapport au format HTML est généré dans le dossier result/simulation-name-date/

Il présente les données sous forme chiffrées et graphiques (histogramme, camembert), au global et au détail des requêtes.

Intégrer au CI/CD

A l’instar de JMeter, Behat (BDD), ou Wapiti (sécurité), il est possible d’intégrer automatiquement les tests de charge au job Jenkins ou autre outil d’intégration continue.

Share Button

Laisser un commentaire.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.