go get -u github.com/rakyll/hey
go install github.com/rakyll/hey
Usage: hey [options...] <url>
Options:
-n Количество запросов для выполнения. По умолчанию — 200.
-c одновременно Количество выполняемых запросов. Общее количество запросов не может быть меньше уровня одновременно. По умолчанию — 50.
-q Ограничение скорости в запросах в секунду (QPS). По умолчанию ограничений нет.
-z Отправьте запрошенную конфигурацию приложения. По истечении времени приложение останавливается и закрывается. Если указана продолжительность, n игнорируется.
пример:- z 10s - z 3m。
-o Тип вывода. Если не указано, распечатывается сводка. «csv» — единственная поддерживаемая альтернатива. Метрики ответа файла дампа в формате значений, разделенных запятыми.
-m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS.
-H Пользовательские HTTP-заголовки. Уточнить желаемое количество можно повторив тег
For example, -H "Accept: text/html" -H "Content-Type: application/xml"
-t Таймаут в секундах для каждого запроса. Значение по умолчанию — 20, используйте 0 для бесконечности.
-A HTTP Accept header.
-d HTTP request body.
-D HTTP request body from file. For example, /home/user/file.txt or ./file.txt.
-T Content-type, defaults to "text/html".
-a Basic authentication, username:password.
-x HTTP Proxy address as host:port.
-h2 Enable HTTP/2.
-host HTTP Host header.
-disable-compression Отключите сжатие.
-disable-keepalive Отключите поддержку активности, чтобы предотвратить повторное использование TCP-соединений между различными HTTP-запросами.
-disable-redirects Отключение последующих действий для перенаправлений HTTP
-cpus Количество используемых процессорных ядер. (Текущая машина по умолчанию имеет 48 ядер)
hey -n 10 -c 2 -m POST -T "application/x-www-form-urlencoded" -d 'username=1&message=hello' http://your-rest-url/resource
[sre@ecs-xxx ~]# hey -n 2000 -c 50 https://www.baidu.com/
Summary:
// Общее время работы
Total: 0.5153 secs
Slowest: 0.0770 secs
Fastest: 0.0067 secs
// среднее время ответа
Average: 0.0097 secs
// Ответов в секунду (QBS)
Requests/sec: 3880.9152
Total data: 454000 bytes
Size/request: 227 bytes
// Гистограмма ответа
Response time histogram:
0.007 [1] |
// Общее количество запросов со временем ответа в диапазоне 0,007~0,014 — 1940.
0.014 [1940] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.021 [4] |
0.028 [0] |
0.035 [0] |
0.042 [1] |
0.049 [0] |
0.056 [5] |
0.063 [26]|■
0.070 [22]|
0.077 [1] |
// Распределение задержки HTTP-запроса
Latency distribution:
10% in 0.0073 secs
25% in 0.0077 secs
50% in 0.0081 secs
75% in 0.0088 secs
90% in 0.0093 secs
95% in 0.0106 secs
// TP99: минимальное время, необходимое для удовлетворения 99% сетевых запросов.
99% in 0.0634 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0010 secs, 0.0067 secs, 0.0770 secs
DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0076 secs
req write: 0.0000 secs, 0.0000 secs, 0.0008 secs
resp wait: 0.0083 secs, 0.0066 secs, 0.0769 secs
resp read: 0.0001 secs, 0.0000 secs, 0.0029 secs
// Распределение кода статуса HTTP
Status code distribution:
[200] 2000 responses
hey -z 5s -c 2 https://www.baidu.com/
hey -n 2000 -c 50 https://www.baidu.com/
hey -z 5s -c 2 -cpus 2 -host "baidu.com" https://220.181.38.148
hey -z 5s -q 128 -H "client-ip:0.0.0.0" -H "X-Up-Calling-Line-Id:X.L.Xia"
https://www.baidu.com/
hey -z 5s -c 50 -m POST -H "info:firstname=xiuli; familyname=xia" -d "year=2020&month=1&day=21"
https://www.baidu.com/
hey -z 5s -c 10 -x "http://127.0.0.1:8001" http://baidu.com/
for i in `seq 10`; do curl -v http://baidu.com; done
hey -n 2000 -c 50 http://192.168.21.224:8833/login