GWT нагрузочное тестирование с Jmeter - PullRequest
15 голосов
/ 10 мая 2010

У меня есть приложение GWT и я хочу протестировать нагрузку и функциональность с помощью такого инструмента, как jmeter. Я не уверен, что Jmeter является правильным инструментом для GWT. Кто-нибудь может направить меня к подходящему инструменту или подскажет, как это сделать с помощью jmeter?

Я хочу проверить функциональность входа в систему: у меня есть два текстовых поля «Имя пользователя» и «Пароль» на экране входа в систему, и я хочу проверить, сколько пользователей могут войти в систему одновременно, сколько времени требуется на обратную передачу на сервер. Не знаете, как jmeter может получить «имя пользователя» и «пароль» и может представить его для проверки в БД для приложения GWT?

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

Ответы [ 10 ]

5 голосов
/ 03 мая 2011

Тестирование GWT с решениями нагрузочного тестирования на основе HTTP-форм, таких как JMeter или Selenium, может быть довольно сложным из-за развития пользовательских интерфейсов.

В нашем проекте мы выбрали другой подход.

Использование gwtrpccommlayerпроект, мы вызываем непосредственно RPC-сервлеты из JUnit.

http://code.google.com/p/gwtrpccommlayer/

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

Поэтому в JUnit мы можем запускать несколько потоков для моделирования нескольких пользователей с помощью приложения и сбора статистики.

5 голосов
/ 17 мая 2010

Я думаю, это зависит от того, что именно вы хотите проверить. Если вы также хотите протестировать код на стороне клиента, лучше подойдет Selenium .

Однако, если вы просто хотите протестировать серверную часть, JMeter может отправить ему HTTP-запросы через HttpClient или что-то подобное. Вы можете определить, что нужно добавить в запрос, используя отладочный прокси, такой как Fiddler .

3 голосов
/ 31 июля 2012

На самом деле реальная сложность существует, если ваше приложение использует GWT RPC, если это JSON, тогда JMeter выполнит эту работу. Если ваша страница входа не первая, и ваше приложение использует GWT RPC, то вам потребуется либо плагин для JMeter, который обрабатывает сериализацию, либо другой инструмент (я не знаю реальных бесплатных инструментов, которые делают это).

2 голосов
/ 30 июля 2012

Существует коммерческое решение UbikLoadPack, которое предлагает плагин для Apache JMeter для загрузки тестовых приложений GWT и GWT RPC.

Со стандартными знаниями Apache JMeter вы можете легко:

  • запись
  • вариабилизация с использованием синтаксиса XML вместо нечитаемого формата gwtrpc
  • воспроизведение приложений, основанных на GWT и GWT RPC
  • отладка благодаря средствам визуализации View Result Tree

Смотрите этот блог для обучения:

И это для коммерческой информации:

1 голос
/ 10 мая 2012

У меня была такая же проблема при тестировании приложения GWT с jMeter, поэтому я написал фрагмент кода, который выполняет десериализацию полезной нагрузки GWT, что позволяет вам параметризовать свой тест производительности jMeter (или любой другой):

http://code.google.com/p/gwt-payload-deserializer/

См. ReadMe.txt для объяснения всех компонентов полезной нагрузки GWT-RPC.

1 голос
/ 02 мая 2011

Я использовал Selenium 2 тестовые сценарии, написанные на Groovy плюс Gradle для параллельного выполнения, чтобы недавно загрузить тестовое приложение GWT. В следующем сообщении блога показаны некоторые результаты.

http://blog.oio.de/2011/04/19/load-testing-gwt-applications-with-selenium-2-and-gradle

0 голосов
/ 10 октября 2014

При работе с приложением, основанным на gwt, может быть использован какой-либо запрос службы авторизации, для которого вам нужно хранить / использовать имя пользователя и пароль только в зашифрованном формате.С этими настройками вы сможете войти в приложение через скрипт jmeter.Кроме того, есть вероятность того, что несколько запросов Post отправляют данные в теле вместо параметра.Это трудно обработать, хотя Jmeter-запрос проходит, но на самом деле изменения, сделанные с помощью скрипта, не видны в пользовательском интерфейсе.

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

Вы можете протестировать GWT в LoadRunner, используя GWT-DFE (расширение формата данных). Это включено в инструмент и не требует отдельной загрузки. Скорее всего, если вы спрашиваете о бесплатном программном обеспечении LoadRunner вне бюджета, но я хотел бы упомянуть об этом для полноты.

Краткое видео-демо можно посмотреть здесь на Youtube , а справочная документация LoadRunner содержит больше подробностей.

0 голосов
/ 27 октября 2010

Необходимый инструмент называется NeoLoad (www.neotys.com/). Но это не бесплатно :( если вы хотите попробовать только один раз, вы можете использовать пробную лицензию, которую вы получите при запуске.

Если вам не нужно что-то изощренное, вы можете использовать Apache HTTPD-Test, который является бесплатным, но его нельзя настроить как Jmeter.

Надеюсь, это поможет. Приветствия.

0 голосов
/ 15 июня 2010

Это зависит от обслуживания. У нас есть приложение GXT, и даже рекордер JMeter HTTP Proxy прекрасно работает на нем.

Но его обслуживание ставится под угрозу, поскольку запросы RPC используют параметр («X-GWT-Permutation»), который является идентификатором файла .nocache.html. Поскольку он генерируется с различным идентификатором для каждой сборки, вы, вероятно, перезаписываете его.

С другой стороны, селен работает нормально. Придерживайтесь правильно, используя селекторы в selenese, и, возможно, sureDebugIds (в ​​GWT), и вы, вероятно, будете установлены. Довольно просто написать .jar, содержащий набор тестов JUnit (3.8), и обернуть его вокруг селен.

Рекомендация: Если вы, вероятно, будете проводить многократное нагрузочное тестирование с селеном, я могу порекомендовать Saucelabs 'Sauce on Demand (saucelabs.com). Вы настраиваете SSH Proxy с их службой, и их экземпляры селена EC2 подключаются к вашему приложению в интрасети. Вот тот подход, к которому мы пошли.

...