jaxb
jaxb

Reputation: 2077

GWT load testing with jmeter

I have a GWT application and wanna to test load and functionality using a tool like jmeter. I am not sure jmeter is right tool for GWT. Can anybody direct me to proper tool or can tell me how to do it with jmeter?

I want to test login functionality: I have two text box 'User name' and 'Password' on login screen and want to test how many users can log in simultaneously, how much time a round trip to server it takes. Don't know how jmeter can get 'user name' and 'password' and can submit it to validate against DB for GWT application?

Thanks in advance.

Upvotes: 16

Views: 13710

Answers (10)

UBIK LOAD PACK
UBIK LOAD PACK

Reputation: 34526

There is a commercial solution called UbikLoadPack which offers a plugin for Apache JMeter to load test GWT and GWT RPC applications.

You can with standard knowledge of Apache JMeter easily:

  • record
  • variabilize using XML syntax instead of unreadable gwtrpc format
  • replay GWT and GWT RPC based applications
  • debug thanks to View Result Tree specific renderers

See this blog for a tutorial:

And this for commercial infos:

Upvotes: 3

Marko Bonaci
Marko Bonaci

Reputation: 5708

I had the same problem while testing a GWT app with jMeter so I wrote a piece of code that does GWT payload deserialization, hence allowing you to parametrize your jMeter (or any other) performance test:

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

View ReadMe.txt for the explanation of all GWT-RPC payload components.

Upvotes: 1

Avinash Khule
Avinash Khule

Reputation: 1

While working on gwt based application, some authorization service request may be used for which you need to keep/use user name & password in encrypted format only. With this settings, you will be able to login to the app through jmeter script. Further, there might be chances that few Post requests sends data in body instead of Parameter. That is difficult to handle though jmeter request get pass but in actual the changes made through script not seen on UI.

Upvotes: 0

KisnardOnline
KisnardOnline

Reputation: 740

You can test GWT within LoadRunner using the GWT-DFE(data format extension). This is included within the tool and does not require a separate download. Likely if you are asking about freeware LoadRunner is out of budget, but I wanted to mention it for completeness.

A brief video demo can be seen here on Youtube and the LoadRunner help documentation contains more details.

Upvotes: -1

user1565007
user1565007

Reputation:

In fact the real complexity exists if your application uses GWT RPC, if it's JSON then JMeter will do the job. I your login page is not the first page AND you application uses GWT RPC, then you will need either a plugin to JMeter that handles the serialization or use another tool (I don't know real free tools that do this).

Upvotes: 3

pdbartlett
pdbartlett

Reputation: 1519

I guess it depends what exactly you want to test. If you want to test the client-side code as well, something like Selenium might be better.

If you just want to test the back-end, though, you could have JMeter send it HTTP requests via HttpClient or something similar. You can determine what needs to go in the request using a debugging proxy such as Fiddler.

Upvotes: 5

Frederic Conrotte
Frederic Conrotte

Reputation: 744

Testing GWT with load testing solutions based on HTTP forms like JMeter or Selenium can be quite hard because of evolving user interfaces.

On our project we took another approach.

Using the gwtrpccommlayer project, we call directly RPC servlets from JUnit.

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

It means we can re-use our server side facades API in our load testing scripts, an maintain these scripts as server-side code evolve.

Therefore in JUnit we can launch multiple threads to simulate several users using the application and collect statistics.

Upvotes: 5

Sven
Sven

Reputation: 689

I used Selenium 2 test scripts written in Groovy plus Gradle for parallel execution to load test a GWT application recently. The following blog post shows some of the results.

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

Upvotes: 1

Ron
Ron

Reputation: 2265

The tool you need is called NeoLoad (www.neotys.com/). But is not free :( if you want to try just once you can use the trial license the give you at start.

If you don't need something sofisticated you can use Apache HTTPD-Test wich is Free but is not than configurable as Jmeter.

Hope This Helps. Cheers.

Upvotes: -1

aldrinleal
aldrinleal

Reputation: 3609

It depends on maintenance. We do have a GXT app and even the JMeter HTTP Proxy recorder works fine on it.

But its maintenance gets compromised since RPC Requests use a parameter ("X-GWT-Permutation") which is the id of the .nocache.html file. Since it is generated with a different id for each build, you are likely to re-record it.

On the other hand, selenium runs fine. Get a hold on properly using selectors in selenese, and perhaps ensureDebugIds (in GWT), and youre likely to be set. It is fairly trivial to write a .jar enclosing a JUnit (3.8) test suite and wrap it around selenium.

As a recomendation: If you're likely to do multiple load testing with selenium, I can recommend Saucelabs' Sauce on Demand (saucelabs.com). You set up an SSH Proxy with their service, and their EC2 selenium instances connect to your intranet app. Thats the approach we went for.

Upvotes: -1

Related Questions