2
votes

I need to load test a Vaadin application. I found this link explaining how to use JMeter with Vaadin however I can't get it to work. I suspect the problem are my MenuItems since Vaadin 6.4 ChangeLog mentions that some change was made to MenuItems in order to make Vaadin MenuItems HTTP-Level tester friendly. However upgrading the Vaadin 6.4 and 6.5 yielded no better results.

Here is my problem, I need to load test my Vaadin application to prove it will work with at least 50 concurrent users. However the async nature of Vaadin means that most tools have no idea when a response has taken place or whether it is correct. How can I script a test and emulate 50 users? Any help will be much appreciated I've tried a lot with Selenium and other tools but their scripts never execute reliably. Has anyone load test a vaadin app? If so how?

2

2 Answers

0
votes

Selenium does not work out of the box with Vaadin apps, that partially is why TestBench exists.

The easiest solution to your problem is to add a sleep to each request in jMeter. It's ugly and needs some experimenting to get the sleep times good enough. And it's not completely fool-proof. It might however be enough for you to prove that 50 concurrent users works.

Another thing is to add some kind of client-side rendering and use JS to check if there is still an existing connection from client to server. TestBench uses something like this for implementing a waitForVaadin() function that checks if the request is complete. Here's some discussion: http://vaadin.com/forum/-/message_boards/message/236584#_19_message_236823

0
votes

Vaadin uses many technical ids for the components, so in order to automate a realistic navigation you need to correlate those ids.

You can read this blog which illustrates the use of a commercial plugin for Open source Apache JMeter that does auto correlation for you. You just record and you can replay, all correlation is done by plugin.

Disclaimer : We are provider of this solution