2016-12-07 2 views
0

Я хочу протестировать приложение, которое использует узловые сокеты js с максимальным количеством нагрузки.Загрузка тестирования для приложений, вызывающих сокеты nodejs

Приложение Insight: У него есть страница, показывающая, сколько пользователей в настоящее время использует эту страницу, также есть ячейки, где, если один пользователь нажимает для редактирования, они будут заблокированы другими пользователями. Эти две функции открывают узел js socket для связи. И сокет открыт только тогда, когда страница загружена успешно (JavaScript на готовом документе)

Моя Trial: Я пытался JMeter для приложения нагрузки (одновременных пользователей), но через JMeter, приложение не может открыть nodejs. В настоящее время я использую селен, чтобы открывать разные вкладки браузера и вручную проверять потребление ресурсов на сервере. Но проблема в том, что я не могу открыть более 10 вкладок на машине, поскольку сам браузер потребляет память.

Я не хочу проверять сокеты nodejs для открытия JMeter (или любыми другими инструментами), поскольку я хочу, чтобы приложение выполняло это.

Любые предложения/рекомендации или помощь приветствуются.

ответ

1

По JMeter Project main page:

JMeter не браузер

JMeter не браузер. Что касается веб-сервисов и удаленных служб, JMeter выглядит как браузер (а точнее, несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. В частности, JMeter не выполняет Javascript, найденный на HTML-страницах. Также он не отображает страницы HTML в качестве браузера (можно просмотреть ответ как HTML и т. Д., Но тайминги не включены ни в какие образцы, а только один образец в одном потоке просматривается за раз)

Поэтому JMeter не будет вызывать JavaScript при загрузке страницы, вам придется имитировать связанные запросы вручную. Варианты в

  • Получить себе более мощную машину или рассмотреть возможность использования WebDriver Sampler плагина вместе с JMeter Distributed тестирования. Вы также можете попробовать использовать LoadRunner TruClient в качестве альтернативы, но он также очень ресурсоемкий, он также имеет лицензионные сборы
  • Используйте WebSocket Sampler для имитации вызовов с использованием JavaScript. См. Руководство по эксплуатации WebSocket Testing With Apache JMeter для более подробной информации о установке и использовании плагинов.Вы должны быть в состоянии получить общее время основного запроса страницы и WebSocket Sampler (ы) с помощью выполнения Transaction Controller
1

Если вы уверены, что WebSocket используется приложением, я предложил бы использовать WebSocket плагин, есть 2 реализации, которые заслуживают внимания:

Проблема и сложность в том, что вы не можете записывать записи с помощью JMeter Test Script recorder, поэтому вам придется вручную воспроизводить запросы.

Другой вариант - использовать WebDriver Sampler и объединить его с облачными технологиями, поскольку он очень ресурсоемкий. В этом случае посмотрите на это:

Смежные вопросы