Formation jmeter

70
CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION Formation JMeter Initiation et concepts avancés Abdelhaq EL AIBI

description

save time by reading these slides before auditing a web application with jmeter

Transcript of Formation jmeter

Page 1: Formation jmeter

CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION

Formation JMeter

Initiation et concepts avancés

Abdelhaq EL AIBI

Page 2: Formation jmeter

Plan de la formation

© Neoxia 2

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

Perf Training

Page 3: Formation jmeter

Introduction

Introduction

Concepts généraux

Démarche

JMeter

© Neoxia Perf Training 3

Page 4: Formation jmeter

IntroductionConcepts 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

Page 5: Formation jmeter

IntroductionDémarche

� Les tests de charge sont des moyens et non pas des fins (objectifs)

� La démarche est basée sur cinq étapes

© Neoxia Perf Training 5

Identification de l’environnement

de test

Modélisation et conception des

tests

Développement des scripts

Compagne de tirs

Analyse et Recommandations

Page 6: Formation jmeter

IntroductionDémarche

© Neoxia Perf Training 6

Identification de l’environnement de test

Définition de (s) l’objectif (s) du test

Avoir un environnement similaire à la production

Comprendre l’architecture technique du système cible

Modélisation et conception des tests

Liste des scénarios fonctionnels cibles

Définition du jeux de données

Développement des scripts

Captures des scénarios

Paramétrage et personnalisation

Optimisation des scénarios

Compagne de tirs

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

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

Analyse et Recommandations

Analyse des logs

Analyse de fichiers des résultats

Recommandations et optimisation

Page 7: Formation jmeter

IntroductionJMeter

� 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

Page 8: Formation jmeter

Installation et configuration de JMeter

Installation et configuration

Installation (MS windows, Linux)

Composants de JMeter

© Neoxia Perf Training 8

Page 9: Formation jmeter

Installation et configuration de JMeter Installation (MS windows, Linux)

© Neoxia Perf Training 9

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

� 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

Prérequis � JVM 5 ou plus� Tout système d’exploitation ayant la

JVM (Unix, Windows, Mac OS)

Page 10: Formation jmeter

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

Page 11: Formation jmeter

Installation et configuration de JMeter Composants de JMeter

© Neoxia Perf Training 11

Page 12: Formation jmeter

Installation et configuration de JMeter Composants de JMeter

� Paramétrage : bin/jmeter.properties

© Neoxia Perf Training 12

Attribut Description Obligatoire

ssl.providerVous pouvez spécifier la classe de votre implémentation SSL si vous nesouhaitez pas utiliser la mise en œuvre intégrée à Java.

Non

remote_hostsSi vous utilisez JMeter dans un environnement distribué, la liste des machinesoù vous avez JMeter serveurs distants. Cela vous permettra de contrôler cesserveurs depuis l'interface graphique de cette machine

Non

not_in_menu

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

Non

user.propertiesNom du fichier contenant les propriétés supplémentaires JMeter. Ellesdoiventêtre ajoutées après le fichier de propriétés initiales, mais avant que le -q et -Jsont traitées.

Non

system.properties

Nom du fichier contenant les propriétés des système supplémentaires. Ellesdoivent être ajoutées avant les options -S et -D Non

Page 13: Formation jmeter

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

Page 14: Formation jmeter

Création d’un Plan de testDé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

Page 15: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� ThreadGroup (ou groupe d’unités)

© Neoxia Perf Training 15

� 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é

Page 16: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Contrôleurs

© Neoxia Perf Training 16

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

Page 17: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Listeners/récepteurs

© Neoxia Perf Training 17

� 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).

Page 18: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Timers

© Neoxia Perf Training 18

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

Page 19: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Assertion

© Neoxia Perf Training 19

� 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.

Page 20: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Elément de configuration

© Neoxia Perf Training 20

� 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 »

Page 21: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Pre-Processor

© Neoxia Perf Training 21

� 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.

Page 22: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Les règles de portée 1/2

© Neoxia Perf Training 22

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.

Page 23: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Les règles de portée (2/2)

© Neoxia Perf Training 23

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’.

Page 24: Formation jmeter

Création d’un Plan de testDescription des éléments d'un plan de test

� Propriétés et variables de JMeter

© Neoxia Perf Training 24

� 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

Page 25: Formation jmeter

Création d’un Plan de testExemple : application petClinic

© Neoxia Perf Training 25

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

Page 26: Formation jmeter

Création d’un Plan de testExemple : 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

Page 27: Formation jmeter

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

Page 28: Formation jmeter

Exécution d'un plan de testExé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

Page 29: Formation jmeter

Exécution d'un plan de testExé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

� Vérification des résultat

© Neoxia Perf Training 29

Jmeter.bat -n -t planTest.jmx

Page 30: Formation jmeter

Exécution d'un plan de testExé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

Page 31: Formation jmeter

Exécution d'un plan de testTirs 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

Page 32: Formation jmeter

Exécution d'un plan de testTirs distribués (contrôleur, injecteurs)

� Architecture Globale

© Neoxia Perf Training 32

Contrôleur

Injecteur 2Injecteur 1

Serveur Web : système cible

Page 33: Formation jmeter

Exécution d'un plan de testTirs 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 :

� 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

remote_hosts=injec1,injec2

Page 34: Formation jmeter

Exécution d'un plan de testTirs distribués (contrôleur, injecteurs)

� Configuration 2/2:�Au niveau injecteur on lance JMeter en mode serveur avec la commande

suivante :

� 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

JMETER_HOME/bin/jmeter-server (sous Linux)JMETER_HOME\bin\jmeter-server.bat (sous Windows)

Page 35: Formation jmeter

Exécution d'un plan de testTirs 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

Page 36: Formation jmeter

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

Page 37: Formation jmeter

Analyse des résultats de testsFormats (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

Page 38: Formation jmeter

Analyse des résultats de testsFormats (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

Page 39: Formation jmeter

Analyse des résultats de testsFormats (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

Page 40: Formation jmeter

Analyse des résultats de testsFormats (CSV, XML)

� Arbre de résultats 1/2

© Neoxia Perf Training 40

Page 41: Formation jmeter

Analyse des résultats de testsFormats (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

Page 42: Formation jmeter

Analyse des résultats de testsFormats (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

Page 43: Formation jmeter

Analyse des résultats de testsFormats (CSV, XML) : exploitation

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

© Neoxia Perf Training 43

Page 44: Formation jmeter

Analyse des résultats de testsFormats (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

Page 45: Formation jmeter

Analyse des résultats de testsFormats (CSV, XML) : exploitation

© Neoxia Perf Training 45

Page 46: Formation jmeter

Analyse des résultats de testsFormats (CSV, XML) : exploitation

© Neoxia Perf Training 46

Page 47: Formation jmeter

Analyse des résultats de testsAnalyse 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

Page 48: Formation jmeter

Concepts avancés

Concepts avancés

Capture des scénarios

Utilisation des expressions régulières

Variabilisation des données des tirs

Paramétrage de la monté en charge dynamique : tirs par palier

Personnalisation du plan de test par palier d’utilisateurs

Gestion du temps de réflexion : ‘Think time’

Utilisation de JMeter sans GUI

© Neoxia Perf Training 48

Page 49: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 49

� 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

Page 50: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 50

� Démarche 1/:

� Lancer JMeter

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

Page 51: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 51

� 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 .

Page 52: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 52

� 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.

Page 53: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 53

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

Page 54: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 54

� 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

Page 55: Formation jmeter

Concepts avancésCapture des scénarios

© Neoxia Perf Training 55

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

adresse du proxy

port du proxy

Page 56: Formation jmeter

Concepts avancésUtilisation des expressions régulières

© Neoxia Perf Training 56

� 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 »

Page 57: Formation jmeter

Concepts avancésUtilisation des expressions régulières

© Neoxia Perf Training 57

� 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

Page 58: Formation jmeter

Concepts avancésUtilisation des expressions régulières

� Exemple :

© Neoxia Perf Training 58

Page 59: Formation jmeter

Concepts avancésVariabilisation des données des tirs

© Neoxia Perf Training 59

� 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.

Page 60: Formation jmeter

Concepts avancésVariabilisation des données des tirs

© Neoxia Perf Training 60

� 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.

Page 61: Formation jmeter

Concepts avancésParamétrage de la monté en charge dynamique : tirs p ar palier

© Neoxia Perf Training 61

� 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

100

Utilisateurs simultanés

200

30

Temps(minutes)

20 25 45 15

Page 62: Formation jmeter

Concepts avancésParamétrage de la monté en charge dynamique : tirs p ar palier

© Neoxia Perf Training 62

� 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:

Page 63: Formation jmeter

Concepts avancésParamétrage de la monté en charge dynamique : tirs p ar 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

Page 64: Formation jmeter

Concepts avancésParamétrage de la monté en charge dynamique : tirs p ar 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

Page 65: Formation jmeter

Concepts avancésGestion du temps de réflexion : ‘Think time’

© Neoxia Perf Training 65

� 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.

Systèmecible

Plusieurs requêtes successives

robot

Page 66: Formation jmeter

Concepts avancésGestion 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 deré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

Page 67: Formation jmeter

Concepts avancésUtilisation de JMeter sans GUI

© Neoxia Perf Training 67

� 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 »

Page 68: Formation jmeter

Concepts avancésUtilisation de JMeter sans GUI

© Neoxia Perf Training 68

� 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 :

Page 69: Formation jmeter

Exemple : application petClinic

© Neoxia Perf Training 69

� 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é

Page 70: Formation jmeter

CONSEIL EN ARCHITECTURE DU SYSTEME D’INFORMATION

Formation JMeter

Initiation et concepts avancés