Инструменты для нагрузочного тестирования HTTP-серверов? [дубликат]

] Мне несколько раз приходилось загружать тестовые HTTP-серверы / веб-приложения, и каждый раз я был не в восторге от качества инструментов, которые мне удалось найти.

Итак, какие инструменты вы используете при нагрузочном тестировании HTTP-сервера? И что я, скорее всего, сделаю неправильно в следующий раз?

39
задан 24 March 2015 в 00:29
11 ответов

JMeter свободен.

Mercury Interactive Load Runner супер хорош и супер дорогой.

24
ответ дан 28 November 2019 в 19:46
  • 1
    Мне действительно нравится JMeter. Поскольку можно использовать его для установки расширяемых, полных нагрузочных тестов сайта, или можно провести 5 минут и настроить тест для одной конкретной функции. Хороший интерфейс также, с большим количеством опций. –  Milner 12 May 2009 в 17:30

Я чувствую себя необычно квалифицированным для ответа на этот вопрос, так как моя текущая компания должна моделировать 25 000 одновременных соединений с нашими веб-серверами (мы вручаем онлайн-рекламу).

Для тестирования загрузки чрезвычайно большого объема Httperf является способом пойти. Это свободно, и по нашему опыту, это может моделировать больше одновременных соединений что JMeter или STA на тех же аппаратных средствах.

Править:

На всякий случай Вам любопытно, мы моделируем 3 500 запросов в секунду на низкой мощности, недорогой, ultra-small-form-factor Optiplex 330. Эти небольшие поля стоят только 280$, и у нас есть набор их поднятый трубку для выполнения Httperf, по запросу. Для сравнения JMeter мог только продвинуть приблизительно 800-900 req/sec на этих аппаратных средствах.

21
ответ дан 28 November 2019 в 19:46

Если Вы просто хотите бросить загрузку в единственный 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 удивителен, и он может масштабироваться ко многим тестовым машинам, которые могут бросить огромную загрузку.

20
ответ дан 28 November 2019 в 19:46
  • 1
    Следует иметь в виду это ab' s-n является количеством ответов, полученных, прежде чем это прекратит отправлять запросы. При увеличении параллелизма потоки все еще отправляют запросы, прежде чем ответы будут считаться. Вышеупомянутое на самом деле отправило бы приблизительно 10 005 запросов. JMeter не страдает от этой проблемы. –  Peter Sankauskas 28 August 2009 в 04:21

Существует Tsung, Erlang основывал инструмент.

Существует также действительно длинный список инструментов, законченных по http://www.softwareqatest.com/qatweb1.html#LOAD

8
ответ дан 28 November 2019 в 19:46

Если Вы просто надеетесь тестировать, как это обрабатывает многочисленные связи, можно использовать что-то как Осада. Все еще не уверенный это - большая мера, но это, по крайней мере, скажет Вам, как Вы обрабатываете многочисленные связи

2
ответ дан 28 November 2019 в 19:46

Я использовал openSTA.

Это использует относительно простой язык сценария.

Можно легко протестировать веб-сервисы / серверы и записать собственные сценарии.

Это позволяет Вам соединять сценарии в тесте всегда, Вы хотите и настраиваете количество повторений, число пользователей в каждом повторении, время подъема для представления каждого нового пользователя и задержки между каждым повторением. Тесты могут также быть запланированы в будущем.

Это - открытый исходный код и свободный.

Это представляет много отчетов, которые могут быть сохранены к электронной таблице. Мы затем используем сводную таблицу, чтобы легко проанализировать и изобразить результаты в виде графика.

2
ответ дан 28 November 2019 в 19:46

Я использовал LoadRunner прежде, но, это довольно дорого, я также использовал инструменты выпуска Тестера Команды Microsoft, который включает систему то поведение нагрузочные тесты. Я был довольно доволен тем, как инструмент работал, и Вы могли развернуть тестовое использование .NET, который был более легким синтаксисом для взятия затем LoadRunner.

Версия бегуна загрузки, которого мы использовали также, не могла обработать наш сайт Ajax (Это вернулось в 2000, таким образом, я уверен, что инструмент был улучшен к настоящему времени),

1
ответ дан 28 November 2019 в 19:46

Необходимо будет настроить различные тесты:

  • Нормальный тест, моделируйте пользователей как, они будут вести себя. Вы реализуете, думают время (никакая http ярость 1 с между страницами). Один путь состоит в том, чтобы записать веб-сессию, таким образом, у Вас будет реалистическое время для завершения/читавшего каждой страницы. Загрузка произойдет шаг за шагом, пока Вы не достигнете средней текущей загрузки в производстве
  • Испытание на разрыв: То же как прежде, но добавляют загрузку, пока Вы не получаете первую ошибку http 500. Цель состоит в том, чтобы знать, сколько загрузки можно справиться, пока она не повредится
  • Длительный тест. Вы поддерживаете первый сценарий в рабочем состоянии за 12 часов, чтобы быть уверенными, что у Вас нет утечки памяти или снижения производительности со временем.

После/прежде чем каждого теста необходимо отложить платформу как прежде: база данных восстановления, перезагрузка для очистки памяти и кэша.

Вы также реализуете прогрев: сценарии Запуска однажды реальный тест, таким образом, веб-страницы компилируются, соединение со сделанной базой данных. Еще, первый вызов всегда будет плох в Вашей статистике.

Можно добавить сложность, как:

  • используйте различные сценарии (посетители/гость, участники), который будет работать по-другому.
  • Моделируйте differents доступ пропускной способности
  • Рандомизируйте искавшее слово и думайте время.

Одна последняя важная вещь: НЕОБХОДИМО сохранить весь завершенный сценарий, чтобы смочь сделать их снова точно тем же путем, таким образом, можно сравнить производительность с предыдущими тестами.

5
ответ дан 28 November 2019 в 19:46

Мы используем WAPT, и он работает очень хорошо. Легкий настроить, и всего несколько сотен маркеров. LoadRUnner смехотворно переоценен, и полностью вне досягаемости для всех кроме hte Forutune 500.

1
ответ дан 28 November 2019 в 19:46

Это зависит от того, насколько сложный Ваш сценарий.

Для корректного моделирования реальных пользователей загружаются на сервере, необходимо попытаться моделировать то, что на самом деле делают пользователи. Если бы Ваши пользователи просто поражают сервер URL, любой из свободных/простых инструментов сделал бы.

Для веб-сайта, которые немного более сложны, Вы хотели бы использовать инструмент, который помогает Вам с динамической корреляцией значения, параметризацией и т.д. Можно использовать Бегуна Загрузки и т.п., я предпочитаю использовать WebLOAD.

0
ответ дан 28 November 2019 в 19:46

Для быстрого теста вы можете использовать последовательности 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.

6
ответ дан 28 November 2019 в 19:46

Теги

Похожие вопросы