Je suis nouveau à jmeter. J'ai le fichier .jmx contenant tous les échantillonneurs http requis. Je pourrais l'exécuter via l'interface utilisateur de Jmeter en utilisant "Run-> Start" et afficher le résultat dans le "Summary Report". Je peux ensuite enregistrer les résultats dans le fichier .csv en utilisant le bouton "Enregistrer les données de la table" dans "Rapport récapitulatif".
La question est comment puis-je obtenir le même en utilisant la ligne de commande.
JMeter peut être lancé en mode non graphique comme suit:
jmeter -n -t /path/to/your/test.jmx -l /path/to/results/file.jtl
Vous pouvez définir ce que vous voudriez voir dans le fichier résultat JTL en jouant avec les propriétés de JMeter.
Voir le fichier jmeter.properties
sous le dossier/bin de votre installation JMeter et recherchez ceux commençant par
jmeter.save.saveservice.
Les valeurs par défaut sont répertoriées ci-dessous:
#jmeter.save.saveservice.output_format=csv
#jmeter.save.saveservice.assertion_results_failure_message=false
#jmeter.save.saveservice.assertion_results=none
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
#jmeter.save.saveservice.response_data=false
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=false
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=false
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
#jmeter.save.saveservice.default_delimiter=,
#jmeter.save.saveservice.default_delimiter=\t
#jmeter.save.saveservice.print_field_names=false
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="../extras/jmeter-results-detail-report_21.xsl"?>
#jmeter.save.saveservice.base_prefix=~/
#jmeter.save.saveservice.autoflush=false
Décommentez celui qui vous intéresse et définissez sa valeur pour changer la valeur par défaut. Une autre option consiste à remplacer la propriété dans le fichier user.properties
ou à la fournir comme argument de ligne de commande à l'aide de la clé -J
, comme suit:
jmeter -Jjmeter.save.saveservice.print_field_names=true -n /path/to/your/test.jmx -l /path/to/results/file.jtl
Voir Guide de personnalisation des propriétés d'Apache JMeter pour plus de détails sur ce qui peut être fait avec les propriétés de JMeter.
Vous pouvez utiliser cette commande,
jmeter -n -t /path to the script.jmx -l /path to save results with file name file.jtl
Mais si vous voulez vraiment exécuter un test de charge sur une machine distante, vous devriez pouvoir l'exécuter même si vous fermez la fenêtre. Nous pouvons donc utiliser Nohup pour ignorer le signal HUP (blocage). Vous pouvez donc utiliser cette commande comme ci-dessous.
Nohup sh jmeter.sh -n -t /path to the script.jmx -l /path to save results with file name file.jtl &
Vous pouvez exécuter JMeter à partir de la ligne de commande en utilisant le paramètre -n pour 'Non-GUI' et le paramètre -t pour le fichier de plan de test.
jmeter -n -t "PATHTOJMXFILE"
Si vous souhaitez personnaliser davantage l’expérience de la ligne de commande, je vous dirigerai vers la section 'Getting Started' de leur documentation.
Ce serait la déclaration en ligne de commande.
"%JMETER_HOME%\bin\jmeter.bat" -n -t <jmx test file path> -l <csv result file path> -Djmeter.save.saveservice.output_format=csv
Cela a fonctionné pour moi sur mac os High Sierra 10.13.6, Java 8 64 bits, jmeter 4.0
$ jmeter -n --testfile /path/to/Test_Plan.jmx
Exemple de sortie:
Creating summariser <summary>
Created the tree successfully using ./src/test/jmeter/Test_Plan.jmx
Starting the test @ Fri Aug 24 17:18:18 PDT 2018 (1535156298333)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary = 10 in 00:00:09 = 1.1/s Avg: 6666 Min: 1000 Max: 8950 Err:
0 (0.00%)
Tidying up ... @ Fri Aug 24 17:18:28 PDT 2018 (1535156308049)
... end of run
En mode ligne de commande: J'ai planifié sous Linux.
téléchargez la dernière version de jmeter. Apache JMeter 3.2 (Requires Java 8 or later)
à partir de maintenant.
Extrayez dans votre répertoire souhaité. Par exemple, extrayez à /tmp/
csv
. Pas besoin de changer quoi que ce soit ou de spécifier dans la commande CLI . Par exemple: ./jmeter -n -t examples/test.jmx -l examples/output.csv
Pour changer le format par défaut, changez le paramètre suivant dans jmeter.properties : jmeter.save.saveservice.output_format=xml
Maintenant, si vous exécutez la commande: ./jmeter -n -t examples/test.jmx -l examples/output.jtl
Output sera stocké au format xml.
Maintenant, faites la demande sur plusieurs serveurs (Requête d’informations additionnelles): Nous pouvons spécifier.
./jmeter -n -t examples/test.jmx -l examples/output.jtl -JHOST=<Host> -JPORT=<PORT>