web-dev-qa-db-fra.com

Jmeter - Exécuter le fichier .jmx via la ligne de commande et obtenir le rapport de synthèse dans un fichier Excel

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.

22
user1788294

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. 

40
Dmitri T

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 &
3
Ushani

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.

2
Quinnlv

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
0
vins

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
0
user674669

En mode ligne de commande: J'ai planifié sous Linux.

  1. téléchargez la dernière version de jmeter. Apache JMeter 3.2 (Requires Java 8 or later) à partir de maintenant.

  2. Extrayez dans votre répertoire souhaité. Par exemple, extrayez à /tmp/

  3. Maintenant, le format de fichier de sortie par défaut sera 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>

0
shashankS