Решил рассказать о тулзах для тестирования нагрузки которые я использую в работе. Сейчас конкретно пойдет речь о измерении производительности HTTP веб-серверов. Это не совсем обзор, скорее поверхносный, и представлю лишь 3 тулзы.
AB
Однопоточная программа для командной строки, использующаяся для измерения производительности HTTP веб-серверов. Изначально разработанная для тестирования HTTP-сервера Apache, в основном подходит для тестирования любого веб-сервера.
Если нужен простой тест по нагрузке определенной страницы (или списка) достаточно использовать ее.
Использование:
1
|
|
Сделает 1000 HTTP GET запросов, обработка до 10 запросов одновременно, к указанному URL.
Получим примерно такой отчетик:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
Siege
Siege умеет выполнять многопоточное нагрузочное тестирование web-серверов по протоколу HTTP (S)/1.0/1.1 методами GET и POST. Утилита симулирует параллельные запросы к веб-серверу на протяжении заданного времени и в конце теста вычисляет следующие показатели:
- среднее количество транзакций, которые сервер смог обрабатывать одновременно.
- среднее время, потребовавшееся серверу для ответа;
- среднее количество транзакций в секунду;
- длительность самой долгой и самой быстрой транзакций;
- объём переданных данных и скорость обмена данными с сервером;
- количество совершённых транзакций в процессе тестирования;
- количество и процентное соотношение успешных/неудачных транзакций;
Запросы к серверу утилита может выполнять как к одному и тому же URL, так к разным на основе списка. Паузы между запросами к серверу могут быть как произвольными в пределах заданного интервала, так и вовсе отсутствовать, позволяя таким образом выполнять тест производительности сервера.
Главное отличие от ab
это какразтаки умени “симулировать” реальное поведение при highload.
Выполним запрос 1000 раз, только теперь одновременно будем отправлять по 10 запросов за раз:
1
|
|
Если необходимо использовать список url:
1
|
|
Результат будет таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
iperf
Мощнейшая кроссплатформенная консольная утилита генерирования трафика. С ее помощью можно легко измерить пропускную способность канала между двумя компьютерами. Iperf работает в режиме клиент-сервер.
1 2 |
|
Для данной утилиты есть так же gui интерфейс Jperf
Для тестирования конкретно http серверов я использую связку siege + ab, потом делаю срезы по конкретно интересующим данным.
Если тема будет интересна, раскажу еще других штуках для пентестов.