J'utilise JMeter en mode interface graphique pour composer tous les scénarios de test requis pour le test de charge de mon service, mais pour effectuer des tests réels, je dois exécuter des tests en mode non graphique. Comment enregistrer les résultats du rapport d'agrégat dans un fichier csv à l'aide de l'invite de commande.
Merci d'avance.
Comme alternative: vous pouvez le faire directement à partir du listener Rapport agrégé.
1. set filename/template pour le fichier de résultats:
resultsFile = ${__property(user.dir)}${__BeanShell(File.separator,)}result_${__time(yyyyMMdd-HHmmss)}.csv
2. configure l'écouteur du rapport d'agrégation comme indiqué ci-dessous:
Le fichier CSV généré dans ce cas sera différent de celui généré via la GUI/"Save Table Data".
Si cela n’est pas acceptable, vous ferez mieux d’utiliser la méthode avec JMeterPluginsCMD de la réponse précédente:
Java -jar JMeterPluginsCMD.jar --generate-csv aggregateResults.csv --input-jtl testResults.jtl --plugin-type AggregateReport
Utilisez JMeterPluginsCMD tool avec Plugin Type = AggregateReport
1. Enregistrer le fichier de résultats
Spécifiez un fichier de résultat à enregistrer dans Afficher les résultats de l'arborescence ou Afficher le tableau (au format CSV ou XML) Ex: out/test-results.csv
ou avec l'argument CLI -JTEST_RESULTS_FILE=out/test-results.csv
2. Convertir en rapport
Convertissez le fichier de résultat en un rapport global:
$ Java -jar CMDRunner.jar --tool Reporter --generate-csv aggregateResults.csv --input-jtl out/test-results.csv --plugin-type AggregateReport
Si vous utilisez brew
, CMDRunner est situé à:
/usr/local/Cellar/jmeter/2.13/libexec/lib/ext/CMDRunner.jar
Télécharger JMeterPluginsCMD .
Placez jmeter-plugins-manager-0.13.jar dans/bin/libs/ext de votre JMeter.
./JMeterPluginsCMD.sh --tool Reporter --generate-csv test.csv --input-jtl input.jtl --plugin-type AggregateReport
Avec l'aide de la réponse ci-dessus, j'ai écrit un script bash simple pour automatiser le travail de génération du fichier de résultat agrégé .csv
à l'aide de fichiers .jtl
.
Vous pouvez placer ce script dans le dossier où se trouvent les fichiers .jtl
et le lancer simplement dans ce répertoire. Ensuite, tous les rapports agrégés (fichiers .csv
) seront placés dans le répertoire aggregate_report
dans le même répertoire.
#! /usr/bin/env bash
echo "Generating reports..."
command_runner="/opt/Apache-jmeter-2.13/lib/ext/CMDRunner.jar"
output="aggregate_report"
count=0
mkdir $output
for sample_file in *.jtl
do
((count++))
filename="${sample_file%.*}"
echo "Converting $filename"
Java -jar $command_runner --tool Reporter --generate-csv ${output}/${filename}.csv --input-jtl ${filename}.jtl --plugin-type AggregateReport
done
echo "$count files were converted."
remarque: changez la variable
command_runner
en conséquence avec votre CMDRunner.jar location