1. Предисловие
Тестирование производительности, как незаменимое звено обеспечения качества программного обеспечения, направлено на оценку и улучшение эффективности работы, стабильности и скорости реакции продукта в различных условиях нагрузки. Речь идет не только об обнаружении узких мест системы, но и об использовании научных методов и инструментов, чтобы гарантировать, что наши продукты могут оставаться бесперебойными, стабильными и эффективными при одновременном доступе большого количества пользователей, обработке больших данных или высокоинтенсивных вычислениях.
В этой статье будет представлен бесплатный Инструмент тестирования производительности — Siege, который может выполнять нагрузочное тестирование и бенчмаркинг.
2. Введение
Siege — это инструмент тестирования производительности для http-нагрузочного тестирования и сравнительного анализа. Он предназначен для того, чтобы веб-разработчики могли измерить свой код и посмотреть, как он загружается в Интернете. Siege поддерживает базовую аутентификацию, файлы cookie, протоколы HTTP, HTTPS и FTP. Это позволяет пользователям получать доступ к серверу с помощью настраиваемого количества имитированных клиентов для проверки производительности сервера в одновременных условиях.
Продолжительность атаки измеряется общим количеством транзакций, смоделированных пользователей и количеством повторных атак каждого смоделированного пользователя на сервер, поэтому 20 одновременных пользователей 50 раз — это длина теста в 1000 транзакций. Показатели производительности, включая затраченное время теста, объем переданных данных (включая заголовки запросов), время ответа сервера, скорость транзакций, пропускную способность, параллелизм и количество возвратов ОК, оцениваются количественно и сообщаются в конце каждого запуска.
Поддержка платформы:
Siege написана на GNU/Linux и успешно портирована на AIX, BSD, HP-UX и Solaris. Он компилируется в большинстве вариантов System V UNIX и в большинстве новых систем BSD. Поскольку Siege опирается на функции POSIX.1b, которые Microsoft не поддерживает, он не будет работать в Windows. Конечно, вы можете использовать Siege для тестирования серверов Windows.
Официальный сайт:
https://www.joedog.org/siege-home/
3. Установка
1. Адрес загрузки установочного пакета:
https://download.joedog.org/siege/
Например, загрузите версию siege-4.1.6.tar.gz, а затем последовательно выполните такие операции, как распаковка, компиляция и установка.
tar -xvf siege-4.1.6.tar.gz
cd siege-4.1.6
./configure
make
make install
2. Установка в среде Mac:
brew install siege
4. Приступайте к работе быстро
После завершения установки, чтобы проверить, прошла ли установка успешно, вы можете напрямую ввести команду осады в терминале.
Вы можете видеть, что указана информация об использовании параметров.
Подробное объяснение параметров:
-V, --version ВЕРСИЯ, номер версии печати.
-h, --help ПОМОГИТЕ, распечатайте этот раздел.
-C, --config КОНФИГУРАЦИЯ: отображает текущую конфигурацию.
-v, --verbose ПОДРОБНО, печатает уведомление на экране.
-q, --quiet ТИХИЙ: отключает подробную функциональность и подавляет вывод.
-g, --get GET извлекает заголовки HTTP-запросов и отображает транзакции, что отлично подходит для отладки приложений.
-p, --print PRINT, как и GET, печатает только всю страницу.
-c, --concurrent=NUM одновременно пользователь, значение по умолчанию — 10.
-r, --reps=NUM REPS, количество запусков теста, не может существовать одновременно с -t.
-t, --time=NUMm Тест времени, где «m» — модификатор S, M или H, например: --time=1H, 1 час теста.
-d, --delay=NUM Задержка времени, случайная задержка перед каждым запросом.
-b, --benchmark Тест производительности: нет задержки между запросами.
-i, --internet Пользователи Интернета моделируются и случайным образом нажимают на URL-адреса.
-f, --file=FILE ФАЙЛ, выберите конкретный URL-файл.
-R, --rc=FILE RC, укажите файл siegerc.
-l, --log[=FILE] Войти в файл. Если FILE не указан, используется значение по умолчанию: PREFIX/var/siege.log.
-m, --mark="text" MARK, пометьте файл журнала строкой. От 0,001 до числа (не включается в статистику).
-H, --header="text" Добавьте в запрос заголовок запроса (может быть несколько).
-A, --user-agent="text" Установите пользовательский агент в запросе.
-T, --content-type="text" Установите тип контента в запросе.
-j, --json-output JSON OUTPUT, выводит окончательную статистику на стандартный вывод в формате JSON.
--no-parser NO PARSER, закройте парсер HTML-страницы.
--no-follow NO FOLLOW,Нетсосредоточиться HTTP-перенаправление.
1. Введите команду загрузки на терминале.
Например, выполните нагрузочный тест для трех URL-адресов одновременно и выполните его 2 раза.
siege -c 3 -r 2 https://www.httpbin.org/get
2. Результаты выполнения
Общее количество кликов: 6 кликов
Процент успеха: 100,00%
Сколько секунд всего это заняло: 2,78 секунды.
Всего передано данных: 0,00 MB
Время отклика: 1,27 секунды
Среднее количество обрабатываемых запросов в секунду: 2,16 оборотов в секунду.
Пропускная способность: 0,00 МБ/с
Самый высокийодновременно:2.74
Количество успешных запросов: 6
Количество неудачных запросов: 0
Максимальное время, затраченное на перевод: 1,55.
Минимальное время, потраченное на перевод: 0,86