views:

265

answers:

3

What can be the various performance testing scenarios to be considered for a website with huge traffic? Is there any way to identify the elements of the code which are adversely affecting the site performance?

Please provide something similar to checklist of generalised scenarios to be tested to ensure proper performance testing.

+1  A: 

It would be good to start with some load testing tools like JMeter or PushToTest and start running it against your web application. JMeter simulates HTTP traffic and loads the server that way. You can do that as well as load test AJAX parts of your application with PushToTest because it can use Selenium Scripts.

If you don't have the resources (computers to run load tests) you can always use a service like BrowserMob to run the scripts against a web accessible server.

AutomatedTester
A: 

It sounds like you need more of a test plan than a suggestion of tools to use. In performance testing, it is best to look at the users of the application -

  • How many will use the application on a light day? How many will use the app on a heavy day?
  • What type of users make up your user population?
  • What transactions will each of these user types perform?

Using this information, you can identify the major transactions and come up with different user levels (e.g. 10, 25, 50, 100) and percentages of user types (30% user A, 50% user B, ...) to test these transactions with. Time each of these transactions for each test you execute and examine how the transaction times change as compared to your user levels.

After gathering some metrics, since you should be able to narrow transactions to individual pieces of code, you will be able to know where to focus your code improvements. If you still need to narrow things down further, finer tests within each transaction can be created to provide more granular results.

shambleh
A: 

Concurrency will kill you here, as you need to test your maximum projected concurrent users + wiggling room hitting the database, website, and any other web service simultaneously. It really depends on the technologies you're using, but if you have a large interaction of different web technologies, you may want to check out Neoload. I've had nothing but success with this web stress tool, and the support is top notch if you need to emulate specific, complicated behavior (such as mocking AMF traffic, or using responses from web pages to dictate request behavior.)

Stefan Kendall