Выполняете стресс-тест в веб-приложении?

244

В прошлом я использовал стресс-инструмент Microsoft Web Application и Pylot для стресс-тестирования веб-приложений. Я написал простую домашнюю страницу, сценарий входа и пошаговое руководство сайта (на сайте электронной коммерции добавление нескольких товаров в корзину и оформление заказа).

Простое попадание на домашнюю страницу с несколькими разработчиками почти всегда выявляет серьезную проблему. Больше проблем с масштабируемостью возникнет на втором этапе, а еще больше - после запуска.

URL-адресами инструментов, которые я использовал, были Microsoft Homer (он же инструмент веб-приложений Microsoft Stress Tool ) и Pylot .

Отчеты, генерируемые этими инструментами, никогда не имели для меня особого смысла, и я потратил много часов, пытаясь выяснить, какую параллельную нагрузку сможет поддерживать сайт. Это всегда стоило того, потому что всегда возникали самые глупые ошибки и узкие места (например, неправильная конфигурация веб-сервера).

Что вы сделали, какие инструменты вы использовали, и какой успех вы достигли с вашим подходом? Для меня наиболее интересной является разработка какой-то осмысленной формулы для расчета количества одновременно работающих пользователей, которое приложение может поддерживать по числам, сообщаемым приложением для стресс-теста.

deadprogrammer
источник

Ответы:

110

Вот еще один голос за JMeter .

JMeter - это инструмент нагрузочного тестирования с открытым исходным кодом, написанный на Java. Он способен тестировать несколько различных типов серверов (например, веб, веб-сервисы, базы данных, практически все, что в основном использует запросы).

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

Плюсы:

  • Открытый исходный / бесплатный инструмент от проекта Apache (помогает с бай-ином)
  • Легко начать, и легко использовать, как только вы поймете основные понятия. (То есть, как создать запрос, как создать утверждение, как работать с переменными и т. Д.).
  • Очень масштабируемый Я провел тесты с 11 машинами, генерирующими нагрузку на сервер, на уровне почти миллиона обращений в час. Это было намного проще в настройке, чем я ожидал.
  • Имеет активное сообщество и хорошие ресурсы, которые помогут вам начать работу. Сначала прочитайте руководства и поиграйте с ними некоторое время.

Минусы:

  • Пользовательский интерфейс написан на Swing. (Тьфу!)
  • JMeter работает путем анализа текста ответа, возвращаемого сервером. Так что, если вы хотите проверить любое поведение javascript, вам не повезло.
  • Кривая обучения крутая для непрограммистов. Если вы знакомы с регулярными выражениями, вы уже впереди игры.
  • На форуме поддержки есть большое количество ( вставьте ругательных ) идиотов, задающих глупые вопросы, которые можно легко решить, если бы они взглянули на документацию даже беглым взглядом. («Как использовать JMeter для стресс-тестирования моего Windows GUI» появляется довольно часто).
  • Отчетность «из коробки» оставляет желать лучшего, особенно для более крупных тестов. В тесте, о котором я упоминал выше, мне пришлось написать быстрое консольное приложение, чтобы выполнить некоторые преобразования «xml-logfile» в «html». Это было несколько лет назад, поэтому, вероятно, это больше не потребуется.
Питер Бернье
источник
уточните, может ли JMeter помочь вам протестировать приложение, установленное на удаленном VPS? Я не уверен, так как это настольная версия
Раджат Гупта
1
Еще одна опция, связанная с JMeter, о которой следует знать, это JMeter как услуга. Эти типы SaaS предоставляют хорошо масштабируемый JMeter вместе со значительно улучшенными отчетами.
Офир Прусак
5
Я не согласен с тем, что JMeter очень масштабируем. Миллион запросов в час - это всего лишь 278 запросов в секунду, что - для запуска на 11 машинах - крайне мало по сравнению с другими инструментами. Я бы на самом деле поставил масштабируемость JMeter на сторону минусов.
Хейман
JMeter не браузер, он работает на уровне протокола. Что касается веб-сервисов и удаленных сервисов, JMeter выглядит как браузер (точнее, несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. Веб-приложения должны быть «выполнены» для выполнения.
LeonanCarvalho
36

Я использовал Grinder . Это открытый исходный код, довольно простой в использовании и очень настраиваемый. Он основан на Java и использует Jython для сценариев. Мы работали с веб-приложением .NET, поэтому не думайте, что это инструмент только для Java (по своей природе, любой веб-инструмент стресса не должен быть привязан к платформе, которую он использует).

Мы сделали с ней несколько полезных вещей ... мы были веб-приложением для телекоммуникаций, поэтому я выбрал классное использование, чтобы имитировать набор номера через наше веб-приложение, а затем использовал инструмент автоответчика, который у нас был (который был в основном учебным пособием). приложение от Microsoft для подключения к их серверу RTC LCS ... к которому подключается Microsoft Office Communicator в локальной сети ... затем измененное для автоматического приема вызовов). Это позволило нам использовать это вместо дорогого инструмента телефонии под названием The Hammer (или что-то в этом роде).

В любом случае, мы также использовали инструмент, чтобы увидеть, как наше приложение выдерживает высокие нагрузки, и это было очень эффективно при поиске узких мест. Инструмент имеет встроенную систему отчетов, чтобы показать, сколько времени занимает запрос, но мы никогда не использовали его. Журналы могут также хранить все ответы и еще много чего, или настраиваемое ведение журнала.

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

Майк Стоун
источник
1
+1 для мясорубки. Мне особенно понравилась опция сценариев прокси.
davek
Любой шанс, что это может быть использовано для имитации простоя браузера. Запросы к серверу отправляются из неактивного браузера каждые две секунды для нашего приложения. Я хотел бы знать, что происходит, когда у нас тридцать одновременно работающих браузеров.
Рами
1
+1 для мясорубки. в сочетании с EC2 мы успешно использовали его для ускорения 100k одновременных пользователей.
Nategood
23

Немного опоздал на эту вечеринку. Я согласен с тем, что Pylot - это лучший новый инструмент с открытым исходным кодом. Он прост в использовании и активно работает над отличным парнем ( Кори Голдберг ). Как основатель OpenQA , я также рад, что Pylot теперь указан на нашей домашней странице и использует некоторую часть нашей инфраструктуры (а именно форумы).

Тем не менее, я также недавно решил, что вся концепция нагрузочного тестирования была ошибочной: эмуляция HTTP-трафика, с приложениями, какими бы сложными они ни стали, - это боль в заднице. Вот почему я создал коммерческий инструмент BrowserMob. Это служба внешнего нагрузочного тестирования, которая использует Selenium для управления реальными веб-браузерами при воспроизведении нагрузки.

Подход , очевидно , требует тонн больше оборудования , чем обычные методы тестирования нагрузки, но аппаратные средства на самом деле довольно дешево , когда вы используете облачные вычисления. И хорошим побочным эффектом этого является то, что сценарии намного проще, чем обычное нагрузочное тестирование. Вам не нужно выполнять какие-либо расширенные сопоставления с регулярными выражениями (как того требует JMeter), чтобы извлечь файлы cookie, состояние сеанса .NET, параметры запроса Ajax и т. Д. Поскольку вы используете настоящие браузеры, они просто делают то, что должны.

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

Патрик Лайтбоди
источник
2
Автор Pylot
codeape
2
Ссылка на pylot.org перенаправляет на какой-то подозрительный сайт.
mpiktas
15

Я использовал JMeter . Помимо тестирования веб-сервера вы также можете протестировать свою базу данных, службы обмена сообщениями и почтовые серверы.

Grom
источник
12

абы , осада , цзун , httperf , Пробивной , Pylot, запрос лог-анализатор , perftools

Гарри Лав
источник
1
Недавно я работал с tsung, это отличный инструмент (для действительно СТРЕСС-тестирования), здесь, как настроить progrnotes.blogspot.com/2011/11/… oricial docs tsung.erlang-projects.org/user_manual.html
Сергей
Я также нашел полезными openload: linuxpoison.blogspot.com/2010/12/…
wael34218
9

Для простого использования я предпочитаю ab (apache benchmark) и осаду, позже понадобится, так как ab не поддерживает cookie и создаст бесконечные сессии с динамического сайта.

оба просты для начала:

ab -c n -t 30 url

siege -b -c n -t 30s url

Осада может работать с большим количеством URL.

последняя версия осады включила многословие в siegerc, что раздражает. Вы можете отключить его только путем редактирования этого файла ( /usr/local/etc/siegerc).

Бен Ли
источник
9

Для веб-службы, проверить loader.io .

Резюме:

loader.io - это бесплатная служба нагрузочного тестирования, которая позволяет вам стресс-тестировать ваши web-приложения / apis с тысячами одновременных подключений.

У них также есть API .

danriti
источник
2
Это хорошая альтернатива тестированию ваших собственных машин на ваших собственных машинах
nurettin
9

Поскольку этот вопрос все еще открыт, я мог бы также взвесить.

Хорошая новость заключается в том, что за последние 5 или около того лет инструменты с открытым исходным кодом действительно повзрослели и взлетели в космос, а плохие новости - их так много.

Вот мои мысли:

Jmeter против Grinder

Jmeter основан на спецификации стиля XML, созданной с помощью графического интерфейса.

Grinder использует Jython-скриптинг в многопоточной среде Java, поэтому больше ориентирован на программистов.

Оба инструмента будут обрабатывать HTTP и HTTPS и иметь прокси-рекордер для начала работы. Оба инструмента используют модель контроллера для управления несколькими агентами тестирования, поэтому масштабируемость не является проблемой (при наличии доступа к облаку).

Что лучше:-

Сложный вызов, так как кривая обучения сложна с обоими инструментами, поскольку вы попадаете в более сложные требования сценариев для переписывания URL-адресов, корреляции, предоставления уникальных данных для каждого виртуального пользователя и моделирования первых или возвращающихся пользователей (путем манипулирования заголовками HTTP).

Тем не менее, я бы начал с Jmeter, так как у этого инструмента огромное количество поклонников, и в Интернете есть много примеров и учебных пособий по использованию этого инструмента. Если и когда вы придете к «дорожному блоку», это то, что вы не можете «легко» сделать с помощью Jmeter, тогда взгляните на Grinder. Хорошей новостью является то, что оба эти инструмента имеют одинаковые требования к Java, и решение «смешать и сопоставить» не исключено.

Что-то новое для добавления - безголовые браузеры с несколькими экземплярами Selenium WebDriver.

Это относительно новый подход, поскольку он основан на доступности ресурсов, которые теперь можно предоставлять из облака. При таком подходе сценарий Selenium (WebDriver) берется и запускается в автономном браузере (т. Е. WebDriver = New HtmlUnitDriver ()) в нескольких потоках.

Исходя из опыта, в Amazon M1 Small Instance может быть выполнено около 25 экземпляров «безголовых браузеров».

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

Масштабируемость нарушена, так как для управления нагрузкой потребуется больше виртуальных машин по сравнению с HTTP-драйвером, таким как Grinder или Jmeter. Тем не менее, если вы хотите управлять 500 виртуальными пользователями, то с 20 малыми инстансами Amazon (6 центов в час) по цене всего $ 1,20 в час вы получаете нагрузку, очень близкую к реальной работе пользователя.

Ян Флеминг
источник
Grinder также может использовать скрипты Clojure.
user100464
7

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

alecxe
источник
7

Недавно мы начали использовать Gatling для нагрузочного тестирования. Я очень рекомендую опробовать этот инструмент для нагрузочного тестирования. Мы использовали SOASTA и JMETER в прошлом. Наша основная причина рассмотреть Гатлинг заключается в следующем:

  • Рекордер для записи сценария
  • Использование Akka и Netty, которое дает лучшую производительность по сравнению с моделью Jmeter Threading
  • DSL Scala, который очень удобен в обслуживании по сравнению с Jmeter XML
  • Легко писать тесты, не пугайте, если это скала.
  • Составление отчетов

Позвольте привести простой пример написания кода с использованием кода Гатлинга:

// your code starts here  
val scn = scenario("Scenario")  
     .exec(http("Page")
     .get("http://example.com")) 
// injecting 100 user enter code here's on above scenario.   
setUp(scn.inject(atOnceUsers(100)))       

Однако вы можете сделать это как можно более сложным. Одной из особенностей, которая выделяется для Гатлинга, является отчетность, которая очень детальна.

Вот несколько ссылок:
Gatling
Gatling Tutorial

Я недавно выступил с докладом об этом, вы можете прочитать его здесь:
https://docs.google.com/viewer?url=http%3A%2F%2Ffiles.meetup.com%2F3872152%2FExploring-Load-Testing-with -Gatling.pdf

Сунил Капил
источник
6

Это старый вопрос, но я думаю, что новые решения заслуживают упоминания. Оформить заказ LoadImpact: http://www.loadimpact.com .

Крис Ф
источник
Да. Я только что посмотрел на это. Нашел его в Google, прежде чем найти этот вопрос. Я думаю, что веб-приложение - это хороший подход, но я не был уверен, действительно ли оно продвигает мой сервер. Хотя стоило попробовать, без сомнения. Tbh, я действительно испытываю желание зарегистрироваться для полной учетной записи.
Чарли
4

Я попробовал WebLoad , это довольно аккуратный инструмент. Он поставляется с тестовой средой IDE, которая позволяет записывать действия пользователя на веб-сайте. Он также рисует график во время стресс-теста на вашем веб-сервере. Попробуйте, я очень рекомендую это.

Alvin
источник
1
Я тоже рекомендую WebLoad. Это отличный инструмент, простой в использовании, и отчеты очень полезны. Я предполагаю, что вы работаете на платформе Windows, поэтому эти результаты в сочетании с perfmon позволят вам узнать практически все, что вам нужно знать.
Бабак Наффас
2
Обратите внимание, что сейчас WebLoad является чисто коммерческим. Они разослали электронные письма с цитатой: -------- -WebLOAD Open Source был объявлен End of life (EOL) -Если у вас все еще есть версия продукта, мы напоминаем вам, что в соответствии с EULA любое распространение Продукт или использование его для обслуживания третьих лиц строго запрещено. ------- Распространение версии с открытым исходным кодом запрещено? Даже использование этого способа, которое им не нравится, запрещено? Не то поведение, с которым я бы хотел иметь дело.
Джошдан
1
Ссылка на домен теперь просто реклама - срок действия исходного домена истек.
dodgy_coder
@Joshdan, поэтому GPL важен.
Турбьерн Равн Андерсен
3

Пробуя все упомянутое здесь, я нашел curl-loader как лучший для моих целей. Очень простой интерфейс, мониторинг в реальном времени, полезная статистика, из которой я строю графики производительности. Все функции libcurl включены.

DominiCane
источник
3

Blaze meter имеет расширение Chrome для записи сессий и их экспорта в JMeter (в настоящее время требуется вход в систему). У вас также есть возможность заплатить им деньги за запуск их на их кластере серверов JMeter (их цена кажется намного лучше, чем у LoadImpact, который я только что прекратил использовать):

У меня нет с ними никакой связи, мне просто нравится внешний вид их сервиса, хотя я еще не использовал платную версию.

Gerry
источник
2

Вы задавали этот вопрос почти год назад, и я не знаю, ищите ли вы еще один способ сравнительного анализа вашего сайта. Однако, поскольку этот вопрос все еще не помечен как решенный, я хотел бы предложить бесплатный веб-сервис LoadImpact (кстати, не аффилированный). Просто получил эту ссылку через твиттер и хотел бы поделиться этой находкой. Они создают неплохой обзор, и за несколько баксов вы получаете «полный эффект». Это, наверное, звучит странно, но удачи в продвижении и торможении вашего сервиса :)

merkuro
источник
1

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

Это позволяет записывать сеанс с веб-сайтом, а затем воспроизводить его на относительно простом языке сценариев.

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

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

Это с открытым исходным кодом и бесплатно.

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

rbrayb
источник
1

Мы используем упомянутый инструмент Microsoft - инструмент для стресса веб-приложений Microsoft. Это самый простой инструмент, который я использовал. Он ограничен во многих отношениях, включая возможность подключения к порту 80 только в тестах, созданных вручную. Но его простота использования означает, что он действительно привыкнет.

Мы дополняем нагрузку этого инструмента другими инструментами, включая OpenSTA и пауков проверки ссылок.

JMeter выглядит хорошо с моей первоначальной оценки, я надеюсь включить ее в нашу непрерывную интеграцию в будущем. Но JMeter сложен и нетривиален для развертывания.

Я бы посоветовал открыть еще один вопрос, касающийся интерпретации результатов стресс-теста MS.

Джерри Б
источник
1

Visual Studio Test Edition 2010 (2008 тоже хорошо). Это действительно простой и мощный инструмент для создания веб / нагрузочных тестов.

Преимущество этого инструмента при использовании против серверов Windows заключается в том, что вы получаете интегрированный доступ ко всей статистике сервера perfmon в своем отчете. Действительно полезно.

Другой бонус заключается в том, что с проектом Visual Studio вы можете интегрировать «Performance Session», который будет профилировать выполнение кода вашего сайта.

Если вы обслуживаете веб-страницы с сервера Windows, это лучший инструмент.

Существует отдельная и дорогая лицензия, необходимая для использования нескольких машин для тестирования приложения.

натуральный
источник
1

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

Итак, во время разработки мы включаем очень простое многопользовательское тестирование (с использованием селена), которое проверяет основные сумасшествия, такие как нарушение управления сеансами, очевидные проблемы параллелизма и очевидные проблемы нехватки ресурсов. Нетривиальные проекты включают это в процесс непрерывной интеграции, поэтому мы получаем очень регулярную обратную связь.

Для проектов, которые не предъявляют экстремальных требований к производительности, мы включаем базовое тестирование производительности в наше тестирование; обычно мы пишем тесты с помощью BadBoy и импортируем их в JMeter, заменяя данные для входа и другие специфичные для потока вещи. Затем мы увеличиваем их до уровня, когда сервер обрабатывает 100 запросов в секунду; если время отклика меньше 1 секунды, этого обычно достаточно. Мы запускаем и движемся дальше по жизни.

Для проектов с экстремальными требованиями к производительности мы по-прежнему используем BadBoy и JMeter, но прилагаем много усилий для понимания узких мест на серверах нашего тестового стенда (обычно веб-серверы и серверы баз данных). Есть хороший инструмент для анализа журналов событий Microsoft который очень помогает в этом. Обычно мы находим неожиданные узкие места, которые мы оптимизируем, если это возможно; это дает нам приложение, которое работает так же быстро, как и на «1 веб-сервере, 1 сервере базы данных». Затем мы обычно развертываем в нашей целевой инфраструктуре и используем один из сервисов «Jmeter in the cloud» для повторного запуска тестов в масштабе.

Опять же, отчеты PAL помогают проанализировать то, что произошло во время тестов - вы часто видите очень узкие места в производственных средах.

Главное - убедиться, что вы не только запускаете стресс-тесты, но и собираете информацию, необходимую для понимания производительности вашего приложения.

Невилл Кайт
источник
1

Есть много хороших инструментов, упомянутых здесь. Интересно, являются ли инструменты ответом на вопрос: «Как вы проводите стресс-тестирование веб-приложения?» Инструменты на самом деле не обеспечивают способ подчеркнуть веб-приложение. Вот что я знаю:

Стресс-тестирование показывает, как веб-приложение дает сбой при обслуживании ответов для растущего числа пользователей. Стресс-тестирование показывает, как работает веб-приложение, когда оно не работает. Большинство современных веб-приложений, особенно социальные и мобильные веб-приложения, представляют собой интеграцию сервисов. Например, когда в мае 2011 года произошел сбой Facebook, вы не могли войти в веб-приложение Pepsi.com. Приложение не полностью вышло из строя, только большая часть его нормальной функции стала недоступной для пользователей.

Тестирование производительности показывает способность веб-приложения поддерживать время отклика независимо от того, сколько пользователей одновременно используют приложение. Например, приложение, которое обрабатывает 10 транзакций в секунду с 10 одновременными пользователями, должно обрабатывать 20 транзакций в секунду для 20 пользователей. Если приложение обрабатывает менее 20 транзакций в секунду, время отклика увеличивается, и приложение не может достичь линейной масштабируемости.

Кроме того, в приведенном выше примере количество транзакций в секунду должно соответствовать только успешным операциям тестового сценария использования / рабочего процесса. Сбои обычно происходят в более короткие промежутки времени и делают измерения TPS чрезмерно оптимистичными. Сбои важны для нагрузочного теста и теста производительности, поскольку они также создают нагрузку на приложение.

Я написал методологию PushToTest в Руководстве пользователя TestMaker по адресу http://www.pushtotest.com/pushtotest-testmaker-6-methodology . TestMaker поставляется в двух вариантах: версия с открытым исходным кодом (GPL) для сообщества и TestMaker Enterprise (коммерческая версия с отличной профессиональной поддержкой).

-Frank

user1227037
источник
1
это не отвечает на вопрос ОП
Кори Голдберг
1

Взгляните на LoadBooster ( https://www.loadbooster.com ). Для тестирования веб-сайтов используется безголовый скрипт-браузер PhantomJS / CasperJs. Phantomjs проанализирует и отобразит каждую страницу, выполнит скрипт на стороне клиента. Безголовый браузерный подход облегчает написание тестовых сценариев для поддержки сложного тяжелого Web-приложения AJAX 2.0 - навигации по браузеру, щелчка мыши и нажатия клавиш в браузере или ожидания, пока элемент не появится в DOM. LoadBooster также поддерживает HTML-скрипт Selen.

Отказ от ответственности: я работаю на LoadBooster.

Цинхай
источник
1

Попробуйте ZebraTester, который намного проще в использовании, чем jMeter. Я использовал jMeter в течение длительного времени, но общее время установки для нагрузочного теста всегда было проблемой. Хотя ZebraTester не является открытым исходным кодом, время, которое я сэкономил за последние шесть месяцев, компенсирует это. У них также есть портал SaaS, который можно использовать для быстрого запуска тестов с использованием их генераторов нагрузки.

Vinit
источник
0

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

Майк Стоун
источник
это не отвечает на вопрос ОП
Кори Голдберг
0

Посмотрите на TestComplete .

Эрик Сасс
источник
1
Test Complete - это коммерческий инструмент.
Рипон Аль-Васим
0

Я второе предложение opensta. Я бы просто добавил, что он позволяет вам выполнять мониторинг сервера, который вы тестируете, используя SMTP. Мы отслеживаем загрузку процессора, используемую память, отправленные байты и т. Д. Единственным недостатком является то, что если вы находите что-то недоработанное и хотите исправить, то оно опирается на несколько библиотек с открытым исходным кодом, которые больше не поддерживаются, поэтому необходимо получить компиляцию Версия источника более хитрая, чем с большинством OSS.

tloach
источник
0

Я играл с JMeter. Одна мысль, которую это не могло не проверить, была ASP.NET Webforms. Состояния разбили мои тесты. Я не уверен почему, но есть пара инструментов, которые не обрабатывают viewstate правильно. Мой текущий проект - ASP.NET MVC, и JMeter хорошо с ним работает.

Матиас Ф
источник
0

У меня были хорошие результаты с FunkLoad :

  • легко сценарий взаимодействия с пользователем
  • отчеты понятны
  • может контролировать нагрузку на сервер
yanjost
источник
0

Рискуя быть обвиненным в бесстыдной саморекламе, я хотел бы отметить, что в своем стремлении к бесплатному инструменту для нагрузочного тестирования я пошел к этой статье: http://www.devcurry.com/2010/07/10-free- инструменты к loadstress испытаний your.html

Либо я не мог получить желаемую пропускную способность, либо не мог добиться желаемой гибкости. И я хотел легко объединить результаты нескольких хостов генерации нагрузочных тестов в пост-тестовом анализе.

Я опробовал каждый инструмент в списке и, к своему разочарованию, обнаружил, что ни один из них не сделал то, что я хотел, чтобы быть в состоянии сделать. Итак, я построил один и делюсь им.

Вот оно: http://sourceforge.net/projects/loadmonger

PS: Никаких глупых комментариев к имени от людей, которые знакомы с городским сленгом. Я не был, но теперь немного более мирским.

Стив Оуэнс
источник
0

Я тоже голосую за jMeter и хочу добавить несколько цитат в ответ @PeterBernier.

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

Имейте в виду, что в jMeter есть много строительных блоков: логические контроллеры , элементы конфигурации , предварительные процессоры , прослушиватели ..., которые могут вам в этом помочь.

Вы можете имитировать реальную ситуацию в мире с помощью jMeter, например, вы можете:

  1. Настройка Jmeter выступать в качестве реального браузера путем настройки ( concurrent resource download, browser cache, http headers, setting request time out, cookie management,https support , encoding, ajax support, ...)
  2. Настройка JMeter для создания пользовательских запросов (путем определения number of users per second,ramp-up time , scheduling, ...)
  3. Сконфигурируйте множество клиентов с jMeter для них, чтобы выполнить тест распределенной нагрузки.
  4. Обработайте ответ, чтобы определить, правильно ли сервер отвечает во время теста. (Например, assertответ, чтобы найти текст в нем)

Пожалуйста примите к сведению:

  • Начать настоящий тест веб-приложений с помощью jMeter легко за считанные минуты. JMeter имеет очень простой инструмент, который записывает ваш тестовый сценарий (известный какHTTP(S) Test Script Recorder ).
  • У jMeter есть много плагинов на http://jmeter-plugins.org .
  • Пользовательский интерфейс jMeter основан на колебаниях и внес хорошие изменения в jMeter 3.2. С другой стороны, учтите, что графический интерфейс JMeter следует использовать только для тестирования и отладки. Не рекомендуется использовать его в режиме GUI для реального теста. https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui . Настройте и протестируйте свой сценарий и запустите его в режиме без графического интерфейса.
  • Есть много отчетов, показывающих инструменты в jMeter (известный как listeners), но они не должны быть включены во время теста. Вы должны запустить свой тест и генерировать отчеты ( .jtlфайлы). Затем вы должны использовать эти инструменты для анализа результата. Пожалуйста, посмотрите https://www.blazemeter.com/blog/jmeter-listeners-part-1-basic-display-formats или https://www.tutorialspoint.com/jmeter/jmeter_listeners.htm .

Https://www.blazemeter.com/jmeter имеет очень хорошую и практическую информацию , чтобы помочь вам настроить тестовую среду.

Алиреза Фаттахи
источник