GWT is intensely javascript-centric and Jmeter does not run Javascript as a
browser would. This means that you can't exactly test the user interface.

What you CAN do, and I've done this a few times so far, is test the
client-server communication that originates out of that user interface. For
this, the recording controller works reasonably well. So you can send the
string the login GUI would send back to the server and validate that the
response was one you expected. You just can't verify that you actually get a
login screen.

This is actually pretty helpful. You can quickly verify that there were no
regressions in the server code, and dramatically lighten the load on your
manual testers. In some iterations you might not need to call on manual
testers at all.

The GWT app I was testing uses GWT RPC to communicate with the back end. So
some stuff happens on the client (Lets say the user is presented with a
login screen) and then after the action has been completed data is squirted
back to the server to validate that user. The recording controller sends the
httprequest back as one big delimited string, but you can mostly see the
values that you need to parameterize with Jmeter variables.

There's one cryptographic signature toward the start of the string that's
not intuitive. It seems to be there to prevent cross-site scripting and it
changes every time you (or at least every time we) rebuild the app. This
string must be replaced every time you deploy, or your test will no longer
work correctly.

To get this string, which is called the "Strong Name", you have to go to the
directory where your application is deployed. In this directory are a number
of .gwt files, each of which starts with the cryptographic signature you're
interested in. If you search for the name of the function you're attempting
to call in your jmeter test (Let's say "login",) one of the files will have
the function name in it. The filename of this file before the ".gwt" part is
the GWT strong name you need to replace that parameter with, in your string.

I apologize if I didn't explain that very well, I haven't had my coffee yet.
If it didn't make sense to you, I'll try to dig up some additional
information about it from my research on the subject for you.

-- 
Bruce Ide
flyingrhenqu...@gmail.com

Reply via email to