8

Я часть команды, разрабатывающей новый веб-продукт для нашей компании. Хотя мы довольно позитивно, приложение будет отлично работать с нашим ожидаемым средним числом 10-50 одновременных пользователей, у нас есть требование обеспечить его правильную работу для 1000 одновременных пользователей.Какой инструмент (ы) для довольно сложного стресс-тестирования веб-приложения

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

У нас есть SilkTest/TestPartner, который можно настроить для выполнения описанных выше шагов, но я не верю, что эти инструменты можно реально использовать для имитации нагрузки в той степени, в которой мы требуем.

Можете ли вы предложить некоторые (предпочтительно свободные/с открытым исходным кодом) программы? Коммерческие продукты не являются ничем, но цена не может быть огромной :)

Заранее спасибо!

ответ

2

apache's benchmark tool ab.

От Wikipedia: ApacheBench:

ApacheBench является командной строки компьютера программа для измерения производительности по HTTP веб-серверов, в частности Apache HTTP Server. Он был разработан для , чтобы дать представление о производительности, которую может предоставить установка , предоставляемая установкой Apache. В частности, это показывает, сколько запросов в секунду сервер способен обслуживать.

Вы можете предоставить ему пары cookie/значение зарегистрированного пользователя и указать его на URL-адрес поиска, с возможностью сообщить ему, чтобы он выполнял параллельные соединения для имитации одновременных пользователей.

+0

Ему нужно «щелкнуть ссылку и дождаться загрузки документа» после получения результатов поиска, которые 'ab' сделать не удастся. – sdolan

+2

Уверен, что он не «щелкнет», но запросит документ, который делает браузер при нажатии. – aularon

1

Я рекомендую вам попробовать Microsoft Web Capacity Analysis Tool (WCAT). Он может работать на нескольких компьютерах одновременно, и каждый из клиентов может иметь несколько «виртуальных клиентов», таким образом, они могут имитировать несколько подключений к веб-серверу. Он может подключаться к любому веб-серверу (используется некоторыми фанатиками Apache), но, конечно, он лучше интегрируется с IIS.

Он был разработан командой разработчиков IIS и используется Microsoft для стресс-тестирования их сервера IIS. Он имеет как x86, так и x64 версии, и легко создавать свои собственные расширения для него.

Он работает следующим образом: вы создаете файл сценария, с помощью которого вы можете описать любое количество HTTP-запросов. (У него есть опции для GET, POST, а также поддержка HTTPS.) Затем вы можете группировать эти запросы в транзакции, которые представляют собой серию запросов для имитации взаимодействия с пользователем. Каждый виртуальный клиент одновременно запускает одну транзакцию и ожидает, пока текущий запрос не будет завершен до начала следующего.
Легко написать транзакцию, содержащую серию запросов, которые могут имитировать пользователей, «нажимая» на вещи. (Также возможно «спать» в течение определенного промежутка времени между запросами, таким образом, имитируя пользователя, просматривающего страницу.)

Вот официальное введение:

Web Средство анализ возможностей (WCAT) является легкого HTTP инструментом поколения нагрузки в первую очередь предназначен для измерения производительности веб-сервера в контролируемой среде . WCAT может имитировать тысячи одновременных пользователей , делая запросы на один веб-сайт или на нескольких веб-сайтах. Двигатель WCAT использует простой скрипт для определения набора HTTP-запросов для воспроизведения обратно на веб-сервер. Расширяемость предоставляется через подключаемые DLL-файлы и стандарт , простой API.

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

+0

Спасибо за подробный ответ. Я считаю, что это будет инструмент, который мы в конечном итоге выбираем :) – Sk93

+0

@ Sk93 - Добро пожаловать. :) – Venemo

2

Apache JMeter определенно поддерживает ваш сценарий и поддерживает Distributed Testing (PDF), который является режим, в котором вы запускаете несколько агентов на разных машинах и тем самым могут масштабироваться, чтобы имитировать большое число одновременно работающих пользователей ,

2

Вы можете попробовать Web Performance Load Tester - это продукт для нагрузочного тестирования средней цены. Он намного дешевле, чем SilkPerformer или LoadRunner, и намного более продуктивен. Он ограничен только веб-протоколами, но это не похоже, что это будет проблемой для вашего приложения. Есть видео на сайте даст вам довольно хорошее чувство для инструмента: http://www.webperformanceinc.com/load_testing/demo/

(отказ от ответственности: Я работаю на веб-производительности и использовать продукт почти каждый день)

0

Для сложных объектов, которые можно использовать WebLoad , Это не бесплатно, но и не слишком дорого.

0

Каков финансовый риск, если приложение не работает/масштабируется?

Какова финансовая ценность результатов тестов производительности при принятии решения о переходе на живую или настраивать | изменить существующее приложение?

Каким образом финансовые последствия и ценность результатов испытаний соответствуют вашей стоимости инструмента?

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