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/