Что некоторая польза автоматизированные инструменты для загрузки, тестирующей (стресс-тестирование) веб-приложения, которые не используют запись и воспроизведение сетевых пакетов HTTP?
Я знаю, что существуют многочисленные инструменты тестирования загрузки на рынке, которые записывают и воспроизводят сетевые пакеты HTTP. Но они являются неподходящими для моей цели из-за этого:
Формат пакета HTTP изменяется очень часто в нашем приложении (например, когда мы оптимизируем вызов Ajax). Мы не хотим адаптировать все сценарии тестирования просто, потому что существует небольшое изменение в формате пакета HTTP.
Наша тестовая команда не должна будет знать, что любые внутренности о нашем приложении пишут свои сценарии тестирования. Инструмент, который воспроизводит пакеты HTTP, однако, требует, чтобы команда знала формат Запросов HTTP и ответов, таких, что они могут адаптировать детали воспроизводимых пакетов HTTP (например, имя пользователя).
Автоматизированный инструмент тестирования загрузки, который я ищу, должен смочь позволить тестовой команде записать сценарии тестирования "черного квадрата", такие как:
Инструмент должен смочь моделировать до нескольких 1 000 пользователей, и это должно быть совместимо с веб-приложениями с помощью ASP.NET и Ajax.
TestMaker от PushToTest.com может запускать записанные сценарии, такие как Selenium, а также многие другие языки, такие как HTML, Java, Ruby, Groovy, .Net, VB, PHP и т. Д. инфраструктуры отчетности, и вы можете создать нагрузку в своей лаборатории тестирования или использовать облачные среды тестирования, такие как EC2, для виртуальных лабораторий тестирования.
Ежемесячно они проводят бесплатные вебинары по использованию инструментов тестирования с открытым исходным кодом, один из которых состоится в следующий вторник.
JMeter я нашел довольно полезным, он также имеет функцию записи для записи случаев использования, поэтому вам не нужно указывать каждый GET/POST вручную, а скорее «щелкнуть» вариант использования один раз, а затем позволить JMeter повторить его.
http://jmeter.apache.org/
Лицензия на него может быть дорогой (если у вас нет MSDN), но Visual Studio 2010 Ultimate edition имеет отличный набор инструментов для нагрузочного и стресс-тестирования, которые делают то, что вы описали. Вы можете попробовать его бесплатно в течение 90 дней здесь.
Есть несколько подходов; Однако я бывал в ситуациях, когда мне приходилось запускать собственные утилиты, генерирующие нагрузку.
Что касается вашего тестового сценария, он включает:
Если ваша веб-страница не является сложной AJAX, нет необходимости «имитировать нажатие кнопки» - об этом позаботится запрос POST.
Учитывая, что ваш тест состоит всего из двух этапов, должно быть несколько пакетов автоматической загрузки, которые могли бы это сделать.
Ранее я использовал httperf для нагрузочного тестирования большого веб-сайта: он может моделировать сеанс, состоящий из нескольких запросов, и может моделировать одновременно большое количество пользователей (то есть сеансов). Например, если ваш веб-сайт сгенерировал файл cookie сеанса с домашней страницы, вы могли бы сделать это первым запросом, httperf затем будет использовать этот файл cookie для последующих запросов, пока не завершит выполнение списка предоставленных запросов.