Я в какой-то степени не согласен с Натаном и Фредди. Они правы в том, что «тестирование AJAX» на самом деле ничем не отличается в том, что выполняются HTTP-запросы. Но это не так просто. Смотрите мою статью на Ajaxian.com на Почему нагрузочное тестирование Ajax жесткое .
JMeter, Pylot и The Grinder - отличные инструменты для генерации HTTP-запросов (я лично рекомендую Pylot). Но по своей сути они не действуют как браузер и не обрабатывают JavaScript, то есть все, что они делают, это воспроизводят трафик, который они видели в рекордно короткие сроки. Если эти AJAX-запросы были уникальными для этого сеанса, они могут быть неподходящими / правильными для воспроизведения на больших томах.
Дело в том, что по мере того, как в браузер добавляется больше логики, становится намного сложнее (если не невозможно) правильно моделировать трафик с использованием традиционных инструментов нагрузочного тестирования.
В моей статье я привожу простой пример того, как трудно тестировать что-то вроде домашней страницы Google, когда вы хотите запросить тысячи различных поисковых терминов (важная цель во время нагрузочного тестирования). Чтобы сделать это с помощью JMeter / Pylot / Grinder, вы фактически переписываете части кода AJAX (в вашем случае w / jQuery) снова на родном языке инструмента.
Это становится еще сложнее, если ваша цель состоит в том, чтобы измерить время отклика, воспринимаемое пользователем (что, возможно, является наиболее важной вещью в конце дня). Для действительно сложных приложений, использующих Comet / «Reverse Ajax» (метод, который сохраняет открытые сокеты в течение длительных периодов времени), традиционные инструменты загрузки вообще не работают.
Моя компания, BrowserMob, предоставляет сервис нагрузочного тестирования , который использует браузеры Firefox на базе Selenium для управления сотнями или тысячами реальных браузеров, что позволяет вам измерять и измерять время производительность визуальных элементов, как видно в браузере. Мы также поддерживаем традиционных виртуальных пользователей (скрытый HTTP-трафик) и имитируемый браузер (через HtmlUnit ).
Все это говорит о том, что обычно сочетание услуг, таких как BrowserMob и традиционное нагрузочное тестирование, является правильным подходом. То есть настоящие браузеры отлично подходят для полнофункционального нагрузочного теста, но они никогда не будут такими же экономичными, как «виртуальные пользователи», поскольку им требуется в 10-100 раз больше оперативной памяти и процессора. См. Мой недавний пост в блоге о том, * симулировать ли или нет виртуальных пользователей .
Надеюсь, это поможет!