На этот вопрос уже есть ответ здесь:
] Мне несколько раз приходилось загружать тестовые HTTP-серверы / веб-приложения, и каждый раз я был не в восторге от качества инструментов, которые мне удалось найти.
Итак, какие инструменты вы используете при нагрузочном тестировании HTTP-сервера? И что я, скорее всего, сделаю неправильно в следующий раз?
JMeter свободен.
Mercury Interactive Load Runner супер хорош и супер дорогой.
Я чувствую себя необычно квалифицированным для ответа на этот вопрос, так как моя текущая компания должна моделировать 25 000 одновременных соединений с нашими веб-серверами (мы вручаем онлайн-рекламу).
Для тестирования загрузки чрезвычайно большого объема Httperf является способом пойти. Это свободно, и по нашему опыту, это может моделировать больше одновременных соединений что JMeter или STA на тех же аппаратных средствах.
На всякий случай Вам любопытно, мы моделируем 3 500 запросов в секунду на низкой мощности, недорогой, ultra-small-form-factor Optiplex 330. Эти небольшие поля стоят только 280$, и у нас есть набор их поднятый трубку для выполнения Httperf, по запросу. Для сравнения JMeter мог только продвинуть приблизительно 800-900 req/sec на этих аппаратных средствах.
Если Вы просто хотите бросить загрузку в единственный URL за один раз на веб-сервере, затем загружают Apache AB. Это идет с Apache сервер HTTP.
Простая команда
ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers
выполнил бы 10 000 запросов с параллелизмом 10 пользователей.
Если Вы хотите записать сессии просмотра, затем идут upvote и принимают ответ jmeter. Jmeter удивителен, и он может масштабироваться ко многим тестовым машинам, которые могут бросить огромную загрузку.
Существует Tsung, Erlang основывал инструмент.
Существует также действительно длинный список инструментов, законченных по http://www.softwareqatest.com/qatweb1.html#LOAD
Я использовал openSTA.
Это использует относительно простой язык сценария.
Можно легко протестировать веб-сервисы / серверы и записать собственные сценарии.
Это позволяет Вам соединять сценарии в тесте всегда, Вы хотите и настраиваете количество повторений, число пользователей в каждом повторении, время подъема для представления каждого нового пользователя и задержки между каждым повторением. Тесты могут также быть запланированы в будущем.
Это - открытый исходный код и свободный.
Это представляет много отчетов, которые могут быть сохранены к электронной таблице. Мы затем используем сводную таблицу, чтобы легко проанализировать и изобразить результаты в виде графика.
Я использовал LoadRunner прежде, но, это довольно дорого, я также использовал инструменты выпуска Тестера Команды Microsoft, который включает систему то поведение нагрузочные тесты. Я был довольно доволен тем, как инструмент работал, и Вы могли развернуть тестовое использование .NET, который был более легким синтаксисом для взятия затем LoadRunner.
Версия бегуна загрузки, которого мы использовали также, не могла обработать наш сайт Ajax (Это вернулось в 2000, таким образом, я уверен, что инструмент был улучшен к настоящему времени),
Необходимо будет настроить различные тесты:
После/прежде чем каждого теста необходимо отложить платформу как прежде: база данных восстановления, перезагрузка для очистки памяти и кэша.
Вы также реализуете прогрев: сценарии Запуска однажды реальный тест, таким образом, веб-страницы компилируются, соединение со сделанной базой данных. Еще, первый вызов всегда будет плох в Вашей статистике.
Можно добавить сложность, как:
Одна последняя важная вещь: НЕОБХОДИМО сохранить весь завершенный сценарий, чтобы смочь сделать их снова точно тем же путем, таким образом, можно сравнить производительность с предыдущими тестами.
Это зависит от того, насколько сложный Ваш сценарий.
Для корректного моделирования реальных пользователей загружаются на сервере, необходимо попытаться моделировать то, что на самом деле делают пользователи. Если бы Ваши пользователи просто поражают сервер URL, любой из свободных/простых инструментов сделал бы.
Для веб-сайта, которые немного более сложны, Вы хотели бы использовать инструмент, который помогает Вам с динамической корреляцией значения, параметризацией и т.д. Можно использовать Бегуна Загрузки и т.п., я предпочитаю использовать WebLOAD.
Для быстрого теста вы можете использовать последовательности curls и наборы URL-адресов. Скажем, например, мы собираемся запустить нагрузочный стресс-тест для Google, который мы можем запустить ...
curl -s "http://google.com?[1-1000]"
Это сделает 1000 вызовов Google, т.е.
http://google.com?1
http://google.com?2
http://google.com?3
...
http://google.com?1000
Это более подробно обсуждается в Как быстро стресс-тест веб-сервер с curl.