views:

4327

answers:

9

This may be the wrong question to ask but, what's the best way to replicate a large load on an asp.net web application? Is there an easy way to simulate many requests on particular pages? Or is the best thing to use a profiler to track a single request and then work out from that if the performance is ok?

It would be good to know how well a web app works with a server spec. I'd like to be able to simulate heavy traffic on my testing server so that I can work out if the production server is good enough (specifically with iis/asp.net not db performance).

A: 

Try this book

WACM161
+7  A: 

JMeter would be one such tool. Can be a bit hard to learn and configure, but it's usually worth it.

Joachim Sauer
Very hard to learn, I couldnt even get started! ;P
leppie
+10  A: 

My sugestion is for you to do some automated tests first. Use selenium for it.

Then deploy selenium grid to test in multiple computers at the same time.

Although Selenium as an automated test tool will run quite fast, making a mini stress test. If you put the same automation running in a couple of computers on your network at the same time you'll be able to see how it behaves.

If you want to make timings of response, they have a cool api which you can use to write some scripts to run your automations.

Edit: Selenium is quite easy to use, it does asserts to page contents if you want to test the contents. It also copies your movement through the page if you wish (this would be my sugestion) just navigate the page a lot, and then save it for automation. Avoid putting asserts so selenium might run faster.

fmsf
Agreed, great tool
redsquare
We use selenium extensively for UI testing, and I just had a conversation with our head QA guy about possibly deploying a "payload" app to all our user machines that could fire off a selenium test at a scheduled time. Or even better would be a bunch of virtual boxes that all hammer the site at once.
Josh
Josh, that's the idea behind Selenium-Grid...
Paul
Selenium is a neat tool, but it doesn't strike me as an efficient way to stress test something.
Jon Topper
According to Selenium FAQ, it is not designed for load testing: http://selenium-grid.seleniumhq.org/faq.html#would_you_recommend_using_selenium_grid_for_performanceload_testing
frankadelic
+2  A: 

The ab (apache bench) tool allows you to send many requests to a single page and you specify how many clients you want to be used and how many concurrent connection you want.

This may be the first step when developing a site. Just test some pages with a specific load. This way of benchmarking may have some problem, like caching being over used.

Later you may want a tool that simulate some concrete traffic and not for a single page. I don't have a refence handy on such tool yet.

Pierre
+1  A: 

Maybe grinder will help? You can simulate concurrent request by threads and lightweight processes or distribute test over several machines. I'm using it extensively with success every time.

mcveat
Forgot to add that it is driven by Jython scripts
mcveat
A: 

DUP: ASP.Net Stress Testing

Patrick Cuff
+2  A: 

We tried a few applications, both trials of commercial products and freely available ones. Ultimately, it was the trial edition of the Team Test Load Agent software that we tried. It definitely works great and is fairly simple to use. In the long run, it bolstered our argument to move to Team Foundation Server and equip all parts of the department with the appropriate tooling.

The obvious downside, however, is the price.

joseph.ferris
A: 

Microsoft has a Stress Test. However, the best test is to make it live, and compare standard load to load under whatever change you are proposing. If fearful it will take down the server, make only a random, small percentage of users see it, but scale up over time.

Brian
As of 11/11/09 This link is now out of date - does anyone know the proper link to this?
Jeff Winkworth
http://support.microsoft.com/kb/231282 might be the same.
Brian
A: 

For web service testing, soap rest or WCF (including WebHttpBinding), try out SOA Cleaner. Can be downloded from:http://xyrow.com. There is a free version, and it doesn't require any installation. It can also perform load tests.

Clangon