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

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

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

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

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

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

30 ОТВЕТОВ

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

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

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

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

36
11.08.2008 03:27:15
+1 за кофемолку. Мне особенно понравилась опция сценариев прокси.
davek 8.12.2009 21:32:03
Любой шанс, что это может быть использовано для имитации простоя браузера. Запросы к серверу отправляются из неактивного браузера каждые две секунды для нашего приложения. Я хотел бы знать, что происходит, когда у нас тридцать одновременно работающих браузеров.
Ramy 13.08.2012 19:08:08
+1 за кофемолку. в сочетании с EC2 мы успешно использовали его для ускорения 100k одновременных пользователей.
nategood 12.12.2012 15:08:19

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

0
11.08.2008 03:31:52
это не отвечает на вопрос OP вообще
Corey Goldberg 1.06.2018 17:25:46

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

15
10.05.2018 06:37:16

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

0
21.08.2008 10:34:39
Test Complete - это коммерческий инструмент.
Ripon Al Wasim 28.02.2013 04:21:12

Я нашел IBM Page Detailer также интересным инструментом для работы.

1
28.08.2008 19:38:25

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

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

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

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

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

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

1
15.09.2008 20:39:37

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

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

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

Плюсы:

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

Минусы:

  • Пользовательский интерфейс написан на Swing. (Тьфу!)
  • JMeter работает путем анализа текста ответа, возвращаемого сервером. Так что, если вы хотите проверить любое поведение javascript, вам не повезло.
  • Кривая обучения крутая для непрограммистов. Если вы знакомы с регулярными выражениями, вы уже впереди игры.
  • На форуме поддержки есть большое количество ( вставьте ругательных ) идиотов, задающих глупые вопросы, которые можно легко решить, если бы они взглянули на документацию даже беглым взглядом. («Как использовать JMeter для стресс-тестирования моего Windows GUI» появляется довольно часто).
  • Отчетность «из коробки» оставляет желать лучшего, особенно для более крупных тестов. В тесте, о котором я упоминал выше, мне пришлось написать быстрое консольное приложение, чтобы выполнить некоторые преобразования «xml-logfile» в «html». Это было несколько лет назад, поэтому, вероятно, это больше не потребуется.
110
9.10.2013 13:01:46
уточните, может ли JMeter помочь вам протестировать приложение, установленное на удаленном VPS? Я не уверен, так как это настольная версия
Rajat Gupta 6.08.2013 08:23:01
Еще одна опция, связанная с JMeter, о которой следует знать, это JMeter как сервис. Эти типы SaaS предоставляют хорошо масштабируемый JMeter вместе со значительно улучшенными отчетами.
Ophir Prusak 4.01.2014 14:58:19
Я не согласен с тем, что JMeter очень масштабируем. Миллион запросов в час - это всего лишь 278 запросов в секунду, что - для запуска на 11 машинах - крайне мало по сравнению с другими инструментами. Я бы поставил масштабируемость JMeter на минус.
heyman 5.05.2014 20:11:57
JMeter не браузер, он работает на уровне протокола. Что касается веб-сервисов и удаленных сервисов, JMeter выглядит как браузер (точнее, несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. Веб-приложения должны быть «выполнены» для выполнения.
LeonanCarvalho 16.03.2018 18:06:50

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

0
20.09.2008 22:09:00

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

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

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

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

1
28.09.2008 15:37:22

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

4
14.01.2014 11:48:49
Я тоже рекомендую WebLoad. Это отличный инструмент, простой в использовании, и отчеты очень полезны. Я предполагаю, что вы работаете на платформе Windows, поэтому эти результаты в сочетании с perfmon позволят вам узнать практически все, что вам нужно знать.
Babak Naffas 22.06.2009 02:37:32
Обратите внимание, что сейчас WebLoad является чисто коммерческим. Они разослали электронные письма с цитатой: -------- -WebLOAD Open Source объявлен End of life (EOL) -Если у вас еще есть версия продукта, мы напоминаем вам, что в соответствии с EULA любое распространение Продукт или использование его для обслуживания третьих лиц строго запрещено. ------- Распространение версии с открытым исходным кодом запрещено? Даже использование этого способа, которое им не нравится, запрещено? Не то поведение, с которым я бы хотел иметь дело.
Joshdan 15.07.2009 21:24:32
Ссылка на домен теперь просто реклама - срок действия исходного домена истек.
dodgy_coder 17.06.2012 13:22:03
@Joshdan, поэтому GPL важен.
Thorbjørn Ravn Andersen 16.08.2012 13:04:31

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

0
3.02.2009 10:55:07

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

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

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

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

23
24.12.2016 13:30:09
Автор Pylot
codeape 13.09.2011 07:53:46
Ссылка на pylot.org перенаправляет на какой-то подозрительный сайт.
mpiktas 6.10.2016 14:19:35

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

2
22.06.2009 01:38:28

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

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

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

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

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

1
16.12.2010 21:25:28

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

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

ab -c n -t 30 url

siege -b -c n -t 30s url

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

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

9
24.11.2011 20:11:12

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

3
3.09.2010 09:24:55
Недавно я работал с tsung, это отличный инструмент (для действительно СТРЕСС-тестирования), здесь, как настроить progrnotes.blogspot.com/2011/11/… oricial docs tsung.erlang-projects.org/user_manual.html
Sergey 6.12.2011 11:33:33
Я также нашел полезными openload: linuxpoison.blogspot.com/2010/12/…
wael34218 5.12.2012 07:59:58

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

6
5.01.2012 21:33:32
Да уж. Я только что посмотрел на это. Нашел его в Google, прежде чем найти этот вопрос. Я думаю, что веб-приложение - это хороший подход, но я не был уверен, действительно ли оно продвигает мой сервер. Хотя стоило попробовать, без сомнения. Tbh, я действительно испытываю желание зарегистрироваться для полной учетной записи.
Charlie 18.05.2014 01:04:11

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

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

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

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

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

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

1
15.07.2012 14:39:35

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

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

1
17.08.2012 21:01:34
это не отвечает на вопрос ОП
Corey Goldberg 1.06.2018 17:24:22

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

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

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

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

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

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

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

0
11.12.2012 01:22:17

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

Резюме:

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

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

9
2.01.2013 22:08:22
Это хорошая альтернатива тестированию ваших собственных машин на ваших собственных машинах
nurettin 18.12.2013 14:25:05

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

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

9
28.03.2013 23:52:34
Grinder также может использовать скрипты Clojure.
user100464 29.12.2013 18:51:49

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

7
7.05.2013 22:03:18

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

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

3
4.08.2014 12:53:17

Недавно мы начали использовать 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

7
23.11.2015 16:50:48

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

1
23.02.2017 23:23:24

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

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

1
29.12.2016 05:43:25

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

0
28.06.2017 13:37:29