views:

508

answers:

3

I'm trying to do load testing against an ASP.NET web site and I need to be able to parametertise field value of a page to test different code paths.

I had great success with JMeter when load testing a JSP web site before. However, because ASP.NET encodes all form values in the ViewState, changing control values does not really work.

I Googled this problem and people said the web testing tool in Visual Studio Team Tester Edition works well with ASP.NET pages. However, it cost quite a bit so I am just wondering does anyone know how to get around the ViewState issue with JMeter or WAPT?

A: 

I've used WebLoad before. Its scripting language is basically JS, so you may be able to find controls on the page using JS and invoke them as part of your load script.

WebLoad is free.

Assaf Lavie
A: 

As webapps get more complex (ViewState, AJAX, etc) it is tougher and tougher to use traditional load testing tools. That's because they try to jam a ton of virtual users on a very small amount of hardware resources.

My company, BrowserMob, took a different approach. We build a load testing service that uses real web browsers to drive load. Your scripts end up being essentially functional tests (specifically Selenium scripts). My background has been in Selenium for some time (I created Selenium RC and founded OpenQA.org), so as soon as cloud computing made it possible to rent the 5TB+ of RAM necessary to do this, I jumped on the idea :)

Patrick Lightbody
Oh ya I used selenium before and it worked like black magic but we got scalability problems when trying to simulate 500 concurrent users.
oykuo
Yes, running hundreds of browsers requires LOTS of hardware. That's why I created BrowserMob. It's like functional testing + load testing all in one. The scripting is super easy, and it's just as easy to schedule a load test that uses 1000+ servers.
Patrick Lightbody
+1  A: 

I've figured out how to do this, basically you cannot simply record a static script with JMeter. What you need to do is to record a request, send it, capture the viewstate in the response and send the viewstate back in next request.

If you need more details, I've documented how to do this along with some screenshots on my blog post

oykuo