Gatling, deuxième salve !

Posté le 10 février 2018

Rappel de Gatling

Je vous propose de relire mon petit billet au sujet de Gatling, un outil bien sympa pour faire des tests de performances. Il est rapide et simple à mon goût.

Allez, j’ai rechargé : on passe à l’étape suivante : Cassons du forms !!

Remplir des formulaires

Bon, la dernière fois, on avait fait que des GET.
En fait les formulaires, c’est aussi simple: Pensez juste à bien positionner le header.
On remplace le GET par un POST et on passe les paramètres avec formParam


val myFormHeaders = Map("Content-Type" -> "application/x-www-form-urlencoded")
val edit = exec(http("Form")
  .headers(myFormHeaders)
  .post("/personnes")
  .formParam("nom", "Dupond")
  .formParam("prenom", "Jean"))

Fichiers de variables

Bon, depuis le début, on code en dur les appels et surtout la donnée. Rejouer mille fois le même scénario avec “Jean Dupond” va générer du cache et donc on s’éloigne de la réalité.
Faisons travailler les caches en injectant de la donnée aléatoire !

On part d’un fichier “personnes.csv” positionné dans user-files/data/

nomPersonne, prenomPersonne
Gamotte, Norbert
terrieur,alain
terieur,alex
duff,john

Ensuite dans chacun de vos objets, on déclare un objet feeder pour charger le fichier.


val feederPersonnes = csv("personnes.csv").random

val myFormHeaders = Map("Content-Type" -> "application/x-www-form-urlencoded")
val edit =
  feed(feederPersonnes)
  .headers(myFormHeaders)
  .exec(http("Form")
  .post("/personnes")
  .formParam("nom", "${nomPersonne}")
  .formParam("prenom", "${prenomPersonne}"))

Ainsi à chaque appel de “edit”, on essaye avec un nom/prenom aléatoire.

Si vous cherchez des fichiers de nom/prénom aléatoire, je vous propose ce site

Voilà, vous êtes prêt à remplir des bases de données entières ! Tant pis, fallait mettre un captcha !

N.B. : J’ai suffixé chaque variable par le nom du fichier pour éviter la redondance des noms de variables. Ainsi vous pouvez faire nomPersonne, nomOrdinateur, nomCheval …etc

Allons y Alonso.. euh non Jenkins !

Bon, je suis cash : le plugin gatling pour jenkins m’emmerde. Pourquoi ne proposer que 3 pauvres graphiques quand on voit la richesse d’un compte rendu? Are you serious? Mon prochain objectif sera de l’automatiser par Jenkins en proposant une solution pour visionner les résultats complets.

On est bien là?

L’utilisation de Gatling avance et j’aime vraiment cet outil. Il ne manque plus que la possibilité d’importer des cas de tests séléniums sous forme de jar ou autre et là, ca sera fantastique !