Как сохранить результаты агрегирования JMeter в файл CSV с помощью командной строки?
Я использую JMeter в режиме графического интерфейса для составления всех тестовых примеров, необходимых для тестирования нагрузки моей службы, но для фактического тестирования мне нужно выполнить тесты в режиме без GUI.
Как сохранить результаты отчета Aggregate в файле csv с помощью командной строки.
Спасибо заранее.
Ответы
Ответ 1
Как альтернатива: вы можете сделать это непосредственно из слушателя агрегатного отчета.
1. задайте имя файла/шаблон для файла результатов:
resultsFile = ${__property(user.dir)}${__BeanShell(File.separator,)}result_${__time(yyyyMMdd-HHmmss)}.csv
2. настройте аудитор агрегатного отчета, как показано ниже:
![enter image description here]()
CSV файл, сгенерированный в этом случае, будет отличаться от генерируемого через GUI/ "Сохранить данные таблицы".
Если это неприемлемо, лучше использовать метод с JMeterPluginsCMD из предыдущего ответа:
java -jar JMeterPluginsCMD.jar --generate-csv aggregateResults.csv --input-jtl testResults.jtl --plugin-type AggregateReport
Ответ 2
Используйте JMeterPluginsCMD инструмент с плагином Type = AggregateReport
Ответ 3
1. Сохранить файл результата
Укажите файл результатов для сохранения в окне "Просмотр результатов" или "Просмотр таблицы результатов" (в CSV или XML). Пример: out/test-results.csv
или с аргументом CLI -JTEST_RESULTS_FILE=out/test-results.csv
2. Преобразовать в отчет
Преобразовать файл результатов в сводный отчет:
$ java -jar CMDRunner.jar --tool Reporter --generate-csv aggregateResults.csv --input-jtl out/test-results.csv --plugin-type AggregateReport
Если вы используете brew
, CMDRunner находится по адресу:
/usr/local/Cellar/jmeter/2.13/libexec/lib/ext/CMDRunner.jar
Ответ 4
С помощью приведенного выше ответа я написал простой bash script для автоматизации работы по созданию файла сгенерированного результата .csv
с помощью .jtl
файлов
Вы можете поместить этот script в папку, в которой находятся файлы .jtl
, и просто запустите script в этом каталоге.
Затем он поместит все агрегированные отчеты (.csv
файлы) в каталог aggregate_report
в том же каталоге
#! /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."
Примечание: измените переменную command_runner
, соответственно, на CMDRunner.jar.
Ответ 5