Как выполнить нагрузочный тест / тест производительности с Vaadin 10 (возможно ли с Jmeter?) - PullRequest
3 голосов
/ 16 мая 2019

Я работаю над проектом Vaadin 10, и мы хотим выполнить нагрузочный тест на нашем веб-сайте, потому что мы использовали Vaadin 10, мы могли бы сделать это с Jmeter, но с Vaadin 10 кажется, что он не работает с Jmeter

Мы попробовали использовать Jmeter 5.1.1 и записали тестовый пример. Первой проблемой был csrf Toaken и push-идентификатор, оба могли быть извлечены с помощью средства извлечения регулярных выражений, и мы поместили их в Body Data

{"csrfToken":"${csrf}","rpc":  [{"type":"mSync","node":5,"feature":1,"property":"invalid","value":true}],"  syncId":0,"clientId":0}

какНасколько я мог видеть, по крайней мере, это сработало, но единственный результат, который мы получили, - это html-сайт с «Вы должны включить javascript в своем браузере, чтобы использовать этот веб-сайт».

Кто-нибудь знает, есть ли лучшие способы выполнить нагрузочный тест для приложения vaadin 10 или как заставить его работать с jmeter?

большинство ответов, которые я нашел, пока не узнал, касаются ваадина 8 или 7, но ни одного ответа для вадина 10 +

1 Ответ

7 голосов
/ 16 мая 2019

Да, можно использовать JMeter для нагрузочного тестирования приложений Vaadin 10+. Вы должны иметь возможность использовать следующее регулярное выражение для извлечения токена csrf:

Vaadin-Security-Key":"(.+?)"

Снимок экрана моего JMeter при тестировании с использованием приложения Vaadin 13 Bakery:

enter image description here

В дополнение к JMeter, Gatling также является хорошим вариантом для тестирования масштабируемости приложений Vaadin (любой версии). Вот хороший пример сценария тестирования Гатлинга в стартовом приложении Bakery App для Vaadin 13: https://vaadin.com/start/latest/full-stack-spring См. Путь: \ src \ test \ scala \ BaristaFlow.scala проекта.

Edit:

Я загрузил небольшой, но полностью работающий тест JMeter против приложения V13 (того же самого пускателя Bakery Flow) здесь: https://gist.github.com/johannest/593309e31e35789f8e5b03bed074f13c

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

...