gatling tutorial getting started with gatling load testing
Ce didacticiel vidéo Gatling fournit une revue complète de Gatling, y compris les fonctionnalités, les étapes d'installation et des exemples d'utilisation de Gatling Simulation Recorder:
Gatling est un framework de test open source basé sur Scala. Il gagne beaucoup en popularité ces jours-ci avec plus de 3 millions de téléchargements au cours des 3 dernières années.
Il est disponible en version open-source et en version entreprise appelée Gatling Frontline avec plus d'intégrations et de soutien de la part de l'équipe Gatling. Mais tous les cas d'utilisation pratiques peuvent être travaillés en utilisant l'édition communautaire Gatling qui est gratuite et open-source.
Ce que vous apprendrez:
Tutoriel vidéo Gatling
Voyons les étapes nécessaires pour démarrer avec Gatling. Nous aborderons également certaines des fonctionnalités importantes de Gatling dans le cadre de ce tutoriel.
Voici un didacticiel vidéo sur l'introduction de Gatling:
Installation
Gatling peut être installé de 2 manières différentes. Cela peut s'expliquer comme suit:
#1) En utilisant Gatling comme outil autonome, vous pouvez simplement installer le programme d'installation / application, en utilisant le Gatling officiel site Internet et suivez les instructions d'installation.
Veuillez noter que le dossier zip installé contient à la fois des fichiers shell et batch, ce qui permet à Gatling d'être utilisé sur différents systèmes d'exploitation tels que Windows, MacOS, Linux / Unix, etc.
Le programme d'installation n'est rien d'autre qu'un enregistreur de script Gatling basé sur Java, qui enregistre les actions des utilisateurs via le navigateur de l'outil et qui peut ensuite être converti en un script ou un scénario qui doit être chargé et testé. Nous verrons cela en détail dans les prochaines sections.
#deux) Une autre façon d'installer / d'utiliser Gatling est de l'utiliser comme package via Maven / Gradle ou via les outils de construction Scala.
Un point important à noter ici est que les scripts Gatling sont tous basés sur Scala, donc la création d'un projet basé sur Scala pourrait utiliser la bibliothèque Gatling qui peut être importée par n'importe quel outil de construction comme Maven / Gradle ou SBT.
Caractéristiques de Gatling
Ce sont les suivants:
# 1) Architecture asynchrone et threads légers
Gatling a une architecture avancée basée sur la boîte à outils Akka et est entièrement asynchrone. Cela lui donne un avantage par rapport à d'autres outils de test de performances comme JMeter où chaque thread correspond à un seul utilisateur.
Ici, un seul thread peut simuler plusieurs utilisateurs car il dispose d'une architecture de messagerie via le modèle Actor.
En un mot, un test Gatling peut gérer un certain nombre d'utilisateurs simultanés par machine par rapport à d'autres outils tels que Jmeter et se traduit donc par une économie considérable de CPU et de RAM.
Lecture recommandée => Modèle d'acteur et architecture asynchrone de Gatling
# 2) Le langage spécifique au domaine rend les tests lisibles
Les scripts Gatling sont écrits en Scala et ont un DSL convivial qui rend les scripts hautement lisibles et moins sujets aux erreurs. Pour plus de détails sur Gatling DSL, veuillez consulter ici .
# 3) Support indépendant du protocole
Gatling prend en charge une grande variété de protocoles, notamment les sockets HTTP, HTTPS et Web. Il a également des extensions pour les requêtes / scripts SQL de test de charge.
# 4) Rapports et assertions
Gatling fournit un support prêt à l'emploi pour la création de rapports HTML détaillés pour les scénarios exécutés et a également des capacités pour appliquer des assertions sur les demandes individuelles dans les scénarios - Par exemple, Temps de réponse, validation du contenu JSON, etc.
# 5) Enregistreur de test basé sur une interface graphique conviviale
Gatling est livré avec un enregistreur de test graphique facile à utiliser qui peut générer un script de simulation en enregistrant l'activité ou les actions de l'utilisateur sur un navigateur Web. Les scripts générés sont des scripts basés sur Scala qui pourraient être exécutés ultérieurement et peuvent être modifiés selon les exigences.
Application sous test et enregistrement de script d'échantillon
Pour créer un exemple de simulation, nous utiliserons Application hébergée officiellement fournie par Gatling
Nous utiliserons l'enregistreur de simulation de Gatling pour commencer à créer une charge et à faire des tests de performances. Avant d'aller plus loin, discutons du scénario dans lequel nous voulons charger le test.
Le scénario est un cas d'utilisation que nous essayons de tester de charge. Qu'est-ce que cela, cela signifie essentiellement que nous voulons imiter une action de l'utilisateur dans un scénario ou un ensemble d'étapes qui doivent être testées.
Par exemple, Supposons qu'un utilisateur accède à un site Web de commerce électronique tel qu'Amazon.com et recherche un produit et l'ajoute au panier et finit par payer avec les informations de paiement.
Cette action utilisateur entière est un scénario unique qui contient des étapes individuelles telles que
- Accédez au site Web Amazon.com.
- En attente du chargement de la page.
- Recherche d'un produit via la barre de recherche de produits.
- Ajout du produit au panier.
- Aller au panier et commander avec le produit.
- Effectuer le paiement.
Afin de tester le chargement de ce scénario complet, du point de vue du système ou du serveur, nous devons comprendre que ce n'est rien d'autre qu'une collection ou une série d'appels d'API qui sont effectués vers le serveur backend, et c'est ce que nous voulons dans le test de performances.
Pour cet exemple, nous utiliserons le scénario ci-dessous sur l'application hébergée Gatling:
#1) Aller vers Application hébergée Gatling .
#deux) Cliquez sur «Ajouter un nouvel ordinateur».
# 3) Sélectionnez le nom de l'ordinateur comme Apple et le nom de la société comme «Apple Inc» dans la liste déroulante, comme indiqué dans l'image ci-dessous.
# 4) Cliquez sur «Créer cet ordinateur» après avoir saisi les détails.
Configurer Gatling Recorder et enregistrer le premier script
Dans cette section, nous allons discuter de la façon de configurer l'enregistreur de test Gatling pour créer une simulation pour le scénario dont nous avons discuté dans la section précédente.
Nous utiliserons un enregistreur de simulation Gatling qui se présente sous une forme très simple, un proxy HTTP - vous devez être familier avec d'autres outils d'enregistrement HTTP comme Fiddler ou chrome proxy Http, etc. Ainsi, l'enregistreur Gatling est similaire aux fonctionnalités supplémentaires de conversion du enregistrement dans un script de simulation de test.
Voyons d'abord comment configurer l'enregistreur Gatling:
#1) Une fois le dossier zip Gatling installé, décompressez simplement le dossier à l'emplacement où vous voulez que Gatling soit installé.
comment faire une liste d'entiers en java
#deux) Après cette étape, nous devons définir 2 variables d'environnement nommées - GATLING_HOME (pour le répertoire personnel de Gatling) et GATLING_CONF (pour l'emplacement du dossier de configuration de Gatling).
En fonction du type de système d'exploitation (c.-à-d. Windows ou Mac ou Linux), définissez ces variables d'environnement avec les valeurs ci-dessous:
GATLING_HOME = {répertoire-d'installation-gatling}
Exemple:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {répertoire-d'installation-gatling} / conf
Exemple:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Une fois que les variables sont définies pour valider, vous pouvez simplement appuyer sur le terminal la commande - exportation | poignée 'GATLING' et la sortie devrait montrer les 2 variables d'environnement que nous venons de définir.
# 3) Une fois ces variables d'environnement définies, nous devons démarrer notre enregistreur de script Gatling. Pour les systèmes d'exploitation Windows, un fichier de commandes est fourni avec l'installation de Gatling et pour les systèmes d'exploitation basés sur Linux / MacOS, un fichier shell est fourni.
Voici la structure des fichiers du dossier bin:
# 4) Ainsi, en fonction du type de système d'exploitation, nous pouvons choisir le type de fichier à exécuter pour l'enregistreur en cours d'exécution. Veuillez noter qu'il y a 2 fichiers ici que nous utiliserons:
- Fichier Gatling.sh / Gatling.bat - pour exécuter le script de simulation.
- Fichier Recorder.sh / recorder.bat - pour exécuter / ouvrir l'enregistreur de simulation Gatling.
# 5) Permet d'exécuter le script de l'enregistreur pour ouvrir l'enregistreur Gatling. Utilisez le terminal Mac / Linux pour exécuter le script shell (ou exécutez directement le fichier batch Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Si les variables d'environnement sont correctement définies, la commande ci-dessus doit ouvrir l'enregistreur de script Gatling.
# 7) Notez le port Http / https dans l'enregistreur (la sélection par défaut est 8000 ou 8080) - c'est le port où l'écouteur proxy de trafic Http de Gatling est configuré. Nous pouvons changer ce numéro de port selon notre convenance (ou nous pouvons continuer avec les valeurs par défaut).
quel est le meilleur téléchargeur de vidéos youtube
# 8) Configurons maintenant le proxy Chrome pour écouter ce port - c'est-à-dire que nous voulons essentiellement acheminer notre trafic Http depuis le navigateur via cet écouteur ou enregistreur proxy.
Suivez ceci lien pour configurer un proxy sur Chrome pour différents OS.
# 9) Une fois le port configuré, nous exécuterons ensuite notre scénario sur le Application hébergée Gatling.
# dix) Avant que l'exécution du scénario ne démarre, nous devrons d'abord configurer le nom du package et le nom de la classe pour le script de test résultant, puis démarrer l'écouteur proxy en cliquant simplement sur le bouton «Démarrer» dans l'enregistreur de script.
#Onze) Dès que l'enregistreur proxy démarre, une nouvelle fenêtre apparaîtra, et elle capture essentiellement toutes les requêtes qui sont déclenchées lorsque le scénario est exécuté sur le navigateur.
N ° 12) Aller vers Application hébergée Gatling dans le navigateur.
Si vous voyez que la demande est enregistrée dans la fenêtre de l'enregistreur, cela signifie que la configuration du proxy pour le navigateur est correcte et que l'enregistreur Gatling est maintenant capable d'enregistrer les demandes selon le scénario de test en cours d'exécution (sinon, revenez à l'étape # 7 pour corriger la configuration du proxy pour le navigateur / système).
N ° 13) Maintenant, une fois que nous sommes sûrs que la configuration fonctionne correctement, cliquez sur «Effacer» pour tout supprimer de l'enregistreur et commencez à exécuter le scénario comme indiqué ci-dessous:
- Aller vers Application hébergée Gatling
- Cliquez sur «Ajouter un nouveau bouton d'ordinateur». Assurez-vous de vous retrouver sur un nouveau formulaire informatique avec l'URL du navigateur comme http://computer-database.gatling.io/computers/new
- Remplissez maintenant les valeurs dans le formulaire avec - Nom de l'ordinateur comme Apple et entreprise comme «Apple inc» ainsi que dans la liste déroulante.
- Cliquez sur 'Créer cet ordinateur' et vous serez redirigé vers le page d'accueil
- C'est tout le scénario que nous voulons exécuter et créer un script d'automatisation à l'aide de l'enregistreur de script Gatling. Une fois les étapes ci-dessus exécutées, l'enregistreur doit capturer tous les appels HTTP en cours et doit ressembler à ci-dessous.
- Veuillez noter qu'il existe également quelques commandes «PAUSE» dans le script enregistré. Ce ne sont rien d'autre que le «temps de réflexion» que l'enregistreur capture pour imiter l'action de l'utilisateur - c'est-à-dire le temps écoulé entre les demandes. Ces valeurs peuvent être configurées / modifiées une fois le script exécuté en fonction des besoins réels.
N ° 14) Afin de terminer la création du script, cliquez sur «Stop & Save» dans la fenêtre de l'enregistreur.
#quinze) Le script de simulation doit être créé dans le répertoire ou le dossier de simulation qui s'affiche sur l'écran de configuration de l'enregistreur Gatling.
Comprendre le script de simulation
Une fois le script du scénario exécuté créé, accédez au dossier de simulation et ouvrez le script.
Veuillez noter que le script sera créé avec le même package structuré que celui spécifié avant le démarrage de l'enregistreur - dans notre cas, il sera com.learn.gatling et le nom de la classe sera «AddProduct».
Ouvrons le fichier AddProduct.scala et essayons de parcourir les différentes sections du script.
Cela peut s'expliquer comme suit:
# 1) Configuration de l'installation :c'est à dire httpProtocol et en-têtes - Dans cette section, la configuration globale des données pour le script est effectuée, comme:
- Type de protocole - Http ou https,
- D'autres choses comme baseUrl à utiliser dans les requêtes suivantes.
- Informations d'en-tête - informations d'en-tête communes ainsi que les en-têtes à envoyer avec les demandes individuelles. Reportez-vous à header_0 et headers_2 dans l'extrait de code ci-dessous:
val httpProtocol = http .baseUrl('http://computer-database.gatling.io') .inferHtmlResources(BlackList('''.*.js''', '''.*.css''', '''.*.gif''', '''.*.jpeg''', '''.*.jpg''', '''.*.ico''', '''.*.woff''', '''.*.woff2''', '''.*.(t|o)tf''', '''.*.png''', '''.*detectportal.firefox.com.*'''), WhiteList()) .acceptHeader ('text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3') .acceptEncodingHeader('gzip, deflate') .acceptLanguageHeader('en-GB,en-US;q=0.9,en;q=0.8') .upgradeInsecureRequestsHeader('1') .userAgentHeader('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36') val headers_0 = Map('Proxy-Connection' -> 'keep-alive') val headers_2 = Map( 'Origin' -> 'http://computer-database.gatling.io', 'Proxy-Connection' -> 'keep-alive')
# 2) Définition du scénario: Celui-ci contient le scénario réel et l'ordre des demandes à exécuter pour recréer le scénario qui s'exécutait dans la fenêtre du navigateur.
En outre, un point important à noter ici est que nous venons de mentionner ici les URL relatives pour les demandes, au lieu de l'URL complète. C'est parce que nous allons utiliser Configuration du protocole http nous avons discuté au point 1, où les données de configuration du scénario sont définies.
val scn = scenario('AddProduct') .exec(http('request_0') .get('/computers') .headers(headers_0) .resources(http('request_1') .get('/computers/new') .headers(headers_0))) .pause(4) .exec(http('request_2') .post('/computers') .headers(headers_2) .formParam('name', 'apple') .formParam('introduced', '') .formParam('discontinued', '') .formParam('company', '1'))
# 3) Exécution du scénario: Cette section est la section la plus importante qui contient les étapes de configuration du scénario.
La configuration d'injection ici est le nombre d'utilisateurs / threads ou en d'autres termes, la charge avec laquelle nous voulons tester ce scénario.
La valeur par défaut pour un certain nombre d'utilisateurs est toujours 1 et cela peut être modifié avant l'exécution du scénario.
Veuillez également noter que nous utilisons également la définition httpProtocol dont nous avons discuté au point 1 qui contient toutes les configurations de base pour le scénario à exécuter.
setUp (scn.inject (atOnceUsers (1))). protocoles (httpProtocol)
Nous examinerons plus en détail la configuration de l'injection et du chargement dans le prochain tutoriel.
Exécution d'un test à l'aide d'un script de simulation
Maintenant, nous allons voir comment exécuter le scénario à l'aide de ce script de simulation qui a été créé à l'aide de l'enregistreur. Le script résultant qui est créé est en fait une classe basée sur Scala qui contient des détails sur le scénario qui a été exécuté via le navigateur.
Voici un didacticiel vidéo pour l'exécution de script Gatling:
L'installation de Gatling est livrée avec un script shell (pour les utilisateurs Windows, il s'agit d'un script batch) qui pourrait être utilisé pour exécuter cette simulation.
Veuillez suivre les étapes ci-dessous pour exécuter la simulation créée:
#1) Accédez au dossier bin de l'installation de Gatling ou accédez simplement à - $ GATLING_HOME / bin
#deux) Exécutez le fichier Gatling.sh pour Linux / Mac OS (ou le fichier Gatling.bat pour les utilisateurs Windows).
# 3) Dans le cas de plusieurs fichiers de script présents dans le dossier de simulation, le script demandera à l'utilisateur de sélectionner la simulation qu'il souhaite exécuter (pour simuler cela, créez le même scénario dans différents packages, et lorsque le script Gatling est exécuté, vous pouvez voir qu'il affiche 2 scripts différents).
# 4) La simulation est sélectionnée (ou elle est définie par défaut sur la simulation présente dans le dossier s'il n'y a qu'un seul script de simulation disponible).
# 5) Le script invite maintenant à ajouter une description d'exécution facultative. Vous pouvez simplement l'ignorer et appuyer sur Entrée pour démarrer l'exécution de la simulation.
# 6) Pendant l'exécution de la simulation, vous pouvez voir les rapports d'exécution imprimés sur le terminal et les paramètres tels que le temps de réponse, le nombre total de demandes, les succès / échecs, etc., une vue résumée sera affichée une fois l'exécution du scénario terminée.
# 7) Gatling génère également un rapport HTML détaillé à la fin de l'exécution du scénario qui contient un grand nombre de points de données différents par rapport au scénario exécuté.
Nous examinerons les détails du rapport généré dans le prochain tutoriel.
Avantages de l'utilisation de Gatling
Gatling fournit de nombreuses fonctionnalités riches en fonctionnalités afin de créer une bonne suite de tests d'automatisation des performances en tirant parti du large DSL de Gatling ainsi que du soutien croissant de la communauté pour obtenir de l'aide et obtenir des réponses aux requêtes.
Il est important de noter ici que contrairement à d'autres outils comme JMeter, Gatling implique une courbe d'apprentissage abrupte, mais au lieu de cela, il offre de nombreuses capacités de programmation pour créer un ensemble robuste et entièrement fonctionnel de scripts de simulation de tests de performances et de charge.
Certains de ces avantages sont les suivants:
- Il est léger et permet d’utiliser un seul thread pour plus d’une requête, contrairement à la plupart des autres outils de performance où un thread est assimilé à un utilisateur.
- L'utilisation d'un seul thread pour plusieurs demandes permet à Gatling de mieux évoluer et de générer une charge plus importante même sur une seule machine.
- Gatling offre la possibilité de fonctionner en mode distribué lorsqu'il y a une charge énorme qui doit être simulée.
- Prend en charge de nombreux autres protocoles autres que HTTP,par exemple, Websockets, MQTT, JDBC, etc. peuvent tous être testés en utilisant Gatling.
- Gatling fournit un DSL riche en fonctionnalités - Langage spécifique au domaine, qui a une syntaxe simple et fournit des capacités puissantes lorsqu'il est combiné pour créer un script de simulation.
- Il fournit également de nombreuses capacités de contrôle de simulation complexes telles que les constructions en boucle, la simulation du temps de réflexion, la limitation des demandes au-delà du RPS souhaité, etc.
- Il possède de riches capacités de reporting prêtes à l'emploi et elles peuvent également être personnalisées en fonction des besoins.
Conclusion
Dans ce didacticiel, nous avons abordé les bases de l'utilisation de Gatling comme outil de test de charge de choix. Avec le DSL expressif et un excellent support du protocole HTTP, Gatling gagne rapidement en popularité pour être utilisé comme un outil de choix pour beaucoup.
Nous avons également découvert l'enregistreur Gatling et le lanceur de script Gatling avec un exemple de script de simulation qui a aidé à comprendre le concept de base de l'enregistrement d'un script de simulation qui pourrait être ensuite exécuté à l'aide de l'exécuteur de script Gatling.
Dans le prochain didacticiel, nous couvrirons l'écriture de scripts Gatling en tant que projets Scala - c'est-à-dire sans utiliser l'enregistreur et nous comprendrons les modèles de rapport qui sont générés lorsque Gatling termine l'exécution de la simulation.
lecture recommandée
- Test de charge avec les didacticiels HP LoadRunner
- Corrélation - Test de charge avec LoadRunner
- Tutoriel de test de trempage - Qu'est-ce que le test de trempage
- Test de charge à l'aide de LoadUI - Un outil de test de charge gratuit et open source
- Revue WebLOAD - Premiers pas avec l'outil de test de charge WebLOAD
- Tutoriel sur les tests destructifs et les tests non destructifs
- Tutoriel de test d'utilisabilité: un guide de démarrage complet
- Test de performance vs test de charge vs test de stress (différence)