INTRODUCTION -----------------------------------------------------------
Créé par Stefano Mazzocchi de la Apache Software Foundation
$ java -h
S'il ne répond rien, installer machine virtuelle Java
Télécharger JMeter depuis jmeter.apache.org
aller dans le dossier bin, lancer jmeter.bat
FROM COMMAND LINE ------------------------------------------------------
Dans une console
jmeter -n -t ../../projet.jmx -l ../../test.csv
pour voir l'état d'avancement dans le result tree
Utiliser des Transaction controler(clic droit thread group) entre les Simple controlers.
NON GUI FROM COMMAND LINE ----------------------------------------------
Créer le projet en GUI.
Ajouter un thread-group
Ajouter un sampler HTTP request pour chaque requête et leur donner u nom
http://163.172.31.206:8180/petclinic/owners/264
http://163.172.31.206:8180/petclinic/owners/264/pets/65/edit
Ajouter un Assertions/Response Assertion, Response code EQUALS 200
Ajouter un Listener/View Results tree
Enregistrer, lancer
Dans groupthread, mettre 20 threads (users)
NAVIGATEURS ------------------------------------------------------------
Travailler en mode fenêtre navigation privée
F12
Chrome : ne sélectionner que XHR doc other
firefox: HTML XHR et autre
TEST RECORDER ----------------------------------------------------------
https://www.youtube.com/watch?v=amEHuq8auTU&index=21&list=PLhW3qG5bs-L-zox1h3eIL7CZh5zJmci4c
http://jmeter.apache.org/usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder
clic droit sur projet/add/non-test elements/HTTP test script recorder. Mettre port sur 8181.
clic droit sur group thread/logic controller/recording controler
configurer le navigateur web pour utiliser un proxy localhost:8181
Test script recorder:cliquer sur start: il crée le certificat. Si HTTPS installer le certificat
naviguer sur le web: le recorder enregistre
stop
ASSERTIONS -------------------------------------------------------------
https://www.blazemeter.com/blog/how-use-jmeter-assertions-three-easy-steps
Assertion CPU/Memory Usage Notes
--------------------------------------------------------------------
Response Assertion Moderate Regular Expressions
Duration Assertion Low
Size Assertion Low
XML Assertion High Builds XML DOM Documents
Beanshell Assertion Variable Depends on the script logic
MD5Hex Assertion Low
HTML Assertion High Parses the HTML Response
XPath Assertion High Builds XML DOM Documents
XML Schema Assertion High Builds XML DOM Documents
JSR223 Assertion Variable Depends on the script logic
Compare Assertion High Parses responses and compares them
SMIME Assertion Moderate
Json Assertion High Parses the Json document
SERVICE WEB ------------------------------------------------------------
https://samples.openweathermap.org/data/2.5/forecast?q=marseille&appid=b1b15e88fa797225412429c1c50c122a1
GENERER RAPPORT HTML ---------------------------------------------------
la doc: https://jmeter.apache.org/usermanual/generating-dashboard.html
https://www.youtube.com/watch?v=aHV5IizW7u4&list=PLhW3qG5bs-L-zox1h3eIL7CZh5zJmci4c&index=11
Dans une console
jmeter -n -t projet.jmx -l test.csv -e -o "output folder"
jmeter -n -t ../../Report-From-Cmd.jmx -l ../../test.csv -e -o ../../html
GENERER UN RAPPORT DEPUIS UN FICHIER CSV -------------------------------
jmeter -g "xxx.csv" -o "output folder"
jmeter -g "../../test.csv" -o "../../html2"
PLUGINS ----------------------------------------------------------------
télécharger le jar https://jmeter-plugins.org/wiki/PluginsManager/
et le mettre dans jmeter/libs/ext
ensuite il est visible dans le menu options
HOW TO READ DATA FROM CSV TEMPLATE FILE --------------------------------
Créer un CSV: 1re ligne c'est les noms des paires nom=valeur du querystring
city ;appid ; country
Marseille ;fsdfds ; France
Moscou ;fsdfds ; Russie
Add/Config Element/CSV data set config
renseigner chemin du csv
Puis dans le HTTP request remplacer par ${city} ${appid}
VARIABLES --------------------------------------------------------------
matching is case-sensitive
VARIABLES GLOBALES
Clic droit sur le projet: on peut ajouter des variables globales au projet
VARIABLES LOCALES
Thread group/Config element/User defined variables fait la même chose,
mais la portée est différente
et ces variables override les autreS
https://jmeter.apache.org/usermanual/functions.html
voir aussi Menu Options/Menu helper dialog
${__threadNum} numéro de thread
${__intSum(2,3)} affichera 5
${__intSum(2,3, result)} result vaudra 5. Afficher avec ${result}
${__intSum(2,result)} affichera 7
Variables are local to a thread;
properties are common to all threads, and need to be referenced using the __P or __property function.
${__P(tir,1)}
propriété LOOPS: ${__P(loops,10))}
REGULAR EXPRESSION EXTRACTOR -------------------------------------------
Reference name: nom de la variable dans laquelle sera stockée le résultat
Reg exp: name="Token" value="(.+?)"
Template: $0$
HTML
<h2>Welcome user2</h2>
session id: 83259d419d01ded3130393bbb826cd12
assertion connecté : matches <h2>Welcome (.+?)</h2>
extraction sid : session id: (.+?)
JSON EXTRACTOR ---------------------------------------------------------
https://www.testingexcellence.com/parse-json-response-using-jmeters-json-extractor/
Test Plan –> Add –> Post Processors –> JSON Extractor
CREER UN TEMPLATE-------------------------------------------------------
enregistrer un projet
l'enregistrer dans bin/templates
éditer templates.xml pour ajouter le nouveau template
UPLOAD DE FICHIER ------------------------------------------------------
tinyupload.com permet d'uploader une image
créer projet HTTP request
Dans l'onglet fileupload, cliquer sur add, browse et choisir le fichier à uploader,
il veut un "parameter name" donc inspecter le bouton input type="file" sur le formulaire et mettre "uploaded_file"
mettre aussi le type mime
Ajouter un listener/ results tree
et lecture
FILE DOWNLOAD ----------------------------------------------------------
Créer group thread et HTTP request.
Renseigner serveur, port, ressource
ajouter un view results tree
tester
add listener/save response to a file. filename prefix: ../../image im mettra l'extension
HOW TO DEBUG -----------------------------------------------------------
projet HTP request avec result tree (obligatoire)
add/sampler/debug sampler
RECORD LOGIN TEST ------------------------------------------------------
add plugin blazemeter extension to chrome
lancer enregistrement
se connecter
stopper enregistrement et enregistrer jmx
si pas jmx: chercher dans google blazemeter converter http://converter.blazemeter.com/