Littlewing : Partager des variables entre scénarios gatling
jeudi 21 novembre 2019 à 22:12Je suis en train de mettre en œuvre des tests de performance avec Gatling. Un des principaux outils libres de tests de performance.
J’ai eu récemment à résoudre un « petit » soucis : je souhaitai partager des variables entre plusieurs scénarios. Il existe pas mal de solutions sur stackoverflow. J’ai condensé certaines d’entre elles pour les adapter à mon besoin.
Ces variables sont issues de exécution d’une seule requête et sont automatiquement injectées dans les scénarios suivants. Ce mécanisme permet par exemple de récupérer un jeton d’un serveur d’identification et de l’injecter pour le scénario que l’on souhaite tester.
Pour ce faire, il faut ajouter une variable de type LinkedBlockingDeque
et injecter le contenu choisi via la session
val holder = new LinkedBlockingDeque[String]() ... val firstScenario = scenario("First Simulation") .exec(http("first scenario") .post("/base/url1") .check(jsonPath("$.my_variable").find.saveAs("variable"))) .exec(session => { holder.offerLast(session("variable").as[String]) session} );
Maintenant on peut l’utiliser dans un autre scénario comme feeder:
val secondScenario = scenario("Second Simulation") .feed(sharedDataFeeder)
Voici l’exemple complet
<style>.gist table { margin-bottom: 0; }
En espérant que cela puisse aider à certain.e.s d’entre vous
Original post of Littlewing.Votez pour ce billet sur Planet Libre.
Articles similaires
- Littlewing : Extraire les données d’une base de données relationnelle avec Spark (07/10/2015)
- Littlewing : Ma configuration SBT (15/10/2015)
- Littlewing : Docker compose (27/11/2015)
- Littlewing : Utilisation de spark en mode streaming (10/12/2015)
- Littlewing : Devoxx 2016 (22/04/2016)