Intro à Gatling

Introduction à Gatling

1. Vue d'ensemble

Gatling est unload testing tool qui est livré avec un excellent support du protocoleHTTP - ce qui en fait un très bon choix pour tester la charge de tout serveurHTTP.

Ce guide rapide vous montrera commentsetup a simple scenario pour tester la charge d'un serveurHTTP.

Gatlingsimulation scripts are written in Scala, mais ne vous inquiétez pas - l’outil vient nous aider avec une interface graphique nous permettant d’enregistrer le scénario. Une fois que nous avons terminé l'enregistrement du scénario, l'interface graphique crée le scriptScala représentant la simulation.

Après avoir exécuté la simulation, nous avons unHTML reports prêt à être présent.

Enfin, l’architecture de Gatlingis asynchronous. Ce type d'architecture nous permet d'implémenter les utilisateurs virtuels sous forme de messages plutôt que de threads dédiés, ce qui les rend très économiques en ressources. Ainsi, l'exécution de milliers d'utilisateurs virtuels simultanés n'est pas un problème.

Il convient également de noter que le moteur principal est en faitprotocol agnostic, il est donc parfaitement possible d’implémenter la prise en charge d’autres protocoles. Par exemple, Gatling propose actuellement le support deJMS.

2. Créer un projet à l'aide de l'archétype

Although we can get Gatling bundles as a .zip we choose to use Gatling’s Maven Archetype. This allows us to integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system. Be careful as Gatling require a JDK8.

A partir de la ligne de commande, tapez:

mvn archetype:generate

Ensuite, lorsque vous y êtes invité:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):

Type:

gatling

Vous devriez alors voir:

Choose archetype:
1: remote ->
  io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Tapez:

1

pour sélectionner l'archétype, puis sélectionnez la version à utiliser (choisissez la dernière version).

Sélectionnez les nomsgroupId,artifactId,version etpackage pour les classes avant de confirmer la création de l'archétype.

Terminez en important l'archétype dans un IDE - par exemple dans lesScala IDE (basé sur Eclipse) ou dansIntelliJ IDEA.

3. Définir un scénario

Avant de lancer l'enregistreur, nous avons besoin dedefine a scenario. Ce sera une représentation de ce qui se passe réellement lorsque les utilisateurs naviguent dans une application Web.

Dans ce tutoriel, nous utiliserons l'application fournie par l'équipe de Gatling à des fins d'exemple et hébergée à l'URLhttp://computer-database.gatling.io.

Notre scénario simple pourrait être:

  • Un utilisateur arrive à l'application.

  • L’utilisateur recherche ‘amstrad '.

  • L'utilisateur ouvre l'un des modèles associés.

  • L'utilisateur retourne à la page d'accueil.

  • L'utilisateur itère à travers les pages.

4. Configuration de l'enregistreur

Tout d'abord, lancez la classeRecorder depuis l'EDI. Une fois lancée, l'interface graphique vous permet de configurer la manière dont les demandes et les réponses seront enregistrées. Choisissez les options suivantes:

  • 8000 comme port d'écoute

  • Paquetorg.example.simulation

  • nom de classeRecordedSimulation

  • Follow Redirects? vérifié

  • Automatic Referers? vérifié

  • Stratégie de filtrageBlack list first sélectionnée

  • .\.css,.\.js et.*\.ico dans les filtres de liste noire

setting

 

Nous devons maintenant configurer notre navigateur pour utiliser le port défini (8000) choisi lors de la configuration. C'est le port auquel notre navigateur doit se connecter pour que leRecorder puisse capturer notre navigation.

Voici comment faire avec Firefox, ouvrez les paramètres avancés du navigateur, puis accédez au panneau Réseau et mettez à jour les paramètres de connexion:

 

proxy settings

5. Enregistrer le scénario

Maintenant que tout est configuré, nous pouvons enregistrer le scénario que nous avons défini ci-dessus. Les étapes sont les suivantes:

  1. Commencez l’enregistrement en cliquant sur le bouton ‘Démarrer’

  2. Accédez au site Web:http://computer-database.gatling.io

  3. Rechercher des modèles avec "amstrad" dans leur nom

  4. Sélectionnez "Amstrad CPC 6128".

  5. Retournez à la page d'accueil

  6. Itère plusieurs fois dans les pages du modèle en cliquant sur le boutonNext

  7. Cliquez sur le bouton 'Stop & save'

La Simulation sera générée dans le packageorg.example défini lors de la configuration sous le nomRecordedSimulation.scala

6. Lancer une simulation avec Maven

Pour exécuter notre simulation enregistrée, nous devons mettre à jour nospom.xml:


    io.gatling
    gatling-maven-plugin
    2.2.4
    
        
            test
            execute
            
                true
            
        
    

Ceci nous a permis d’exécuter la simulation en phase de test. Pour lancer le test, lancez simplement:

mvn test

Lorsque la simulation est terminée, la console affiche le chemin d'accès aux rapports HTML.

Remarque: la configuration<disableCompiler>true</disableCompiler> est utilisée car nous utiliserons Scala avec maven. Cet indicateur garantira que nous ne finirons pas par compiler notre simulation deux fois. Plus de détails sont disponibles surGatling docs.

7. Examen du résultat

Si nous ouvrons lesindex.html à l'emplacement suggéré, les rapports ressemblent à ceci:

reports

8. Conclusion

[.iframe-fluid] ##

Dans ce tutoriel,we have exploredteste la charge d'un serveur HTTP avec Gatling. Les outils nous permettent d'enregistrer une simulation basée sur un scénario définiwith the help d'une interface GUI. Une fois l'enregistrement terminé, nous pouvons lancer notre test. Le rapport de test sera sous forme de CV HTML.

Pour construire notre exemple, nous avons choisi d'utiliser un archétype maven. Cela nous aideto integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system.

L'exemple de code peut être trouvé dans lesGitHub project.