Испытание нагрузки GWT с помощью jmeter
У меня есть приложение GWT и вы хотите проверить нагрузку и функциональность с помощью инструмента jmeter.
Я не уверен, что jmeter является правильным инструментом для GWT. Может ли кто-нибудь направить меня на правильный инструмент или может сказать мне, как это сделать с помощью jmeter?
Я хочу протестировать функцию входа в систему: у меня есть два текстовых поля "Имя пользователя" и "Пароль" на экране входа в систему и вы хотите проверить, сколько пользователей может одновременно войти в систему, сколько времени в пути туда и обратно. Не знаете, как jmeter может получить "имя пользователя" и "пароль" и может отправить его для проверки на наличие БД для приложения GWT?
Спасибо заранее.
Ответы
Ответ 1
Я думаю, это зависит от того, что именно вы хотите проверить. Если вы хотите протестировать и клиентский код, то лучше Selenium.
Если вы просто хотите протестировать фоновый сервер, вы могли бы отправить JMeter HTTP-запросы через HttpClient или что-то аналогичный. Вы можете определить, что нужно искать в запросе, используя прокси-сервер отладки, например Fiddler.
Ответ 2
Тестирование GWT с решениями тестирования нагрузки на основе HTTP-форм, таких как JMeter или Selenium, может быть довольно сложным из-за развития пользовательских интерфейсов.
В нашем проекте мы использовали другой подход.
Используя проект gwtrpccommlayer, мы вызываем непосредственно сервлеты RPC из JUnit.
http://code.google.com/p/gwtrpccommlayer/
Это означает, что мы можем повторно использовать API-интерфейс фасадов на стороне сервера в наших сценариях тестирования загрузки, поддерживать эти сценарии по мере развития кода на стороне сервера.
Поэтому в JUnit мы можем запускать несколько потоков для имитации нескольких пользователей с помощью приложения и сбора статистики.
Ответ 3
Фактически реальная сложность существует, если ваше приложение использует GWT RPC, если JSON затем JMeter выполнит эту работу.
I ваша страница входа не первая. И приложение использует GWT RPC, тогда вам понадобится плагин для JMeter, который обрабатывает сериализацию или использует другой инструмент (я не знаю реальных бесплатных инструментов, которые это делают).
Ответ 4
Существует коммерческое решение под названием UbikLoadPack, которое предлагает плагин для Apache JMeter для загрузки тестовых приложений GWT и GWT RPC.
Вы можете легко записывать, изменять и воспроизводить приложения на основе GWT и GWT RPC со стандартными знаниями Apache JMeter.
Смотрите этот блог для учебника:
И это для коммерческой информации:
Ответ 5
Я использовал скрипты теста Selenium 2, написанные на Groovy плюс Gradle для параллельного выполнения для загрузки теста GWT-приложения в последнее время. В следующем блоге показаны некоторые результаты.
http://blog.oio.de/2011/04/19/load-testing-gwt-applications-with-selenium-2-and-gradle
Ответ 6
У меня была та же проблема при тестировании приложения GWT с jMeter, поэтому я написал фрагмент кода, который делает десериализацию полезной нагрузки GWT, следовательно, позволяет вам параметризовать ваш тест производительности jMeter (или любого другого):
http://code.google.com/p/gwt-payload-deserializer/
Просмотреть ReadMe.txt для объяснения всех компонентов полезной нагрузки GWT-RPC.
Ответ 7
Во время работы над приложением на основе gwt может использоваться некоторый запрос службы авторизации, для которого вам необходимо сохранить/использовать имя пользователя и пароль только в зашифрованном формате. С помощью этих настроек вы сможете войти в приложение через jmeter script. Кроме того, могут быть шансы, что несколько сообщений Post отправляют данные в тело вместо параметра. Это трудно обрабатывать, хотя запрос jmeter получает пропуск, но в действительности изменения, сделанные с помощью script, не отображаются в пользовательском интерфейсе.
Ответ 8
Это зависит от обслуживания. У нас есть приложение GXT, и даже JMeter HTTP Proxy рекордер отлично работает на нем.
Но его обслуживание скомпрометировано, поскольку RPC Requests использует параметр ( "X-GWT-Permutation" ), который является идентификатором файла .nocache.html. Поскольку он генерируется с другим идентификатором для каждой сборки, вы, вероятно, запишете его.
С другой стороны, селен работает нормально. Соблюдайте правильное использование селекторов в селене и, возможно, для обеспечения безопасности (в GWT), и вы, вероятно, будете настроены. Достаточно тривиально написать файл .jar, содержащий набор тестов JUnit (3.8) и обернуть его вокруг селена.
Как рекомендация: если вы, вероятно, будете проводить многократное нагрузочное тестирование с помощью селена, я могу порекомендовать Saucelabs "Sauce on Demand" (saucelabs.com). Вы настроили SSH-прокси с их сервисом, а их экземпляры селена EC2 подключаются к вашему интрасети. Это подход, к которому мы пошли.
Ответ 9
Необходимый инструмент называется NeoLoad (www.neotys.com/). Но это не бесплатно:( Если вы хотите попробовать сразу после того, как вы сможете использовать пробную лицензию, дайте вам при запуске.
Если вам не нужно что-то сложное, вы можете использовать Apache HTTPD-Test, который является бесплатным, но не настраивается как Jmeter.
Надеюсь, что это поможет.
Приветствия.
Ответ 10
Вы можете протестировать GWT внутри LoadRunner, используя GWT-DFE (расширение формата данных). Это включено в инструмент и не требует отдельной загрузки. Вероятно, если вы спрашиваете о бесплатной загрузке LoadRunner вне бюджета, я хотел бы упомянуть об этом для полноты.
Краткое видео-демонстрацию можно увидеть здесь, на Youtube, а справочная документация LoadRunner содержит более подробную информацию.