Load Testing: a Beginner's Introduction

Both webmasters and web designers always need to keep a close eye on website loading times. A slow response time will result in less visitors and less profits. Load testing is done to ensure that a website remains responsive under heavy loads. Most webmasters don’t perform load tests, and they discover that their website cannot handle a sudden influx of visitors at the worst possible moment — when it actually occurs!

Many a website has been “slashdotted”. Getting featured on a popular website like Slashdot or going viral on social media like Twitter should be a moment of triumph. But if that traffic increase causes a website to slow down or even temporarily close, then their webmaster will have the heartbreak of watching both extra exposure and profits disappear down the drain.

By load testing a website before it is tested by a torrent of real visitors, such a scenario can be avoided. Load tests enable web developers to simulate the visitors, thereby telling the webmasters what level of traffic begins to reduce the response times of their websites. Therefore, testing facilitates a process of web performance optimization and allows the website to deliver a superior user experience for visitors.

Speed Beats Glamor

In the late 1990s, when Adobe Flash was first emerging as a favorite web technology, it seemed the Internet would soon be full of Flash websites. But this didn’t happen. Impressive as those websites might be visually, it was soon found that most web surfers didn’t have the patience to sit through Flash websites’ extended loading times. Users wouldn’t wait, and they are growing more impatient every day.

The need for balance between response time and new website technologies continues to this day. Just as engineers must ensure a bridge won’t fall down under the strain of extra cars and lorries, web developers must ensure their websites remain responsive under a flood of visitors.

The fact is that a snappy user experience beats a splendorous one hands-down. For the most part, users want to be able to engage with a website’s content, not admire its fancy animations and appearance. They are unwilling to wait for a great website design.

The web performance firm Strangeloop offers several astonishing facts about how a website’s loading time effects its visitors’ behavior:

  • Just three seconds wait was enough for 57% of web surfers to turn away from a website, and 80% of those will never return!
  • A one second delay in page-loading time led to 11% fewer page views and a 7% loss in conversions.
  • By speeding up their average page load time from 6 seconds to 1.2 seconds, Shopzilla’s revenues increased by a whopping 12%!
  • A 100 millisecond improvement in responsiveness at Amazon.com increased their revenue by 1%.
  • Yahoo! reported that a 400 milliseconds slow down in their pages loading resulted in 9% less traffic.

The reasons why page-loading speeds effect human behavior so much is somewhat surprising. Usability expert Jakob Nielsen suggests it is due to short-term memory decay and the desire to feel in control. If visitors have to wait, their attention goes elsewhere and they have to re-establish what they were doing when the page finally loads, breaking up the user experience. Additionally, being made to wait leads us to attribute arrogance and incompetence to companies that have slow websites.

These facts give you an idea of how important responsiveness is to a website’s success, and why load testing is so essential.

How Does Load Testing Work?

In a nutshell, load testing simulates a flood of visitors for a set period of time. Data is collected on a website’s responsiveness during the test, so that problems can be diagnosed and fixed. It is impossible to run such a test without a tool for this purpose. There are many load testing tools available today that generate the flood and measure the responsiveness.

The simulated flood of visitors is created by having many servers simultaneously request content from a web server. But these requests aren’t simply asking for the front page again and again like a botnet performing a denial-of-service attack. They make requests as instructed by the person running the load test, so that the requests emulate those made by real web surfers.

This allows the load test to be more realistic, as they can even emulate the behavior of different types of visitors. For example, an e-commerce store can test how their site responds to 100,000 people simultaneously browsing its products, or what happens if 10,000 people simultaneously decide to make a purchase.

The web testing tool will provide metrics, charts, and key performance indicators regarding the load tests. With this information, a web developer can discover what are the bottlenecks that prevent the website from being more responsive.

These system bottlenecks can be for all sorts of reasons, such as:

  • Poor/expensive SQL queries are coded in the application.
  • Server size (CPU, memory) is too small.
  • System architecture has not been designed for scalability.
  • The website is waiting for embedded media or other resources from a different site.
  • The database has too few connections enabled.
  • JVM memory management and/or garbage collection is configured improperly

After diagnosing and fixing such problems, another load test can be run to optimize a website’s performance further. It is best to only fix one bottleneck between tests. Otherwise, you can’t know for sure which fix resulted in speed gains. Load testing is by necessity a process rather than a singular event. Testing leads to optimization (fix) and testing must be conducted again and again after every fix.

Load Testing is More Important than Ever!

Web pages are increasing in size rapidly. Back in 1995, the average page size was only 14.1 kilobytes. In 2010, it had increased to a massive 498 kilobytes. And this rapid growth doesn’t appear to be slowing down.

Websites and web applications have become very important to companies. Not only the marketing value of having a brochure available to anyone at any time, but there are billions of dollars transacted through the web. E-commerce is an obvious system for money to exchange hands, however there are thousands of web applications buying/selling/trading every minute without any human intervention.

Social media sites like Facebook, Twitter, and Google+ are web applications that see hundreds of millions of visitors per day. While we don’t know exactly how much revenue they are generating from this traffic, it has unquestionably spawned enormous value on Wall Street. Load testing and web performance optimization has been a very public initiative for all social media sites – especially for the much-maligned “fail whale” of Twitter. Hardly a day goes by when some online media writer doesn’t mention the responsiveness of social media sites.

Web traffic growth, record money spent online, and hundreds of millions of daily visitors make optimizing page loading times more important than ever before. Load testing is an important part of this optimization and can no longer be overlooked.

Hoping for the best is no longer a viable strategy.

Similar Posts