SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION




                        Formation JMeter
                        Initiation et concepts avancés




Abdelhaq EL AIBI
Plan de la formation


           Introduction


           Installation et configuration de JMeter


           Création d’un Plan de test


           Exécution d'un plan de test


           Analyse des résultats de tests


           Concepts avancés


© Neoxia                                 Perf Training   2
Introduction




               Introduction
                Concepts généraux

                Démarche

                JMeter




© Neoxia                   Perf Training   3
Introduction
Concepts généraux


     Qualité logicielle :
           Test fonctionnel
           Test de performance
           Test de sécurité


     Test de charge >> test de performance
     La métrologie (test de charge) d’une application :
           Permet d’analyser et de mesurer son comportement
           lorsqu’elle est soumise à une forte charge utilisateur.
           Elle constitue un outil indispensable de la gestion de la
           qualité de service des systèmes d’information

© Neoxia                           Perf Training                       4
Introduction
Démarche


     Les tests de charge sont des moyens et non pas des fins (objectifs)
     La démarche est basée sur cinq étapes




                                                 Identification de
                             Analyse et
                                                 l’environnement
                          Recommandations
                                                      de test




                       Compagne de                      Modélisation et
                           tirs                         conception des
                                                            tests




                                     Développement
                                       des scripts




© Neoxia                                Perf Training                      5
Introduction
Démarche


Identification de l’environnement de test      Modélisation et conception des tests           Développement des scripts




                                                  Liste des scénarios fonctionnels
    Définition de (s) l’objectif (s) du test                                                      Captures des scénarios
                                                  cibles

    Avoir un environnement similaire à
                                                  Définition du jeux de données                   Paramétrage et personnalisation
    la production

    Comprendre l’architecture
                                                                                                  Optimisation des scénarios
    technique du système cible




                  Compagne de tirs                                    Analyse et Recommandations




                       Tirs de calibrage et analyse du bon
                                                                              Analyse des logs
                       fonctionnement des scénarios

                       Configuration des paramètres des tirs
                       (nombre d’utilisateurs, durée, nombre de               Analyse de fichiers des résultats
                       paliers, format des résultats

                                                                              Recommandations et optimisation


© Neoxia                                                      Perf Training                                                         6
Introduction
JMeter


     JMeter est un logiciel de tests de charge orientés performance ou
     orientés métiers sur différentes protocoles ou technologies. C’est un
     sous projet Jakarta développé par la Fondation Apache.


     JMeter peut tester les protocoles ou technologies suivants :
           Web : HTTP, HTTPS pour des sites ‘web 1.0′, web 2.0 (Ajax)
           WebServices : SOAP / XML-RPC
           Base de données via les pilotes JDBC
           Annuaire : LDAP
           Les bus logiciels utilisant JMS
           Service de messagerie : POP3, IMAP, SMTP (via un plugin)
           Service FTP




© Neoxia                                 Perf Training                       7
Installation et configuration de JMeter




              Installation et configuration



                 Installation (MS windows, Linux)

                 Composants de JMeter




© Neoxia                          Perf Training     8
Installation et configuration de JMeter
Installation (MS windows, Linux)


     JMeter est une application 100% développée en Java


           Prérequis           JVM 5 ou plus
                               Tout système d’exploitation ayant la
                               JVM (Unix, Windows, Mac OS)



     Installation :
           Il faut procéder au téléchargement via l’URL
           http://jakarta.apache.org/site/downloads/index.html du produit et le
           décompresser




© Neoxia                                    Perf Training                         9
Installation et configuration de JMeter
Composants de JMeter


     Lancement :
           Bin/jmeter.bat pour windows
           Bin/jmeter pour Unix


     Configuration

           JVM_ARGS="-Xms1024m -Xmx1024m"
           Lancement sans GUI : jmeter –n
           Lancement en mode serveur : jmeter-server (.bat)
           Fichier log : jmeter.log (dossier de lancement de jmeter)




© Neoxia                                 Perf Training                 10
Installation et configuration de JMeter
Composants de JMeter




© Neoxia                          Perf Training   11
Installation et configuration de JMeter
Composants de JMeter


     Paramétrage : bin/jmeter.properties

Attribut         Description                                                                         Obligatoire
                 Vous pouvez spécifier la classe de votre implémentation SSL si vous ne
ssl.provider                                                                                              Non
                 souhaitez pas utiliser la mise en œuvre intégrée à Java.

                 Si vous utilisez JMeter dans un environnement distribué, la liste des machines
remote_hosts     où vous avez JMeter serveurs distants. Cela vous permettra de contrôler ces              Non
                 serveurs depuis l'interface graphique de cette machine

                 Une liste des composants que vous ne voulez pas voir dans les menus de
                 JMeter. Comme JMeter a de plus en plus de composants, vous pouvez
not_in_menu      personnaliser votre JMeter pour afficher uniquement les éléments qui vous                Non
                 intéresse Vous pouvez lister leurs classname ou leur étiquette de classe (la
                 chaîne qui apparaît dans l'interface utilisateur de JMeter)

                Nom du fichier contenant les propriétés supplémentaires JMeter. Ellesdoivent
user.properties être ajoutées après le fichier de propriétés initiales, mais avant que le -q et -J        Non
                sont traitées.
                Nom du fichier contenant les propriétés des système supplémentaires. Elles
system.properti
                doivent être ajoutées avant les options -S et -D                                          Non
es


© Neoxia                                             Perf Training                                                 12
Création d’un Plan de test




             Création d’un Plan de test



                 Définition d'un plan de test

                 Description des éléments d'un plan
                 de test




© Neoxia                           Perf Training      13
Création d’un Plan de test
Définition d'un plan de test


     Un plan de test décrit une série d'étapes que JMeter va exécuter quand il
     est lancé.
     Un plan de test complet se compose d'un ou de plusieurs groupes de
     threads, de contrôleurs logiques, de contrôleurs simples, de récepteurs,
     de minuteries, des assertions et des éléments de configuration.




© Neoxia                             Perf Training                              14
Création d’un Plan de test
Description des éléments d'un plan de test


     ThreadGroup (ou groupe d’unités)
           Permet de contôler le nombre de threads que JMeter va utiliser pour
           exécuter votre test
           Ils sont les points de départ de tout plan de test. Tous les contrôleurs
           et les échantillons doivent être sous un groupe de threads.
           D'autres éléments, les auditeurs, par exemple, peuvent être placés
           directement sous le plan de test, auquel cas ils s'appliquent à tous
           les groupes de threads.
           Les propriétés d’un ThreadGroup vous permettent de:
                Réglez le nombre de
                threads
                Définissez la période de
                montée en puissance
                Réglez le nombre de fois
                où le test devra être lancé




© Neoxia                                      Perf Training                           15
Création d’un Plan de test
Description des éléments d'un plan de test


     Contrôleurs
           JMeter a deux types de contrôleurs: Simples et contrôleurs logiques.

              JMeter utilise les contrôleurs simples pour envoyer des requêtes à un
              serveur.
                    Par exemple, ajouter une requête « HTTP Sampler » si vous souhaitez
                    que JMeter envoie une requête HTTP.
              JMeter utilise les contrôleurs logiques afin de personnaliser la logique qui
              doit utiliser JMeter pour décider du moment de l’envoi des requêtes.
                    Par exemple, vous pouvez ajouter un contrôleur logique Interleave afin
                    d'alterner entre deux échantillonneurs de requête HTTP




© Neoxia                                     Perf Training                                   16
Création d’un Plan de test
Description des éléments d'un plan de test


     Listeners/récepteurs
              Les récepteurs donnent accès aux informations collectées par JMeter lors de l’exécution
              des tirs de charge.

              Les récepteurs permettent également de diriger les données vers un fichier pour une
              utilisation ultérieure.
              Chaque récepteur dans JMeter fournit un champ pour indiquer le fichier de stockage des
              données. Il y a aussi un écran de configuration permettant de configurer les champs à
              sauvegarder et le format de stockage (CSV ou XML).




© Neoxia                                         Perf Training                                          17
Création d’un Plan de test
Description des éléments d'un plan de test


     Timers

           Par défaut, un fil JMeter envoie des requêtes sans faire de pause entre chaque
           demande. Il est fortement recommander de spécifier un délai (principalement le
           délai de saisie manuelle des données) en ajoutant l'une des minuteries
           disponibles pour votre groupe de threads. Si vous n'ajoutez pas un retard,
           JMeter pourraient submerger votre serveur en effectuant trop de requêtes dans
           un délai très court




© Neoxia                                     Perf Training                                  18
Création d’un Plan de test
Description des éléments d'un plan de test


     Assertion
              Les assertions permettent d'affirmer des faits sur les réponses reçues par le
              serveur à tester. En utilisant une assertion, vous pouvez essentiellement
              tester que votre application retourne les résultats que vous attendez..

              Par exemple, vous pouvez affirmer que la réponse à une requête contient un
              texte particulier.




© Neoxia                                     Perf Training                                    19
Création d’un Plan de test
Description des éléments d'un plan de test


     Elément de configuration

              Un élément de configuration collabore étroitement avec un
              échantillonneur. Bien qu'il n'envoie pas de requêtes, il peut ajouter ou
              modifier les demandes

              Un élément de configuration est accessible à partir de l'intérieur de la
              branche d'arbre où vous le placez. Par exemple, si vous placez un
              gestionnaire de cookies HTTP à l'intérieur d'un contrôleur logique simple, le
              gestionnaire de cookie ne sera accessible aux contrôleurs requête HTTP que
              lorsque vous le placez à l'intérieur du contrôleur logique simple


           Le Cookie Manager est accessible aux requêtes
           HTTP "une page Web" et "Page Web 2", mais pas
           à la requête «Page Web 3 »




© Neoxia                                      Perf Training                                   20
Création d’un Plan de test
Description des éléments d'un plan de test


     Pre-Processor
              Un préprocesseurs exécute une action préalable à une demande

              Un préprocesseur est le plus souvent utilisé pour modifier les paramètres
              d'une demande d'échantillons juste avant qu'elle ne fonctionne, ou de mettre
              à jour les variables qui ne sont pas extraites du texte de la réponse

       Post-Processor
               Un post-processeur exécute une action après une demande

               Un post-processeur est souvent utilisé pour traiter les données de réponse,
               et pour en extraire des valeurs.




© Neoxia                                     Perf Training                                   21
Création d’un Plan de test
Description des éléments d'un plan de test


      Les règles de portée 1/2
           L'arbre de test JMeter contient des éléments qui sont à la fois hiérarchiques et
           ordonnés

           Lorsque vous créez votre plan de test, vous allez créer une liste ordonnée de
           demandes d'échantillon (via Samplers) qui représentent un ensemble d'étapes à
           exécuter. Ces demandes sont souvent organisées au sein des contrôleurs qui
           sont également ordonnés




                L'ordre des requêtes sera, un, deux, trois, quatre.




© Neoxia                                           Perf Training                              22
Création d’un Plan de test
Description des éléments d'un plan de test


      Les règles de portée (2/2)
           Une assertion, par exemple, est hiérarchique dans l'arbre de test. Si son père
           est une demande (request), il est alors appliquée à cette demande. Si son père
           est un contrôleur, elle affecte toutes les demandes qui sont descendantes de ce
           contrôleur




                Assertion#1 est appliquée à la requête ‘one’,
                Assertion#2 est appliquée aux requêtes ‘two’ et ‘three’.




© Neoxia                                          Perf Training                              23
Création d’un Plan de test
Description des éléments d'un plan de test


      Propriétés et variables de JMeter
              Les propriétés de JMeter sont globales, elles sont utilisées pour définir des
              paramètres d’utilisation de l’outil. Elles sont définies dans le fichier jmeter.properties

              remote_hosts : permet la définition des adresses des serveurs pour l’exécution des
              tests à distance.

              Les variables sont locales à chaque groupe de thread de JMeter.

              Si une variable est mis à jour par un thread, seule sa copie dans le thread est
              modifiée.




             Les variables et les propriétés de JMeter sont sensibles à la casse


© Neoxia                                       Perf Training                                          24
Création d’un Plan de test
Exemple : application petClinic




           Scénarios fonctionnels :
               Gestion des animaux domestiques
               Gestion des propriétaires
               Gestion des RDV médicaux



© Neoxia                                    Perf Training   25
Création d’un Plan de test
Exemple : application petClinic


     Objectifs :

           Définition d’une stratégies de tirs de charge
           Élaboration d’un premier plan de test (simple) au niveau JMeter




© Neoxia                                Perf Training                        26
Exécution d'un plan de test




             Exécution d'un plan de test



                 Exécution d'un plan de test

                 Configuration de la plateforme de
                 tests (injecteurs et contrôleur)




© Neoxia                          Perf Training      27
Exécution d'un plan de test
Exécution d'un plan de test


     Avant exécution :
           Il faut raffiner le plan de test au niveau de JMeter
           Donner des noms significatifs au requêtes et étapes du plan de test
           Définir les assertions
           La plan de test doit obligatoirement contenir un récepteur de type arbre
           de résultat ( au début)


     Tir de vérification:
           Il faut lancer un premier test pour valider les assertions




© Neoxia                                  Perf Training                               28
Exécution d'un plan de test
Exécution d'un plan de test


     Configuration du premier palier (tir de calibrage):
           Il faut définir un nombre minimale d’utilisateurs virtuels,
           Il faut définir la durée de montée en charge (ramp-up),
           Et la durée des tirs


     Lancement des tirs
            Jmeter.bat -n -t planTest.jmx

     Vérification des résultat




© Neoxia                                    Perf Training                29
Exécution d'un plan de test
Exécution d'un plan de test


     Configuration finale des tirs
           Suite aux objectifs définis dans la première phase du test de charge, on
           définit le nombre des utilisateurs, le nombre d’itérations et la durée ramp-
           up.




© Neoxia                                  Perf Training                               30
Exécution d'un plan de test
Tirs distribués (contrôleur, injecteurs)


     Généralement, une seule machine n’est pas capable d’effectuer un tir de
     charge simulant un grand nombre d’utilisateurs


     Selon l’expérience : une machine Core Duo, 1Go           100 utilisateurs
     simultanés.


     JMeter offre la possibilité de répartir les tirs de charge sur plusieurs
     machines : tirs de charge distribués.




© Neoxia                                   Perf Training                         31
Exécution d'un plan de test
Tirs distribués (contrôleur, injecteurs)


     Architecture Globale
                                                           Contrôleur




   Injecteur 1                                                                       Injecteur 2




                                                             Serveur Web : système cible



© Neoxia                                   Perf Training                                           32
Exécution d'un plan de test
Tirs distribués (contrôleur, injecteurs)


     Configuration 1/2:
           Le contrôleur et les injecteurs ainsi que le serveur de test doivent être
           liés par un réseau local.
           Il faut installer JMeter sur le contrôleur et les injecteurs

            Sur le contrôleur, on édite le
           fichier user.properties (dans JMETER_HOME/bin/), on ajoute la ligne
           suivante à la fin :     remote_hosts=injec1,injec2
           Les noms injec1 et injec2 doivent correspondre aux IP des machines
           injecteurs (utilisation du fichier hosts)
           Utilisation du ‘démarrage distant au niveau contrôleur




© Neoxia                                   Perf Training                               33
Exécution d'un plan de test
Tirs distribués (contrôleur, injecteurs)


     Configuration 2/2:
           Au niveau injecteur on lance JMeter en mode serveur avec la commande
           suivante : JMETER_HOME/bin/jmeter-server (sous Linux)
                           JMETER_HOMEbinjmeter-server.bat (sous Windows)


           Fichier de résultats : il sera créé au niveau contrôleur seulement

           Les paramètres du plan de test seront configurés au niveau contrôleur
           seulement. Celui-ci se chargera d’envoyer ce plan de test au différents
           injecteurs pour être exécuté.

           Les injecteurs envoient les résultats au contrôleur pour les consolider
           dans un seul fichier.
           Il faut penser à utiliser un format CSV pour les résultats.

           Le contrôleur et les injecteurs doivent être synchronisés (même
           dateTime)
© Neoxia                                           Perf Training                     34
Exécution d'un plan de test
Tirs distribués (contrôleur, injecteurs)


     Lancement des tirs

           Pour lancer le tir sur tous les injecteurs en même temps, il suffit de
           choisir le menu Run >Remote Start All. (utilisation du GUI)

           JMETER_HOME/bin/jmeter -n -r -t planTest.jmx (mode sans GUI)




© Neoxia                                   Perf Training                            35
Analyse des résultats de tests




             Analyse des résultats de tests




                Descriptions et exploitation des résultats
                de tests (CSV, Excel, graphique)


                Analyse des fichiers de log




© Neoxia                            Perf Training            36
Analyse des résultats de tests
Formats (CSV, XML)


     Mode graphique : plusieurs types de récepteurs

     Basés tous sur le même contenu.


     JMeter offre la possibilité de paramétrer les informations collectées




© Neoxia                              Perf Training                          37
Analyse des résultats de tests
Formats (CSV, XML)


     Format : XML ou CSV
     L’entête réponse des requêtes
     Le code HTTP de la réponse (200, 404, 500…)
     Le nom de la requête dans le plan de test
     La réponse des requêtes
     Succès : true ou false
     Horodatage : date d’exécution en milisecondes
     Nom de fichier de réponse
     Nom de la machine exécutant les tirs (injecteurs)
     Libellé des colonnes (CSV)
     L’entête de la requête
     Latence : millisecondes déroulés avant l’exécution
     Nom d’unité : nom du groupe de thread +Index
     url : chemin attaqué par la requête
     Nombre d’unités actives : les utilisateurs simultanés
© Neoxia                                   Perf Training     38
Analyse des résultats de tests
Formats (CSV, XML)


     Messages d’erreur des assertions
     Message de réponse
     Temps écoulé : durée passée depuis le début des tirs
     Nombre d’octets : taille de la réponse




© Neoxia                                 Perf Training      39
Analyse des résultats de tests
Formats (CSV, XML)


     Arbre de résultats 1/2




© Neoxia                         Perf Training   40
Analyse des résultats de tests
Formats (CSV, XML)


     Arbre de résultats 2/2

           Possibilité de voir la réponse sous plusieurs format :
               HTML
               HTML (complet)
               JSON
               Regexp Tester
               Text
               XML
           Util lors de la création et l’optimisation du plan de test




© Neoxia                                   Perf Training                41
Analyse des résultats de tests
Formats (CSV, XML)


     Rapport consolidé
           Il se base sur les noms des requêtes pour afficher des indicateurs de
           temps de réponse




© Neoxia                                 Perf Training                             42
Analyse des résultats de tests
Formats (CSV, XML) : exploitation


     Utilisation des rapport sous format CSV (bien paramétré)




© Neoxia                            Perf Training               43
Analyse des résultats de tests
Formats (CSV, XML) : exploitation


     Utilisation d’un tableur (MS EXCEL) pour générer des tableaux et des
     graphes d’analyse.

           Utilisation de la notion de tableau croisé de EXCEL
           Utilisation de la notion de graphe croisé de EXCEL




© Neoxia                                 Perf Training                      44
Analyse des résultats de tests
Formats (CSV, XML) : exploitation




© Neoxia                            Perf Training   45
Analyse des résultats de tests
Formats (CSV, XML) : exploitation




© Neoxia                            Perf Training   46
Analyse des résultats de tests
Analyse du log


     Vérification du bon déroulement des tirs de charge.
     Analyse des erreurs liés au plan de test ou bien à la configuration des tirs




© Neoxia                              Perf Training                             47
Concepts avancés




  Concepts avancés

                                                              Paramétrage de la monté en charge
       Capture des scénarios
                                                              dynamique : tirs par palier

                                                              Personnalisation du plan de test par
       Utilisation des expressions régulières
                                                              palier d’utilisateurs

                                                              Gestion du temps de réflexion :
       Variabilisation des données des tirs
                                                              ‘Think time’

                                                              Utilisation de JMeter sans GUI




© Neoxia                                      Perf Training                                          48
Concepts avancés
Capture des scénarios


     L’édition manuelle des plans de test est compliquée


     JMeter offre la possibilité de capturer le scénario fonctionnel


     Accélération de la phase de création de plan de test


     Principe :
           La fonctionnalité ‘PROXY ’ permet d’enregistrer une session de
           navigation directement dans des échantillons de requêtes HTTP
           Personnalisation facile




© Neoxia                                Perf Training                       49
Concepts avancés
Capture des scénarios


     Démarche 1/:

           Lancer JMeter




           Sélectionner Plan de travail, puis ajouter un élément hors test
           > Serveur Proxy HTTP.




© Neoxia                                 Perf Training                       50
Concepts avancés
Capture des scénarios


     Démarche 2/:

           Sur l’item Plan de test, ajouter un élément Groupe d’unités.




           Sélectionner le nouvel élément Groupe d’unités, ajouter un élément
           Contrôleurs Logiques >Contrôleur Enregistreur.




© Neoxia                                Perf Training                           51
Concepts avancés
Capture des scénarios


     Démarche 3/:
           Ajouter un récepteur Arbre de résultats au proxy pour pouvoir
           visualiser les réponses et personnaliser le plan de test après.




© Neoxia                                Perf Training                        52
Concepts avancés
Capture des scénarios


     Démarche 4/:
           Paramétrage du serveur proxy




© Neoxia                              Perf Training   53
Concepts avancés
Capture des scénarios


     Démarche 5/:
           Paramétrage du serveur proxy
              Port
              Cible d’enregistrement
              Paramètres des requêtes : type, redirection, …
              Ajouter une Assertion Réponse
              URL : motifs à exclure : exemple « .*.png »


           Lancement du serveur proxy




© Neoxia                                 Perf Training         54
Concepts avancés
Capture des scénarios


     Démarche 6/:
           Paramétrage du navigateur (exemple : Firefox)




      adresse du proxy




   port du proxy




© Neoxia                               Perf Training       55
Concepts avancés
Utilisation des expressions régulières


     Cas d’utilisation :
           Scénario fonctionnel avec des étapes dépendantes

           Exemple : Création d’un adhérent puis ajout d’un bénéficiaire. Jmeter a
           besoin de récupérer le numéro de l’adhérent après l’ajout et l’utiliser pour
           la création de l’enfant dans le système.




           Utilisation du ‘post-processeur’ « Regular Expression Extractor »




© Neoxia                                  Perf Training                               56
Concepts avancés
Utilisation des expressions régulières




     Nom : nom de l’élément
     Appliqué sur : l’élément sur lequel l’extracteur sera appliqué
     La porté : l’extracteur sera appliqué sur le corps, l’entête, l’url ou une variable dans la requête
     Nom de référence : variable pour stocker la valeur de l’extracteur
     Expression reg: l’expression régulière à exécuter
     Canevas : Le modèle utilisé pour créer une chaîne de la correspondance trouvée. Ceci est une chaîne
     arbitraire avec des éléments spéciaux pour désigner des groupes dans l'expression régulière. La
     syntaxe pour faire référence à un groupe est la suivante: $ 1$ pour désigner le groupe 1, $ 2 $ pour
     désigner le groupe 2, $ 0 $ se réfère au résultat de l'expression entière
© Neoxia                                             Perf Training                                          57
Concepts avancés
Utilisation des expressions régulières


     Exemple :




© Neoxia                                 Perf Training   58
Concepts avancés
Variabilisation des données des tirs


     Les variables JMeter sont utilisées pour paramétrer les plans de test
           Example : URL du système cible;




           JMeter offre la possibilité de récupérer les valeurs à partir d’un fichier
           CSV.




© Neoxia                                   Perf Training                                59
Concepts avancés
Variabilisation des données des tirs


     Source de données CSV : paramétrage
           Nom de fichier : le chemin absolu et le nom du fichier. (ou bien juste le nom du fichier,
           auquel cas le fichier doit se trouver dans le classpath de Jmeter. Par exemple :
           JMETER_HOME/bin)
           Encodage du fichier : le format du fichier séléctionné (UTF-8).
           Noms des variables : le nom des variables dans lesquelles JMeter va insérer les éléments
           d’une ligne.(var1, var2, var3 …).
           Délimiteur : le séparateur utilisé dans le fichier CSV (généralement « , »).
           Recycler en fin de fichier ? : Est-ce qu’à la fin du fichier (End Of File), JMeter reprend la
           liste depuis le début pour variabiliser les variables ?
           Arrêter l’unité à la fin du fichier ? : Est-ce que l’élément Groupe d’unités dans lequel se
           trouve l’élément Source de données CSV se stoppe à la fin du fichier, quelque soit le
           nombre d’itérations prévu ?
           Mode de partage :
               Toutes les unités : le fichier est partagé par tous les utilisateurs virtuels
               Groupe d’unité courant :le fichier est utilisé par chaque group d’unité dans lequel le fichier
               apparaît
               Unité courante : chaque fichier est ouvert séparément pour chaque Unité
               Autres : éditable.




© Neoxia                                            Perf Training                                               60
Concepts avancés
Paramétrage de la monté en charge dynamique : tirs par palier


     Cas d’utilisation :
           Imaginons que nous voulons réaliser un tir de charge sur plusieurs
           étapes
                 Étape 1 : avoir 100 utilisateurs simultanés après 30 minutes
                 Étape 2 : 100 utilisateur pendant 20 minute
                 Étape 3 : introduction d’un nouveau groupe pour atteindre 200 utilisateurs
                 après 25 minutes
           Utilisateurs simultanés


                             200



                             100




                                                                                    Temps(minutes)

                                 30       20              25    45          15



© Neoxia                                       Perf Training                                   61
Concepts avancés
Paramétrage de la monté en charge dynamique : tirs par palier


     Utilisation de JMeter
           Pour modéliser un tir de charge par palier avec JMeter, on procède de la
           même façon qu’un tir simple: création et optimisation d’un plan de test.

           Dupliquer le groupe d’unités 1 pour avoir un autre avec le même contenu




           Après avoir dupliqué cette configuration, nous allons passer à la
           configuration des deux groupes pour avoir notre effet palier:


© Neoxia                                 Perf Training                            62
Concepts avancés
Paramétrage de la monté en charge dynamique : tirs par palier


     Groupe 1
           Nombre d’unités (users) : 100
           Durée de montée en charge (in seconds) : 1800


Ensuite, nous allons activer le champ programmateur de démarrage en cochant la case. Puis dans les
nouveaux champs qui deviennent visibles, nous allons modifier les deux champs suivants :
           Durée (seconds) : 8100
           Délai avant démarrage (seconds) : 5 (juste pour laisser le temps à JMeter de démarrer)
             On laissera les valeurs du Start Time et End Time. Elles seront ignorées par JMeter.




© Neoxia                                             Perf Training                                   63
Concepts avancés
Paramétrage de la monté en charge dynamique : tirs par palier


     Groupe 2
           Nombre d’unités (users) : 100
           Durée de montée en charge (in seconds) : 1500


Ensuite, nous allons activer le champ programmateur de démarrage en cochant la case. Puis dans les
nouveaux champs qui deviennent visibles, nous allons modifier les deux champs suivants :
           Durée (seconds) : 5100
           Délai avant démarrage (seconds) : 300 (50 minutes)




© Neoxia                                           Perf Training                                     64
Concepts avancés
Gestion du temps de réflexion : ‘Think time’


     Lors de la création d’un plan de test, souvent on oublie d’ajouter des
     pauses entre les requêtes pour modéliser le temps de réflexion de
     l’utilisateur.
     Un plan de test sans temps de réflexion var surcharger le serveur, la
     bande passante du réseau et la processeur de la machine où on exécute
     le test.
                      Plusieurs requêtes successives




           robot                                                Système
                                                                  cible




© Neoxia                                        Perf Training                 65
Concepts avancés
Gestion du temps de réflexion : ‘Think time’


     JMeter offre deux possibilité pour modéliser le temps de réflexion :

           Utiliser les compteurs de temps fixe dans un échantillon débogage
           (debug sampler) :
               Avantage : plusieurs types de ‘timer’
               Inconvénient : avoir des trace sur le fichier de
             résultats



           Utiliser les échantillons Action test
              Avantage : pas de traces dans le résultat



     NB: L’utilisation de plusieurs ‘timer’ dans un contrôleur n’est pas correct, ils seront exécutés
     tous avant les requêtes.



© Neoxia                                       Perf Training                                       66
Concepts avancés
Utilisation de JMeter sans GUI


     Optimisation de l’utilisation de la mémoire
     Ne pas avoir des données biaisées (à cause de la mémoire)
     JMeter peut être gêné par la gestion du ‘graphisme‘. Cela peut avoir un
     impact sur la qualité des résultats du tir



     le mode GUI est plutôt à utiliser pour créer et maintenir ses scripts
     JMeter et lancer des tirs de charges simples pour vérifier la bonne
     exécution d’un scénario. Le mode non-GUI est à utiliser pour l’exécution
     du test de charge « officiel »




© Neoxia                              Perf Training                             67
Concepts avancés
Utilisation de JMeter sans GUI


     Pour suivre le déroulement de JMeter en mode sans GUI :


     Utilisation de « summariser », pour afficher à intervalle prédéfini les
     statistiques du test en cours.



     Pour activer cette option, il faut aller simplement éditer le
     fichier JMETER_HOME/bin/jmeter.properties au niveau des paramètres suivants :




© Neoxia                                 Perf Training                               68
Exemple : application petClinic




           Scénarios fonctionnels :
               Gestion des animaux domestiques
               Gestion des propriétaires
               Gestion des RDV médicaux

           Objectif
               Élaborer un tir de charge par palier optimisé et distribué



© Neoxia                                         Perf Training              69
CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION




     Formation JMeter
     Initiation et concepts avancés

Más contenido relacionado

La actualidad más candente

Dossier de rapport_de_tests_v1.00
Dossier de rapport_de_tests_v1.00Dossier de rapport_de_tests_v1.00
Dossier de rapport_de_tests_v1.00Arnold Stellio
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmetertest test
 
Apache JMeter - A brief introduction
Apache JMeter - A brief introductionApache JMeter - A brief introduction
Apache JMeter - A brief introductionsilenceIT Inc.
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial JavaAhmed HARRAK
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter PresentationNeill Lima
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeterRachappa Bandi
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Performance testing with Apache JMeter
Performance testing with Apache JMeterPerformance testing with Apache JMeter
Performance testing with Apache JMeterRedBlackTree
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter Shub
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationJay Jha
 

La actualidad más candente (20)

Dossier de rapport_de_tests_v1.00
Dossier de rapport_de_tests_v1.00Dossier de rapport_de_tests_v1.00
Dossier de rapport_de_tests_v1.00
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmeter
 
Apache JMeter - A brief introduction
Apache JMeter - A brief introductionApache JMeter - A brief introduction
Apache JMeter - A brief introduction
 
Test de charge avec Apache JMeter
Test de charge avec Apache JMeterTest de charge avec Apache JMeter
Test de charge avec Apache JMeter
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial Java
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter Presentation
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Jenkins
JenkinsJenkins
Jenkins
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Performance testing with Apache JMeter
Performance testing with Apache JMeterPerformance testing with Apache JMeter
Performance testing with Apache JMeter
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authentication
 
Selenium cheat sheet
Selenium cheat sheetSelenium cheat sheet
Selenium cheat sheet
 

Similar a Formation jmeter

Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Microsoft
 
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2CERTyou Formation
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test Imen Turki
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerPhilippe Sentenac
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De PerformanceCabinet Openi
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endFrançois Petitit
 
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...Microsoft Technet France
 
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...CERTyou Formation
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMJason De Oliveira
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logicielUSTHB & DELTALOG
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxTasnimBenAmmar
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logiciel
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logicielRs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logiciel
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logicielCERTyou Formation
 
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...CERTyou Formation
 

Similar a Formation jmeter (20)

Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2
Rt525 g formation-essentials-of-ibm-rational-performance-tester-v8-2
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation Server
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De Performance
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
 
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...
Wa815 g formation-websphere-application-server-v8-5-5-optimisation-des-perfor...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logiciel
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logicielRs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logiciel
Rs843 g formation-ibm-rational-team-concert-v4-0-4-developpement-logiciel
 
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...
Cyjtest formation-tests-java-methode-de-plans-de-tests-et-jeux-d-essais-avec-...
 
OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
 

Último

SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 

Último (20)

SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 

Formation jmeter

  • 1. CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION Formation JMeter Initiation et concepts avancés Abdelhaq EL AIBI
  • 2. Plan de la formation Introduction Installation et configuration de JMeter Création d’un Plan de test Exécution d'un plan de test Analyse des résultats de tests Concepts avancés © Neoxia Perf Training 2
  • 3. Introduction Introduction Concepts généraux Démarche JMeter © Neoxia Perf Training 3
  • 4. Introduction Concepts généraux Qualité logicielle : Test fonctionnel Test de performance Test de sécurité Test de charge >> test de performance La métrologie (test de charge) d’une application : Permet d’analyser et de mesurer son comportement lorsqu’elle est soumise à une forte charge utilisateur. Elle constitue un outil indispensable de la gestion de la qualité de service des systèmes d’information © Neoxia Perf Training 4
  • 5. Introduction Démarche Les tests de charge sont des moyens et non pas des fins (objectifs) La démarche est basée sur cinq étapes Identification de Analyse et l’environnement Recommandations de test Compagne de Modélisation et tirs conception des tests Développement des scripts © Neoxia Perf Training 5
  • 6. Introduction Démarche Identification de l’environnement de test Modélisation et conception des tests Développement des scripts Liste des scénarios fonctionnels Définition de (s) l’objectif (s) du test Captures des scénarios cibles Avoir un environnement similaire à Définition du jeux de données Paramétrage et personnalisation la production Comprendre l’architecture Optimisation des scénarios technique du système cible Compagne de tirs Analyse et Recommandations Tirs de calibrage et analyse du bon Analyse des logs fonctionnement des scénarios Configuration des paramètres des tirs (nombre d’utilisateurs, durée, nombre de Analyse de fichiers des résultats paliers, format des résultats Recommandations et optimisation © Neoxia Perf Training 6
  • 7. Introduction JMeter JMeter est un logiciel de tests de charge orientés performance ou orientés métiers sur différentes protocoles ou technologies. C’est un sous projet Jakarta développé par la Fondation Apache. JMeter peut tester les protocoles ou technologies suivants : Web : HTTP, HTTPS pour des sites ‘web 1.0′, web 2.0 (Ajax) WebServices : SOAP / XML-RPC Base de données via les pilotes JDBC Annuaire : LDAP Les bus logiciels utilisant JMS Service de messagerie : POP3, IMAP, SMTP (via un plugin) Service FTP © Neoxia Perf Training 7
  • 8. Installation et configuration de JMeter Installation et configuration Installation (MS windows, Linux) Composants de JMeter © Neoxia Perf Training 8
  • 9. Installation et configuration de JMeter Installation (MS windows, Linux) JMeter est une application 100% développée en Java Prérequis JVM 5 ou plus Tout système d’exploitation ayant la JVM (Unix, Windows, Mac OS) Installation : Il faut procéder au téléchargement via l’URL http://jakarta.apache.org/site/downloads/index.html du produit et le décompresser © Neoxia Perf Training 9
  • 10. Installation et configuration de JMeter Composants de JMeter Lancement : Bin/jmeter.bat pour windows Bin/jmeter pour Unix Configuration JVM_ARGS="-Xms1024m -Xmx1024m" Lancement sans GUI : jmeter –n Lancement en mode serveur : jmeter-server (.bat) Fichier log : jmeter.log (dossier de lancement de jmeter) © Neoxia Perf Training 10
  • 11. Installation et configuration de JMeter Composants de JMeter © Neoxia Perf Training 11
  • 12. Installation et configuration de JMeter Composants de JMeter Paramétrage : bin/jmeter.properties Attribut Description Obligatoire Vous pouvez spécifier la classe de votre implémentation SSL si vous ne ssl.provider Non souhaitez pas utiliser la mise en œuvre intégrée à Java. Si vous utilisez JMeter dans un environnement distribué, la liste des machines remote_hosts où vous avez JMeter serveurs distants. Cela vous permettra de contrôler ces Non serveurs depuis l'interface graphique de cette machine Une liste des composants que vous ne voulez pas voir dans les menus de JMeter. Comme JMeter a de plus en plus de composants, vous pouvez not_in_menu personnaliser votre JMeter pour afficher uniquement les éléments qui vous Non intéresse Vous pouvez lister leurs classname ou leur étiquette de classe (la chaîne qui apparaît dans l'interface utilisateur de JMeter) Nom du fichier contenant les propriétés supplémentaires JMeter. Ellesdoivent user.properties être ajoutées après le fichier de propriétés initiales, mais avant que le -q et -J Non sont traitées. Nom du fichier contenant les propriétés des système supplémentaires. Elles system.properti doivent être ajoutées avant les options -S et -D Non es © Neoxia Perf Training 12
  • 13. Création d’un Plan de test Création d’un Plan de test Définition d'un plan de test Description des éléments d'un plan de test © Neoxia Perf Training 13
  • 14. Création d’un Plan de test Définition d'un plan de test Un plan de test décrit une série d'étapes que JMeter va exécuter quand il est lancé. Un plan de test complet se compose d'un ou de plusieurs groupes de threads, de contrôleurs logiques, de contrôleurs simples, de récepteurs, de minuteries, des assertions et des éléments de configuration. © Neoxia Perf Training 14
  • 15. Création d’un Plan de test Description des éléments d'un plan de test ThreadGroup (ou groupe d’unités) Permet de contôler le nombre de threads que JMeter va utiliser pour exécuter votre test Ils sont les points de départ de tout plan de test. Tous les contrôleurs et les échantillons doivent être sous un groupe de threads. D'autres éléments, les auditeurs, par exemple, peuvent être placés directement sous le plan de test, auquel cas ils s'appliquent à tous les groupes de threads. Les propriétés d’un ThreadGroup vous permettent de: Réglez le nombre de threads Définissez la période de montée en puissance Réglez le nombre de fois où le test devra être lancé © Neoxia Perf Training 15
  • 16. Création d’un Plan de test Description des éléments d'un plan de test Contrôleurs JMeter a deux types de contrôleurs: Simples et contrôleurs logiques. JMeter utilise les contrôleurs simples pour envoyer des requêtes à un serveur. Par exemple, ajouter une requête « HTTP Sampler » si vous souhaitez que JMeter envoie une requête HTTP. JMeter utilise les contrôleurs logiques afin de personnaliser la logique qui doit utiliser JMeter pour décider du moment de l’envoi des requêtes. Par exemple, vous pouvez ajouter un contrôleur logique Interleave afin d'alterner entre deux échantillonneurs de requête HTTP © Neoxia Perf Training 16
  • 17. Création d’un Plan de test Description des éléments d'un plan de test Listeners/récepteurs Les récepteurs donnent accès aux informations collectées par JMeter lors de l’exécution des tirs de charge. Les récepteurs permettent également de diriger les données vers un fichier pour une utilisation ultérieure. Chaque récepteur dans JMeter fournit un champ pour indiquer le fichier de stockage des données. Il y a aussi un écran de configuration permettant de configurer les champs à sauvegarder et le format de stockage (CSV ou XML). © Neoxia Perf Training 17
  • 18. Création d’un Plan de test Description des éléments d'un plan de test Timers Par défaut, un fil JMeter envoie des requêtes sans faire de pause entre chaque demande. Il est fortement recommander de spécifier un délai (principalement le délai de saisie manuelle des données) en ajoutant l'une des minuteries disponibles pour votre groupe de threads. Si vous n'ajoutez pas un retard, JMeter pourraient submerger votre serveur en effectuant trop de requêtes dans un délai très court © Neoxia Perf Training 18
  • 19. Création d’un Plan de test Description des éléments d'un plan de test Assertion Les assertions permettent d'affirmer des faits sur les réponses reçues par le serveur à tester. En utilisant une assertion, vous pouvez essentiellement tester que votre application retourne les résultats que vous attendez.. Par exemple, vous pouvez affirmer que la réponse à une requête contient un texte particulier. © Neoxia Perf Training 19
  • 20. Création d’un Plan de test Description des éléments d'un plan de test Elément de configuration Un élément de configuration collabore étroitement avec un échantillonneur. Bien qu'il n'envoie pas de requêtes, il peut ajouter ou modifier les demandes Un élément de configuration est accessible à partir de l'intérieur de la branche d'arbre où vous le placez. Par exemple, si vous placez un gestionnaire de cookies HTTP à l'intérieur d'un contrôleur logique simple, le gestionnaire de cookie ne sera accessible aux contrôleurs requête HTTP que lorsque vous le placez à l'intérieur du contrôleur logique simple Le Cookie Manager est accessible aux requêtes HTTP "une page Web" et "Page Web 2", mais pas à la requête «Page Web 3 » © Neoxia Perf Training 20
  • 21. Création d’un Plan de test Description des éléments d'un plan de test Pre-Processor Un préprocesseurs exécute une action préalable à une demande Un préprocesseur est le plus souvent utilisé pour modifier les paramètres d'une demande d'échantillons juste avant qu'elle ne fonctionne, ou de mettre à jour les variables qui ne sont pas extraites du texte de la réponse Post-Processor Un post-processeur exécute une action après une demande Un post-processeur est souvent utilisé pour traiter les données de réponse, et pour en extraire des valeurs. © Neoxia Perf Training 21
  • 22. Création d’un Plan de test Description des éléments d'un plan de test Les règles de portée 1/2 L'arbre de test JMeter contient des éléments qui sont à la fois hiérarchiques et ordonnés Lorsque vous créez votre plan de test, vous allez créer une liste ordonnée de demandes d'échantillon (via Samplers) qui représentent un ensemble d'étapes à exécuter. Ces demandes sont souvent organisées au sein des contrôleurs qui sont également ordonnés L'ordre des requêtes sera, un, deux, trois, quatre. © Neoxia Perf Training 22
  • 23. Création d’un Plan de test Description des éléments d'un plan de test Les règles de portée (2/2) Une assertion, par exemple, est hiérarchique dans l'arbre de test. Si son père est une demande (request), il est alors appliquée à cette demande. Si son père est un contrôleur, elle affecte toutes les demandes qui sont descendantes de ce contrôleur Assertion#1 est appliquée à la requête ‘one’, Assertion#2 est appliquée aux requêtes ‘two’ et ‘three’. © Neoxia Perf Training 23
  • 24. Création d’un Plan de test Description des éléments d'un plan de test Propriétés et variables de JMeter Les propriétés de JMeter sont globales, elles sont utilisées pour définir des paramètres d’utilisation de l’outil. Elles sont définies dans le fichier jmeter.properties remote_hosts : permet la définition des adresses des serveurs pour l’exécution des tests à distance. Les variables sont locales à chaque groupe de thread de JMeter. Si une variable est mis à jour par un thread, seule sa copie dans le thread est modifiée. Les variables et les propriétés de JMeter sont sensibles à la casse © Neoxia Perf Training 24
  • 25. Création d’un Plan de test Exemple : application petClinic Scénarios fonctionnels : Gestion des animaux domestiques Gestion des propriétaires Gestion des RDV médicaux © Neoxia Perf Training 25
  • 26. Création d’un Plan de test Exemple : application petClinic Objectifs : Définition d’une stratégies de tirs de charge Élaboration d’un premier plan de test (simple) au niveau JMeter © Neoxia Perf Training 26
  • 27. Exécution d'un plan de test Exécution d'un plan de test Exécution d'un plan de test Configuration de la plateforme de tests (injecteurs et contrôleur) © Neoxia Perf Training 27
  • 28. Exécution d'un plan de test Exécution d'un plan de test Avant exécution : Il faut raffiner le plan de test au niveau de JMeter Donner des noms significatifs au requêtes et étapes du plan de test Définir les assertions La plan de test doit obligatoirement contenir un récepteur de type arbre de résultat ( au début) Tir de vérification: Il faut lancer un premier test pour valider les assertions © Neoxia Perf Training 28
  • 29. Exécution d'un plan de test Exécution d'un plan de test Configuration du premier palier (tir de calibrage): Il faut définir un nombre minimale d’utilisateurs virtuels, Il faut définir la durée de montée en charge (ramp-up), Et la durée des tirs Lancement des tirs Jmeter.bat -n -t planTest.jmx Vérification des résultat © Neoxia Perf Training 29
  • 30. Exécution d'un plan de test Exécution d'un plan de test Configuration finale des tirs Suite aux objectifs définis dans la première phase du test de charge, on définit le nombre des utilisateurs, le nombre d’itérations et la durée ramp- up. © Neoxia Perf Training 30
  • 31. Exécution d'un plan de test Tirs distribués (contrôleur, injecteurs) Généralement, une seule machine n’est pas capable d’effectuer un tir de charge simulant un grand nombre d’utilisateurs Selon l’expérience : une machine Core Duo, 1Go 100 utilisateurs simultanés. JMeter offre la possibilité de répartir les tirs de charge sur plusieurs machines : tirs de charge distribués. © Neoxia Perf Training 31
  • 32. Exécution d'un plan de test Tirs distribués (contrôleur, injecteurs) Architecture Globale Contrôleur Injecteur 1 Injecteur 2 Serveur Web : système cible © Neoxia Perf Training 32
  • 33. Exécution d'un plan de test Tirs distribués (contrôleur, injecteurs) Configuration 1/2: Le contrôleur et les injecteurs ainsi que le serveur de test doivent être liés par un réseau local. Il faut installer JMeter sur le contrôleur et les injecteurs Sur le contrôleur, on édite le fichier user.properties (dans JMETER_HOME/bin/), on ajoute la ligne suivante à la fin : remote_hosts=injec1,injec2 Les noms injec1 et injec2 doivent correspondre aux IP des machines injecteurs (utilisation du fichier hosts) Utilisation du ‘démarrage distant au niveau contrôleur © Neoxia Perf Training 33
  • 34. Exécution d'un plan de test Tirs distribués (contrôleur, injecteurs) Configuration 2/2: Au niveau injecteur on lance JMeter en mode serveur avec la commande suivante : JMETER_HOME/bin/jmeter-server (sous Linux) JMETER_HOMEbinjmeter-server.bat (sous Windows) Fichier de résultats : il sera créé au niveau contrôleur seulement Les paramètres du plan de test seront configurés au niveau contrôleur seulement. Celui-ci se chargera d’envoyer ce plan de test au différents injecteurs pour être exécuté. Les injecteurs envoient les résultats au contrôleur pour les consolider dans un seul fichier. Il faut penser à utiliser un format CSV pour les résultats. Le contrôleur et les injecteurs doivent être synchronisés (même dateTime) © Neoxia Perf Training 34
  • 35. Exécution d'un plan de test Tirs distribués (contrôleur, injecteurs) Lancement des tirs Pour lancer le tir sur tous les injecteurs en même temps, il suffit de choisir le menu Run >Remote Start All. (utilisation du GUI) JMETER_HOME/bin/jmeter -n -r -t planTest.jmx (mode sans GUI) © Neoxia Perf Training 35
  • 36. Analyse des résultats de tests Analyse des résultats de tests Descriptions et exploitation des résultats de tests (CSV, Excel, graphique) Analyse des fichiers de log © Neoxia Perf Training 36
  • 37. Analyse des résultats de tests Formats (CSV, XML) Mode graphique : plusieurs types de récepteurs Basés tous sur le même contenu. JMeter offre la possibilité de paramétrer les informations collectées © Neoxia Perf Training 37
  • 38. Analyse des résultats de tests Formats (CSV, XML) Format : XML ou CSV L’entête réponse des requêtes Le code HTTP de la réponse (200, 404, 500…) Le nom de la requête dans le plan de test La réponse des requêtes Succès : true ou false Horodatage : date d’exécution en milisecondes Nom de fichier de réponse Nom de la machine exécutant les tirs (injecteurs) Libellé des colonnes (CSV) L’entête de la requête Latence : millisecondes déroulés avant l’exécution Nom d’unité : nom du groupe de thread +Index url : chemin attaqué par la requête Nombre d’unités actives : les utilisateurs simultanés © Neoxia Perf Training 38
  • 39. Analyse des résultats de tests Formats (CSV, XML) Messages d’erreur des assertions Message de réponse Temps écoulé : durée passée depuis le début des tirs Nombre d’octets : taille de la réponse © Neoxia Perf Training 39
  • 40. Analyse des résultats de tests Formats (CSV, XML) Arbre de résultats 1/2 © Neoxia Perf Training 40
  • 41. Analyse des résultats de tests Formats (CSV, XML) Arbre de résultats 2/2 Possibilité de voir la réponse sous plusieurs format : HTML HTML (complet) JSON Regexp Tester Text XML Util lors de la création et l’optimisation du plan de test © Neoxia Perf Training 41
  • 42. Analyse des résultats de tests Formats (CSV, XML) Rapport consolidé Il se base sur les noms des requêtes pour afficher des indicateurs de temps de réponse © Neoxia Perf Training 42
  • 43. Analyse des résultats de tests Formats (CSV, XML) : exploitation Utilisation des rapport sous format CSV (bien paramétré) © Neoxia Perf Training 43
  • 44. Analyse des résultats de tests Formats (CSV, XML) : exploitation Utilisation d’un tableur (MS EXCEL) pour générer des tableaux et des graphes d’analyse. Utilisation de la notion de tableau croisé de EXCEL Utilisation de la notion de graphe croisé de EXCEL © Neoxia Perf Training 44
  • 45. Analyse des résultats de tests Formats (CSV, XML) : exploitation © Neoxia Perf Training 45
  • 46. Analyse des résultats de tests Formats (CSV, XML) : exploitation © Neoxia Perf Training 46
  • 47. Analyse des résultats de tests Analyse du log Vérification du bon déroulement des tirs de charge. Analyse des erreurs liés au plan de test ou bien à la configuration des tirs © Neoxia Perf Training 47
  • 48. Concepts avancés Concepts avancés Paramétrage de la monté en charge Capture des scénarios dynamique : tirs par palier Personnalisation du plan de test par Utilisation des expressions régulières palier d’utilisateurs Gestion du temps de réflexion : Variabilisation des données des tirs ‘Think time’ Utilisation de JMeter sans GUI © Neoxia Perf Training 48
  • 49. Concepts avancés Capture des scénarios L’édition manuelle des plans de test est compliquée JMeter offre la possibilité de capturer le scénario fonctionnel Accélération de la phase de création de plan de test Principe : La fonctionnalité ‘PROXY ’ permet d’enregistrer une session de navigation directement dans des échantillons de requêtes HTTP Personnalisation facile © Neoxia Perf Training 49
  • 50. Concepts avancés Capture des scénarios Démarche 1/: Lancer JMeter Sélectionner Plan de travail, puis ajouter un élément hors test > Serveur Proxy HTTP. © Neoxia Perf Training 50
  • 51. Concepts avancés Capture des scénarios Démarche 2/: Sur l’item Plan de test, ajouter un élément Groupe d’unités. Sélectionner le nouvel élément Groupe d’unités, ajouter un élément Contrôleurs Logiques >Contrôleur Enregistreur. © Neoxia Perf Training 51
  • 52. Concepts avancés Capture des scénarios Démarche 3/: Ajouter un récepteur Arbre de résultats au proxy pour pouvoir visualiser les réponses et personnaliser le plan de test après. © Neoxia Perf Training 52
  • 53. Concepts avancés Capture des scénarios Démarche 4/: Paramétrage du serveur proxy © Neoxia Perf Training 53
  • 54. Concepts avancés Capture des scénarios Démarche 5/: Paramétrage du serveur proxy Port Cible d’enregistrement Paramètres des requêtes : type, redirection, … Ajouter une Assertion Réponse URL : motifs à exclure : exemple « .*.png » Lancement du serveur proxy © Neoxia Perf Training 54
  • 55. Concepts avancés Capture des scénarios Démarche 6/: Paramétrage du navigateur (exemple : Firefox) adresse du proxy port du proxy © Neoxia Perf Training 55
  • 56. Concepts avancés Utilisation des expressions régulières Cas d’utilisation : Scénario fonctionnel avec des étapes dépendantes Exemple : Création d’un adhérent puis ajout d’un bénéficiaire. Jmeter a besoin de récupérer le numéro de l’adhérent après l’ajout et l’utiliser pour la création de l’enfant dans le système. Utilisation du ‘post-processeur’ « Regular Expression Extractor » © Neoxia Perf Training 56
  • 57. Concepts avancés Utilisation des expressions régulières Nom : nom de l’élément Appliqué sur : l’élément sur lequel l’extracteur sera appliqué La porté : l’extracteur sera appliqué sur le corps, l’entête, l’url ou une variable dans la requête Nom de référence : variable pour stocker la valeur de l’extracteur Expression reg: l’expression régulière à exécuter Canevas : Le modèle utilisé pour créer une chaîne de la correspondance trouvée. Ceci est une chaîne arbitraire avec des éléments spéciaux pour désigner des groupes dans l'expression régulière. La syntaxe pour faire référence à un groupe est la suivante: $ 1$ pour désigner le groupe 1, $ 2 $ pour désigner le groupe 2, $ 0 $ se réfère au résultat de l'expression entière © Neoxia Perf Training 57
  • 58. Concepts avancés Utilisation des expressions régulières Exemple : © Neoxia Perf Training 58
  • 59. Concepts avancés Variabilisation des données des tirs Les variables JMeter sont utilisées pour paramétrer les plans de test Example : URL du système cible; JMeter offre la possibilité de récupérer les valeurs à partir d’un fichier CSV. © Neoxia Perf Training 59
  • 60. Concepts avancés Variabilisation des données des tirs Source de données CSV : paramétrage Nom de fichier : le chemin absolu et le nom du fichier. (ou bien juste le nom du fichier, auquel cas le fichier doit se trouver dans le classpath de Jmeter. Par exemple : JMETER_HOME/bin) Encodage du fichier : le format du fichier séléctionné (UTF-8). Noms des variables : le nom des variables dans lesquelles JMeter va insérer les éléments d’une ligne.(var1, var2, var3 …). Délimiteur : le séparateur utilisé dans le fichier CSV (généralement « , »). Recycler en fin de fichier ? : Est-ce qu’à la fin du fichier (End Of File), JMeter reprend la liste depuis le début pour variabiliser les variables ? Arrêter l’unité à la fin du fichier ? : Est-ce que l’élément Groupe d’unités dans lequel se trouve l’élément Source de données CSV se stoppe à la fin du fichier, quelque soit le nombre d’itérations prévu ? Mode de partage : Toutes les unités : le fichier est partagé par tous les utilisateurs virtuels Groupe d’unité courant :le fichier est utilisé par chaque group d’unité dans lequel le fichier apparaît Unité courante : chaque fichier est ouvert séparément pour chaque Unité Autres : éditable. © Neoxia Perf Training 60
  • 61. Concepts avancés Paramétrage de la monté en charge dynamique : tirs par palier Cas d’utilisation : Imaginons que nous voulons réaliser un tir de charge sur plusieurs étapes Étape 1 : avoir 100 utilisateurs simultanés après 30 minutes Étape 2 : 100 utilisateur pendant 20 minute Étape 3 : introduction d’un nouveau groupe pour atteindre 200 utilisateurs après 25 minutes Utilisateurs simultanés 200 100 Temps(minutes) 30 20 25 45 15 © Neoxia Perf Training 61
  • 62. Concepts avancés Paramétrage de la monté en charge dynamique : tirs par palier Utilisation de JMeter Pour modéliser un tir de charge par palier avec JMeter, on procède de la même façon qu’un tir simple: création et optimisation d’un plan de test. Dupliquer le groupe d’unités 1 pour avoir un autre avec le même contenu Après avoir dupliqué cette configuration, nous allons passer à la configuration des deux groupes pour avoir notre effet palier: © Neoxia Perf Training 62
  • 63. Concepts avancés Paramétrage de la monté en charge dynamique : tirs par palier Groupe 1 Nombre d’unités (users) : 100 Durée de montée en charge (in seconds) : 1800 Ensuite, nous allons activer le champ programmateur de démarrage en cochant la case. Puis dans les nouveaux champs qui deviennent visibles, nous allons modifier les deux champs suivants : Durée (seconds) : 8100 Délai avant démarrage (seconds) : 5 (juste pour laisser le temps à JMeter de démarrer) On laissera les valeurs du Start Time et End Time. Elles seront ignorées par JMeter. © Neoxia Perf Training 63
  • 64. Concepts avancés Paramétrage de la monté en charge dynamique : tirs par palier Groupe 2 Nombre d’unités (users) : 100 Durée de montée en charge (in seconds) : 1500 Ensuite, nous allons activer le champ programmateur de démarrage en cochant la case. Puis dans les nouveaux champs qui deviennent visibles, nous allons modifier les deux champs suivants : Durée (seconds) : 5100 Délai avant démarrage (seconds) : 300 (50 minutes) © Neoxia Perf Training 64
  • 65. Concepts avancés Gestion du temps de réflexion : ‘Think time’ Lors de la création d’un plan de test, souvent on oublie d’ajouter des pauses entre les requêtes pour modéliser le temps de réflexion de l’utilisateur. Un plan de test sans temps de réflexion var surcharger le serveur, la bande passante du réseau et la processeur de la machine où on exécute le test. Plusieurs requêtes successives robot Système cible © Neoxia Perf Training 65
  • 66. Concepts avancés Gestion du temps de réflexion : ‘Think time’ JMeter offre deux possibilité pour modéliser le temps de réflexion : Utiliser les compteurs de temps fixe dans un échantillon débogage (debug sampler) : Avantage : plusieurs types de ‘timer’ Inconvénient : avoir des trace sur le fichier de résultats Utiliser les échantillons Action test Avantage : pas de traces dans le résultat NB: L’utilisation de plusieurs ‘timer’ dans un contrôleur n’est pas correct, ils seront exécutés tous avant les requêtes. © Neoxia Perf Training 66
  • 67. Concepts avancés Utilisation de JMeter sans GUI Optimisation de l’utilisation de la mémoire Ne pas avoir des données biaisées (à cause de la mémoire) JMeter peut être gêné par la gestion du ‘graphisme‘. Cela peut avoir un impact sur la qualité des résultats du tir le mode GUI est plutôt à utiliser pour créer et maintenir ses scripts JMeter et lancer des tirs de charges simples pour vérifier la bonne exécution d’un scénario. Le mode non-GUI est à utiliser pour l’exécution du test de charge « officiel » © Neoxia Perf Training 67
  • 68. Concepts avancés Utilisation de JMeter sans GUI Pour suivre le déroulement de JMeter en mode sans GUI : Utilisation de « summariser », pour afficher à intervalle prédéfini les statistiques du test en cours. Pour activer cette option, il faut aller simplement éditer le fichier JMETER_HOME/bin/jmeter.properties au niveau des paramètres suivants : © Neoxia Perf Training 68
  • 69. Exemple : application petClinic Scénarios fonctionnels : Gestion des animaux domestiques Gestion des propriétaires Gestion des RDV médicaux Objectif Élaborer un tir de charge par palier optimisé et distribué © Neoxia Perf Training 69
  • 70. CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION Formation JMeter Initiation et concepts avancés