Инструменты для нагрузочного тестирования Ajax - PullRequest
16 голосов
/ 10 февраля 2009

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

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

Ответы [ 14 ]

6 голосов
/ 14 февраля 2009

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

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

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

2 голосов
/ 11 февраля 2014

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

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

1 голос
/ 14 февраля 2009

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

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

1 голос
/ 12 февраля 2009

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

1 голос
/ 11 февраля 2009

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

Есть несколько бесплатных - Jmeter , BadBoy , Grinder , которые все делают это хорошо.

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

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

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

Редактировать: обновлена ​​ссылка на видео.

1 голос
/ 10 февраля 2009

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

1 голос
/ 10 февраля 2009

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

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

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

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

0 голосов
/ 18 декабря 2014

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

0 голосов
/ 20 августа 2013

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

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

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

0 голосов
/ 16 августа 2011

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

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

...