PAGE EN COURS DE REDACTION
Installer Jmeter
https://jmeter.apache.org/download_jmeter.cgi
Lancer Jmeter avec son interface
JVM_ARGS="-Xms8192m -Xmx8192m" ./apache-jmeter-5.5/bin/jmeter
Pour lancer directement le script en ligne de commande : https://jmeter.apache.org/usermanual/get-started.html#non_gui
jmeter -n -t my_test.jmx -l log.jtl
Le script
Le script contient plusieurs scénarios créés par enregistrement d'une navigation. JMeter se comporte alors comme un serveur proxy et enregistre toutes les requêtes appelée https://jmeter.apache.org/usermanual/get-started.html#template
Pour aller plus loin...
... et créer ou compléter le script.
Préparer l'enregistrement
Dans JMeter un scenario est une suite d'appel d'URL et peut être créé automatiquement à partir d'une navigation sur l'application dans une navigateur. Pour cela, JMeter doit faire office de serveur proxy et le navigateur doit utiliser ce proxy.
Dans JMeter, utiliser un composant HTTP(S) Test Script Recorder qui va permettre de lancer le mode Proxy ainsi qu'un composant Recording Controller qui récupèrera les appels successifs. Le premier composant référencera le second.
Dans Firefox on déclarer le proxy dans Réglages > Général > Paramètres réseau en choisissant une configuration manuelle pointant vers localhost:8888
Le navigateur devra utiliser le certificat JMeter : https://jmeter.apache.org/usermanual/component_reference.html#HTTP%28S%29_Test_Script_Recorder
Dans Réglages > Vie privée... > Certificats > Importer... charger le fichier ApacheJMeterTemporaryRootCA.crt qui se trouve à la racine du répertoire JMeter.
Désactiver le cache du navigateur dans Outils de développement > Réseau en cochant "désactiver le cache".
Pour plus de détails consulter : https://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html#script-recorder
Lancer l'enregistrement
Lancer le serveur en cliquant sur le bouton "Play" vert, une fenêtre s'ouvre et reste en premier plan.
Naviguer et jouer le scénario
Faire "Stop" sur la fenêtre en premier plan.
Les requêtes enregistrées se trouvent dans le composant Recording Controller
Créer, rendre paramétrable le scénario
Créer à la racine un nouveau composant Thread Group
Couper/coller les requêtes du composant Recording Controller dans le composant Thread Group fraîchement créé.
Toutes les variables, c'est à dire les éléments que l'on souhaite pouvoir changer facilement lors de l'exécution d'un test de charge doivent figurer dans un composant User Defined Variables.
Au moment, de l'enregistrement si JMeter rencontre une valeur qui se trouve dans une variable déclarée dans le User Defined Variables il remplace automatiqueme la valeur par la variable ce qui est hyper pratique.
Par exemple, s'il rencontre un appel sur l'URL :
mobile-back.univ-lorraine.fr/auth/login-page-content
Mais qu'il connait la variable host-back
<elementProp name="host" elementType="Argument">
<stringProp name="Argument.name">host</stringProp>
<stringProp name="Argument.value">mobile.univ-lorraine.fr</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
Il remplacera automatiquement par la variable ${host-back}
Néanmoins pour pourras souhaiter paramétrer l'authentification ou d'autres éléments
Astuce
Le fichier .jmx du projet jMeter est un fichier XML. Il peut donc être édité avec un simple éditeur de texte pour des remplacements de masse.
Les appels peuvent être regroupés dans des Transaction Group qui permettront d'agréger les résultat des requêtes de ce groupe.
Une fois le scénario prêt, ajouter à minima un composant Summary Report pour avoir et logguer les résultat du test de charge. Pour en savoir plus : https://jmeter.apache.org/usermanual/component_reference.html#listeners
Lancer le test de charge en paramètrant le Thread group comme expliqué plus haut









