Во время нагрузочного тестирования, как читать отчет в терминале - PullRequest
0 голосов
/ 16 октября 2018

Пока я выполняю нагрузочное тестирование API-интерфейса golang, создается отчет, но я не знаю, что это и как его читать: -

Я запускаю команду в терминале

echo "GET http://localhost:8080/api" | vegeta attack -rate=100/m | vegeta report

, тогда он выдаст следующий отчет: -

Requests      [total, rate]            138, 1.68
Duration      [total, attack, wait]    1m22.20931745s, 1m22.200130205s, 9.187245ms
Latencies     [mean, 50, 95, 99, max]  8.956174ms, 9.06458ms, 10.682252ms, 16.007578ms, 46.439935ms
Bytes In      [total, mean]            19596, 142.00
Bytes Out     [total, mean]            0, 0.00
Success       [ratio]                  100.00%
Status Codes  [code:count]             200:138  
Error Set:

или когда я запусту echo "GET http://localhost:8080/api" | vegeta attack -rate=100/m | vegeta report -type=json

, тогда отчет, сгенерированный вФормат JSON, как показано ниже: -

{"latencies:
{"total":103506418,
"mean":9409674,
"50th":9484403,
"95th":11918898,
"99th":12008257,
"max":12008257},
"bytes_in":{"total":1562,"mean":142},
"bytes_out":
{"total":0,"mean":0},
"earliest":"2018-10-16T14:15:13.251091124+05:30",
"latest":"2018-10-16T14:15:19.251141502+05:30",
"end":"2018-10-16T14:15:19.260119671+05:30",
"duration":6000050378,
"wait":8978169,
"requests":11,
"rate":1.8333179401848014,
"success":1,
"status_codes":{"200":11},
"errors":[]}

Как понять этот отчет.Есть какой-нибудь документ для этого или кто-нибудь знает об этом?

1 Ответ

0 голосов
/ 16 октября 2018

Давайте разберемся это построчно

Запросы [всего, скорость] 138, 1,68

В этой строке выводится общее количество запросов, запущенных в сеансе (138) вместе со скоростью в секунду (1,8 запросов в секунду)

Длительность [всего, атака, ожидание] 1m22.20931745s, 1m22.200130205s, 9.187245ms

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

Задержки [среднее значение, 50, 95, 99, макс.] 8,956174 мс, 9,06458 мс, 10,682252 мс,16,007578 мс, 46,439935 мс

Это просто и наиболее полезно: средняя задержка в миллисекундах, 50-й процентиль, 95-й процентиль и задержка 99-го персиля вместе с запросом, который принял максимальную задержку, задержка 99-го процентиля будет означать 99%ответов было получено в течение этого времени. В зависимости от вашего продукта, вы должны считать 95-е или 99-е число действительным числом, чтобы улучшить

байт [общее, среднее] 19596, 142,00

Общее количество байт, полученных для всех ответов, а также средние байты на ответ

Bytes Out [total, mean] 0, 0,00

Total bytesотправлено для всех запросов, а также средние байты на запрос.Поскольку вы используете GET, который не содержит никакой полезной нагрузки, для вас это 0

Успех [коэффициент] 100,00%

Процент успеха: 100% ваших запросов были успешными

Коды состояния [код: количество] 200: 138

Разделение кода состояния по коду ответа: в вашем случае на все 138 запросов ответили 200 ответов

Набор ошибок:

Разделение кода ошибки: Если были ошибки 400/500, об этом будет сообщено здесь.Это пусто, так как у вас 100% успеха

...