Как записать значения запросов и ответов в Jmeter и сохранить их в файле?
Я использую Jmeter в качестве инструмента Load Test. Я передаю один параметр через запрос и в ответ получаю только один параметр в результате. ответ. Я хочу сохранить запрос и ответ в CSV-файл. Я использую Regular Expression Extractor для захвата ответа и Bean Shell Postprocessor для сохранения его в CSV-файл. Но не в состоянии захватить соответствующий параметр запроса.
Пример: Запрос: http://localhost:8080/myService?input=abcd123455 и Response: pqrst1245/84985== Пока здесь ввод для запроса, я беру его из другого файла CSV. и я хочу захватить как входной параметр и соответствующий ответ и сохранить его в CSV-файле, как ввод, ответ, т.е. abcd123455,pqrst1245/84985==
2 ответа
Попробуйте использовать этот Beanshell... Я не пробовал, но он должен работать.
import org.apache.jmeter.services.FileServer;
if (sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) {
String request = (sampleEvent.getResult().getSamplerData());
String response = prev.getResponseDataAsString();
fos = new FileOutputStream("/home/user/output.csv", true);
ps = new PrintStream(fos);
StringBuilder sb = new StringBuilder();
sb.append(request).append(",").append(response).append("\n");
ps.println(sb.toString());
ps.close();
fos.close();
}
Самый простой способ - использовать свойство Sample Variables. Учитывая, что у вас есть 2 переменные, т.е. ${request}
а также ${response}
просто добавьте следующую строку в файл user.properties:
sample_variables=request,response
и перезапустите JMeter, чтобы забрать собственность. После завершения теста вы увидите 2 дополнительных столбца в файле результатов.jtl ${request}
а также ${response}
значения переменных.
Другой способ временно установить свойство - передать его через аргумент командной строки -J, например
jmeter -Jsample_variables=request,response -n -t test.jmx -l result.jtl
См. Статью Руководства по настройке свойств Apache JMeter для получения дополнительной информации о работе со свойствами JMeter.
Я бы не рекомендовал использовать сценарии, так как при высокой нагрузке у вас могут возникнуть проблемы с одновременной записью нескольких потоков в один и тот же файл, и вам нужно подумать о реализации какой-либо формы блокировки записи