Accueil Nos publications Blog Retour sur la soirée « Les Mains dans le Code » sur Gatling

Retour sur la soirée “Les Mains dans le Code” sur Gatling

Le mercredi 17 octobre dernier a eu lieu une soirée organisée par les Duchess France. Cette rencontre, a réuni une vingtaine de participants, elle s’est déroulée dans les locaux de Soat, sur le thème “Les Mains dans le Code” sur Gatling.

Pour animer la soirée, étaient présents :

– Stéphane Landelleresponsable technique du projet

– Romain Sertelondéveloppeur principal de Gatling.

Cette soirée avait pour but de présenter Gatling et nous faire participer à un atelier dans lequel nous avons découvert et appris à utiliser Gatling.

Stéphane a commencé la soirée par nous présenter Gatling, en  essayant de le comparer aux outils de test de charge présents sur le marché. Ensuite, Romain nous a présenté des cas d’utilisation avec des ateliers pour nous faire pratiquer sur des problématiques courantes.

Gatling en quelques mots

Galting est un outil qui  permet d’effectuer des tests de charge de vos applications à base de scripts écrits en Scala. Les développeurs Gatling ont voulu créer un outil différent des autres solutions offertes sur le marché qui présentent elles-mêmes des problèmes de montée en charge, à cause de l’utilisation d’un grand nombre de Threads.

Gatling est écrit en Scala et offre une implémentation à base des frameworks asynchrones Netty et AsyncHttpClient.  Gatling utilise Akka pour gérer la concurrence, la surcharge des systèmes et offrir une architecture scalable. Le projet est hébergé sous licence open-source sur Github: https://github.com/excilys/gatling

Gatling offre un outil de génération de script à partir d’une interface graphique. Le langage choisi pour l’écriture des scripts est Scala. Pas besoin de connaître ce langage, les scripts générés sont simples et compréhensibles.

Gatling fournit des graphiques, des informations pertinentes sur le résultat des tests. Ces graphiques utilisent les bibliothèques javascripts pour offrir une interface utilisateur riche.

Les technologies présentes dans l’implémentation de Gatling permettent d’utiliser seulement une quarantaine de Threads pour traiter plusieurs milliers de requêtes. Gatling est très facile d’utilisation grâce à ses performances, même pour ceux qui n’ont jamais programmé avec le langage Scala.

Gatling offre un certains nombre de fonctionnalités:  simulations, scenarii, enregistreur(Recorder), boucles, etc.

Simulations:

Une simulation est un test de charge. Elle contient plusieurs scenarii, chacun représentant un comportement utilisateur différent.

Après la définition des scenarii, on définit: le nombre d’utilisateurs, une rampe (intervalle pendant lequel les utilisateurs seront initiés) et un délai entre le début de la simulation et l’exécution du scénario.

<br />
val scenario1 = scenario("scénario n°1") // ...<br />
val scenario2 = scenario("Scénario n°2") //...</p>
<p>List(<br />
  scenario1.configure.users(150).ramp(10),<br />
  scenario2.configure.users(5).ramp(30).delay(60)<br />
)<br />

Session:

Chaque utilisateur dispose de sa propre session. Gatling stocke dedans les informations utilisateur lors de l’exécution des scenarii. Vous pouvez aussi stocker des données explicitement pour les utiliser selon votre besoin.

Les scenarii: 

Un scénario de test en Gatling est en général une classe Scala, avec une méthode “apply” qui contient :

  • La configuration du protocole HTTP

  • La définition d’entête HTTP

  • La définition du scénario

  • La définition de la simulation

</p>
<p>val scenario1 = scenario("scénarion n°1") // ...</p>
<p>val scenario2 = scenario("Scénario n°2") //...</p>
<p>List(</p>
<p>scenario1.configure.users(150).ramp(10),</p>
<p>scenario2.configure.users(5).ramp(30).delay(60)</p>
<p>)</p>
<p>

L’enregistreur (Recorder):

GatlingRecorder est un module qui automatise l’écriture des scenarii pour Gatling. Il s’agit d’un proxy entre le navigateur et votre application. Ainsi, vous pouvez naviguer à travers votre application pour enregistrer vos scenarii.

le Recorder peut-être lancé depuis le script:

<br />
$GATLING_HOME/bin/recorder.sh<br />

Les Rapports:

Gatling génère automatiquement des rapports à la fin de la simulation, sous forme de pages HTML avec des librairies de Chart en Javascript.

Conclusion

Gatling est un outil de tests de charge puissant ; simple à utiliser si on le compare avec les outils de test de charge du marché (Jmeter par exemple), il se démarque par sa faible consommation de ressources. J’aimerais bien dans les prochaines versions pouvoir utiliser Gatling avec des protocoles autres que HTTP.

Télécharger Gatling: https://gatling-tool.org/

Github: https://github.com/excilys