Расчет пропускной способности из файла журнала Jmeter jtl - PullRequest
0 голосов
/ 26 февраля 2011

Я пытался предложить формулу для расчета пропускной способности (число запросов / единица времени) на основе некоторых свойств из журнала jtl на основе следующих параметров:

  • Метка времени (ts)
  • Время (т)
  • Количество запросов

Взглянув на временные метки, я не был полностью уверен, относится ли это ко времени, когда запрос был отправлен или когда он получил ответ (моя основная точка смущения здесь). Если взглянуть на значения, первый вариант кажется более вероятным. Итак, предполагая это, я получил следующее:

Throughput = (NumRequests / (max(ts + t) - min(ts)) ) * 1000

Может кто-нибудь сказать мне, прав ли я с этим?

Обновление (и спасибо за ответ @BlackGaff)

Суть в том, что мне нужно выполнить свои тесты и собрать результаты в среде без графического интерфейса для некоторых автоматизированных процессов, поэтому я не могу по-настоящему использовать сводный отчет (если нет способа запустить его из команды линия). Использование max & min - это попытка найти значения ts из набора запросов (в том же тесте). Кроме того, если я сконфигурирую сэмплеры, чтобы период разгона отличался от 0 (таким образом, нагрузка распределялась), числа, которые я получаю для ts, отличаются. И да, как вы уже упоминали ранее, я эффективно ищу разницу между startTime первого образца и endTime последнего образца. Помимо этого я нашел параметр в jmeter.properties:

# Put the start time stamp in logs instead of the end
#sampleresult.timestamp.start=true

Поэтому, в зависимости от этого параметра, мне кажется, что мне также следует изменить расчет, чтобы получить время начала и окончания.

ПРИМЕЧАНИЕ. Мне интересно узнать, как рассчитать это на основе файла jtl, но если кому-то понадобится получить эти числа из командной строки, попробуйте добавить прослушиватель «Создать сводный отчет», и в журналах jmeter вы получите строка, аналогичная следующей в конце выполнения:

2011/03/10 22:31:42 INFO  - jmeter.reporters.Summariser: Generate Summary Results =   200 in   9.8s =   20.5/s Avg:    95 Min:    75 Max:   315 Err:     0 (0.00%)

Ответы [ 3 ]

5 голосов
/ 28 февраля 2011

Может быть проще открыть журнал JTL в отчете Jmeter Aggregate, в котором будет рассчитана пропускная способность для вас, а затем сохранить его обратно?

Но, в точку с вопросом.

В настоящее время в вашей формуле есть единицы времени / запросы.Если вам нужны запросы / время, формула должна выглядеть следующим образом:

Throughput = (NumRequests / (max(ts + t) - min(ts) ) ) * 1000

Я не совсем уверен, почему вы используете max и min, поскольку вы предоставляете только одно значение, и эти функции возвращаютМакс / мин от набора.Учитывая, что TS - это то же значение, используя EXCEL, вы получите:

Throughput = (NumRequests/t*1000)

Я считаю, что вы действительно хотите, чтобы разница между startTime первого образца и endTime последнего образца)

Согласно глоссарию:

Пропускная способность рассчитывается как количество запросов / единица времени.Время рассчитывается от начала первой выборки до конца последней выборки.Это включает любые интервалы между выборками, так как предполагается, что они представляют нагрузку на сервер.Формула выглядит следующим образом: Пропускная способность = (количество запросов) / (общее время).

Дать окончательную формулу:

endTime = lastSampleStartTime + lastSampleLoadTime
startTime = firstSampleStartTime
converstion = unit time conversion value

Throughput = Numrequests / ((endTime - startTime)*conversion)
2 голосов
/ 06 сентября 2013

Дело в том, что мне нужно выполнить свои тесты и собрать результаты в среда без графического интерфейса для некоторых автоматизированных процессов, поэтому я не могу используйте сводный отчет (если нет способа запустить его из командная строка).

Есть. Вы можете использовать инструмент CMD из проекта плагинов JMeter для создания агрегированного отчета в CSV.

http://jmeter -plugins.org / вики / JMeterPluginsCMD /

0 голосов
/ 06 ноября 2015

Предполагая, что вы хотите рассчитать пропускную способность на 20 потоков.Ниже приведены следующие шаги:

  1. Очистите файл jtl с оставшимися записями только для 20 потоков.Сохраните этот файл с 20 потоками вызовов.
  2. Извлеките метку времени из минуты, используя следующую команду

    awk -F"[, .]" '{print $2}' summary.jtl > tps1
    
  3. Выполните следующую команду, чтобы получить пропускную способность / сек

    sort tps1 | uniq -c  > tps2
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...