
Simple performance tests (apache ab)
09 июля 2025
Задача - нужно проверить нагрузку на сайт, бекенд. Для этого можно воспользоваться postman runner'ом
, можно
использовать более серьезную тулу такую как Apache JMeter
Но можно и для базовых вещей воспользоваться apache ab
.
Подробнее документация тут - https://httpd.apache.org/docs/current/programs/ab.html
Самый большой вопрос - как скачать? Идем сюда - https://www.apachelounge.com/download/ - скачиваем
httpd-2.4.63-250207-win64-VS17.zip
и достаем Apache24\bin\ab.exe
. Далеее выполняем в консоле рядом с этим файлом команду
ab -n 100 -c 10 http://google.com/
обязателько в конце нужно ставить /
без этого не дает отправить запрос.
Получаем результат
This is ApacheBench, Version 2.3 <$Revision: 1923142 {@blogEngine:GEN_page.pageContentHtml}gt;
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking google.com (be patient).....done
Server Software: gws
Server Hostname: google.com
Server Port: 80
Document Path: /
Document Length: 219 bytes
Concurrency Level: 10
Time taken for tests: 8.693 seconds
Complete requests: 100
Failed requests: 0
Non-2xx responses: 100
Total transferred: 77300 bytes
HTML transferred: 21900 bytes
Requests per second: 11.50 [#/sec] (mean)
Time per request: 869.311 [ms] (mean)
Time per request: 86.931 [ms] (mean, across all concurrent requests)
Transfer rate: 8.68 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 77 85 3.9 84 95
Processing: 92 730 134.5 765 865
Waiting: 92 522 196.6 516 791
Total: 172 815 134.4 850 947
Percentage of the requests served within a certain time (ms)
50% 850
66% 854
75% 857
80% 858
90% 864
95% 870
98% 874
99% 947
100% 947 (longest request)
Рекомендую смотреть показания напротив 90%
Более сложный пост запрос можно сделать так
ab -c 10 -n 100 -p request.json -T application/json -H 'Authorization: Bearer XXX' http://myserver/myapi/
где
-c
имитация клиентов - количество одновременных запросов-n
количество повторений в тесте-p
использовать пост вместо гет (обычно чаще стоит тестировать гет)request.json
- тело пост запроса-H
- добавить хедер-T
- установить Content-Type