Инструменты для нагрузочного тестирования Ajax

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

они записывают только http-запрос и воспроизводят его?
Это правильный способ тестирования приложения AJAX?
Как google тестирует свои приложения ajax?

14 ответов


Если вы беспокоитесь только о функциональности, что-то вроде Watin, Watir, селен или любой функциональный инструмент в этом отношении будет работать. Пока вы ставите достаточное время в своих функциональных тестах, чтобы разрешить обратные вызовы ajax, это должно сделать трюк.

чтобы добавить к моему ответу,

Если вы говорите о модульном тестировании javascript, вы можете использовать что-то вроде qunit, как описано коллегой LosTechian в этом постинге. Это довольно изобретательное использование NUnit addin и qunit для интеграции модульных тестов js.

по чистому совпадению, тот же человек, который опубликовал это сообщение в блоге тестирования qunit, только что опубликовал его вчера о эту тему


большинство инструментов нагрузочного тестирования там делают нагрузочное тестирование AJAX таким же образом: они выполняют необработанный HTTP-трафик, который наблюдается на этапе "записи" (который может быть запросами страниц, запросами изображений или даже запросами AJAX). Основное различие между ними заключается в том, насколько хорош их инструмент recorder/IDE и как легко он помогает вам параметризовать HTTP-запросы, чтобы они отражали реальный трафик на основе динамических/реальных результатов.

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

Полезные ссылки: отдельно от вопиющего плагина выше (хотя я надеюсь, что вы это проверите - мы впереди с ценами и предоставляем бесплатную пробную версию), я недавно написал статью для Ajaxian о AJAX нагрузочное тестирование. Он идет в более подробно о технических последствиях использования реальных пользователей браузера (RBUs) против виртуальных пользователей (VUs).


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

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


Google apps написаны на GWT, который поставляется с собственным расширением для JUnit. статья о модульном тестировании приложений ajax с GWT.


Если вы не хотите настраивать собственный сервер нагрузочного тестирования, есть несколько бесплатных онлайн-сервисов нагрузочного тестирования, которые могут запускать нагрузочные тесты непосредственно через Интернет. Например http://loadimpact.com или http://loadstorm.com


Я использовал Virtual User Generator, который является частью программного обеспечения Loadrunner от HP, для тестирования приложений AJAX. Программное обеспечение имеет несколько прикладных протоколов, которые могут использоваться для записи веб-приложений, например AJAX, Click и Script.

для большинства нагрузочных тестов веб-приложений достаточно записывать и воспроизводить http-запросы. Это даст результат того, как серверы обрабатывают нагрузку. Если ваше веб-приложение выполняет много асинхронной загрузки, и рендеринг на стороне клиента, например, анализ больших наборов данных xml или json или многих модификаций DOM, может иметь отношение к включению уровня браузера для измерения работы конечного пользователя.


все тестеры нагрузки будут поддерживать AJAX - это просто дополнительные http-соединения.

есть несколько свободных там- в JMeter, шалунишка, мясорубки это все делает это хорошо.

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

самый простой способ, которым я это сделал, - записать пример сеанса, заменить несколько параметров переменными и отключить его от csv или файл Excel.

отличная отправная точка: видео презентации google по тестированию с открытым исходным кодом.

Edit: обновлена ссылка на видео.


Я использовал SilkPerformer на предыдущей работе. Согласно ссылке, у них есть некоторые улучшения AJAX. К сожалению, шелк далек от свободы.


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


осада? он может выполнять HTTP-тестирование и передавать все, что вы хотите.


вы также можете посмотреть fwptt это с открытым исходным кодом. Если вы разработчик .net, вы можете использовать автоматическую обработку параметров и возможность использовать собственный объект .net для выполнения тестов.


Я успешно использовал JMeter для нагрузочного теста нашего приложения Ajax (JSF/RichFaces). Я не беспокоился о инструменте записи JMeter-скорее я использовал плагин HttpFox для Firefox для мониторинга того, что браузер отправляет на сервер, и я воссоздал это в JMeter.

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


лучше написать изолированный метод тестирования или API для нагрузочного тестирования приложения ajax. Есть несколько причин:

  • не так просто писать функциональные тесты для приложений Ajax, например для GWT.
  • можно использовать в JMeter с WebDriver плагин, но для каждого запуска запускается браузер, который будет использовать большую часть ОЗУ и процессора.
  • вы будете загружать бэкэнд не frontend, так что вы можете избежать ajax.

вы можете разделить свое тестирование, как что: для приложения Ajax используйте Selenium или PhantomJS/CasperJS. Для нагрузочного тестирования используйте JMeter, Gatling через API не через Ajax.


мой выбор-firebug (браузер аддон). его очень легкий и простой в обращении