I am new to QA. I need to find best tools available to test performance of a MVC web site. Please help me.
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
I am assuming that the question is on performance testing and not on profiling or performance engineering in general.
Tools should be used in context of the application/problem in hand and the objective you are supposed to achieve as a result of performance testing.
Sometimes an spreadsheet or a calculator coupled with an stopwatch and colbaorative team work does the trick.
There are a host of tools available (open source and paid) and you have to spend some time in learning and using them. Do not be afraid of using a mix of tools if required to achieve the performance test objective.
The tools vary from simplest browser extensions like PageSpeed or YSlow to tools/performance testing itself available as service in the cloud provided by the likes of browsermob, loadstorm or WebPageTest to the most widely used opensource tools like JMeter and OpenSTA (very less activity in a while) to some heavy weight commercial ones like HP LoadRunner and IBM Rational Performance Tester.
You can find a lot of stuff in general about performance testing on the perftestplus maintained mainly by Scott Barber. This article providing 10 tips on performace testing by Scott should help you and there is tip (#2) on tools as well.
I've recently discovered mvc-mini-profiler and think that it's great little tool for looking at performance for a .NET MVC site, it was created by StackExchange and is used by them to monitor performace. I have used JMeter also in the past for performance and load testing of a MVC3 application.
Both tools are free, however, if you want to spend some money then i've heard HP LoadRunner is really good, but it's pretty expensive also.
If you are talking about just raw performance to load a page when the system is under minimal load, there are a wide variety of tools (see Rajneesh's answer). I tend to often just use Fiddler2 because it's also useful for a lot of other things, and it gives you a breakdown on all the stuff that goes into loading a page and how long it took to load each file.
If you are talking about performance under load, then for someone using the MS technology stack, I think the web performance and loadtesting capabilities built into the Ultimate version of visual Studio would be my preferred choice. The tool is pretty easy to use if you understand loadtesting (e.g. have used loadrunner or similar tools) and because it works at the protocol level you can ramp up to pretty large numbers of virtual users per physical system being used to apply the load. The community of users and MS folks on their MSDN forum is a great resource when you need help.
You can download a trial version from MS if you want to give it a whirl. Yes I know it's a bit weird that the 'test' version doesn't include the loadtesting, or even the coded UI test stuff. I think it reflects an attitude at MS that 'tester' means manual testing, and anyone doing test automation is a 'Developer in test' (with a capital D for developer and lower case t for test) and would thus be using a 'Developer oriented version of the product. It's not free, but (at least for me) the learning curve is short which is often the biggest cost to rolling out any tool, even a 'free' one. Also their licensing costs to add server agents and vusers is way-way cheaper than a product like Loadrunner
Ed Glas, one of the PM's on the VSTS team maintains an index page on his blog that is a good starting place for more info, especially the product overview and some of the recorded webcasts that walk you through how to use the product.
Lastly, no matter what tool you use, THIS free book from the MS Patterns and Practices team is a great resource for anyone doing web performance and loadtesting regardless of the technology stack involved.