Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practices and literature for web application load testing [closed]

As a web developer I've been asked (a couple of times in my career) about the performance of sites that we've built. Sometimes you'll get semi-vague questions like "will the site continue perform well, even during product launch week?", "can the site handle a million users?", and even "how is the site doing?"

Of course, these questions are very legitimate, and I have always tried to answer these questions to the best of my ability, using a combination of

  • historic data (google analytics / IIS logs)
  • web load test tools
  • server performance counters
  • experience
  • gut feeling
  • common sense
  • a little help from our sysadmins
  • my personal understanding of the software architecture in question

I have usually been able to come up with reasonable answers to these questions. However, web app performance can be influenced by many things (database dependencies, caching strategies, concurrency issues, etcetera, user behaviour).

I'm a programmer and not a statician, and my approach to this problem has always felt deeply unscientific. So I did a little more research... and all of my google results seem to focus on tools and features and metrics (and MORE metrics) when I am really looking for a way to make sense of these things.

The question: What are some good resources (books?) to read on the best practices for a developer to read on the subject of web load testing, that will help me answer these types of questions?

like image 207
Stephan Avatar asked Jan 04 '11 19:01

Stephan


People also ask

What does load testing of Web applications measure?

Load testing is performed to determine a system's behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation.


2 Answers

First your question proves you do understand the problem. It can sometimes be tricky enough creating the tools, scripts etc. to generate the load but the real challenge lies in evaluating the results and what to monitor.

A very easy answer to your question could be to Generate load on a production-like environment that is similar to current or expected usage. If it runs ok without any crashes or slow performance that is usually good enough. After that, increase load to see where your limits are.

When you reach your limit my experience is that this is purely a project budget question. Will we invest more time/money/resources etc to evaluate the cause.

I work as a test professional and I do recommend respect load testing as a vital part of the development process but unfortunately that is not always in line of what management decides.

So the answer to your question is that almost everyone needs to be involved in this process: developers to monitor their code; system admins need to monitor CPU, memory usage etc.; DBA; networking guys; and so on. They all probably need their own source of knowledge to be able to get all this info recorded and analysed.

A few book tips:

The Art of Application Performance Testing: Help for Programmers and Quality Assurance http://www.amazon.com/exec/obidos/ASIN/0596520662/

The Art of Capacity Planning: Scaling Web Resources http://www.amazon.com/exec/obidos/ASIN/0596518579/

Performance Testing Guidance for Web Applications http://www.amazon.com/exec/obidos/ASIN/0735625700/

like image 190
StefanE Avatar answered Oct 20 '22 00:10

StefanE


Have you seen:

Performance Testing Guidance for Web Applications by J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, and Dennis Rea

It's even available on the web for free. http://msdn.microsoft.com/en-us/library/bb924375.aspx

like image 21
Mark Irvine Avatar answered Oct 20 '22 01:10

Mark Irvine