Siege — это утилита для регрессионного тестирования и тестирования с открытым исходным кодом. Он может провести стресс-тестирование одного URL-адреса с заданным пользователем количеством моделируемых пользователей или может считывать в память множество URL-адресов и подвергать их одновременной нагрузке. Программа сообщает общее количество записанных обращений, переданных байтов, время ответа, параллелизм и статус возврата. Siege поддерживает протоколы HTTP/1.0 и 1.1, директивы GET и POST, файлы cookie, регистрацию транзакций и базовую аутентификацию. Его функции настраиваются индивидуально для каждого пользователя.
Большинство функций настраиваются с помощью параметров командной строки, которые также включают значения по умолчанию, чтобы минимизировать сложность вызова программы. Siege позволяет вам нагружать веб-сервер n количеством пользователей t количество раз, где n и t определяются пользователем. Он записывает продолжительность теста, а также продолжительность каждой отдельной транзакции. Он сообщает количество транзакций, затраченное время, переданные байты, время ответа, скорость транзакций, параллелизм и количество раз, когда сервер ответил «ОК», то есть код состояния 200.
Siege был разработан и реализован Джеффри Фулмером в должности веб-мастера Armstrong World Industries. Он был частично смоделирован по образцу сайта Torture.pl Линкольна Стейна, и его отчетность по данным практически идентична. Но пытка.pl не позволяет одновременно использовать несколько URL-адресов; из этой потребности родилась осада....
Когда программа атакует HTTP-сервер, говорят, что он «находится в осаде».
Siege была написана как для веб-разработчиков, так и для администраторов веб-систем. Это позволяет этим людям тестировать свои программы и системы под принуждением. Как веб-профессионал, вы несете ответственность за целостность своего продукта, но не имеете контроля над тем, кто имеет к нему доступ. Пики трафика могут возникнуть в любой момент. Как узнать, готовы ли вы?
Siege позволит вам поместить эти программы под принуждение, чтобы вы могли лучше понять нагрузку, которую они могут выдержать. Вы будете спать лучше, зная, что ваш сайт может выдержать нагрузку 400 одновременных транзакций, если ваш сайт в настоящее время достигает пика в 250.
Транзакция характеризуется тем, что сервер открывает сокет для клиента, обрабатывает запрос, передает данные по сети и закрывает сокет после завершения. Важно отметить, что ЧЕЛОВЕЧЕСКИМ интернет-пользователям требуется время, чтобы переварить поступающие к ним данные. Пользователи Siege этого не делают. На практике я обнаружил, что 400 одновременных пользователей Siege эквивалентны как минимум в пять раз большему количеству в реальных интернет-сессиях. Вот почему Siege позволяет вам установить задержку ( --delay=NUM ). Если установлено, каждый пользователь осады спит случайное количество секунд от 1 до NUM. Через журналы вашего сервера вы сможете узнать среднее количество времени, проведенное на странице. Рекомендуется использовать это число для учета задержки при моделировании интернет-активности.
Последнюю версию Siege можно получить через анонимный FTP: http://download.joedog.org/siege/siege-latest.tar.gz.
Репозиторий исходного кода находится на GitHub: git clone https://github.com/JoeDog/siege.git.
Вы можете просмотреть в своем браузере здесь: https://github.com/JoeDog/siege.
Обновления и объявления распространяются через JoeDog: http://www.joedog.org/.
Siege была построена с помощью GNU autoconf. Если вы знакомы с программным обеспечением GNU, вам будет удобно установить siege. Для получения более подробной информации обратитесь к файлу INSTALL.
Чтобы включить поддержку HTTPS, вы должны установить в своей системе как openssl, так и openssl-devel.
Чтобы включить кодирование передачи gzip, вам потребуются, чтобы в вашей системе были установлены zlib и zlib-devel.
Все необходимые компоненты должны быть установлены во время компиляции. Если вы добавите библиотеки после компиляции Siege, вам придется запустить ./configure, make и снова выполнить установку.
Предварительные требования для осады не являются зависимостями. Если этих библиотек нет, приложение все равно будет компилироваться и работать. Он просто не будет содержать этих функций.
Документация доступна на страницах man siege(1) Laingsiege(1). В этот дистрибутив включено руководство в формате HTML: manual.html.
Полную документацию по осаде можно найти на сайте www.joedog.org.
Полную информацию о лицензии см. в файле COPYING.
Авторские права (C) Джеффри Фулмера, 2000–2023 гг., [email protected]
Каждому разрешено создавать или распространять дословные копии данного документа в том виде, в каком они были получены, на любом носителе при условии, что уведомление об авторских правах и данное уведомление о разрешении сохраняются, что дает получателю разрешение на повторное распространение по очереди.
Разрешается распространять измененные версии этого документа или его частей при соблюдении вышеуказанных условий, при условии, что они также содержат заметные уведомления с указанием того, кто последним внес в них изменения.
Кроме того, в качестве особого исключения правообладатели дают разрешение связывать код частей этой программы с библиотекой OpenSSL при определенных условиях, как описано в каждом отдельном исходном файле, и распространять связанные комбинации, включая обе.
Вы должны соблюдать Стандартную общественную лицензию GNU во всех отношениях для всего используемого кода, кроме OpenSSL. Если вы измените файл(ы) с помощью этого исключения, вы можете распространить это исключение на свою версию файла(ов), но вы не обязаны это делать.
Если вы не хотите этого делать, удалите этот оператор исключения из своей версии. Если вы удалите этот оператор исключения из всех исходных файлов программы, то удалите его и здесь.