Tag : performance-testing
There are a number of different common types of load tests. They each serve different purposes, and vet different capabilities.
A Real-World Concurrency test simulates normal production-like usage and determines the application’s scalability. This test is probably the single most important test for vetting a site’s capabilities.
Purpose: Vets the application for a certain number of users with production-like traffic and verifies performance characteristics.
Detects: Bottlenecks, issues including inadequate web server connections, CPU, memory, keepalives, inefficient queries and algorithms, load-balancer issues, worker thread/process issues, database connections, query problems and more.
A Stress Test verifies the websites capabilities when pushed passed expected capacity.
Purpose: Determine upper limit of system capacity and the next expected bottleneck.
Detects: Website breaking point, website degradation profile under increasing load.
A Failover Stress Test verfies website performance when resources are taken away and recovered.
Purpose: Determine how failover conditions are handled including reduced web server, app server and database offlining, as well as recovery from changes in these conditions.
Detects: Correct behavior in the face of reduced capabilities, load balancing, automated recovery, error handling.
An Endurance Test, also known as a soak test, involves testing a system with typical production load for a longer period of use.
Purpose: Verify the application can handle extended usage without resource scarcity issues.
Detects: Resource utilization problems over time where usage of a finite resources is exhausted over time. Typical problems include memory leaks, file handle leaks, database connection recycling, unrolled log files absorbing all disk space.
A Bandwidth Test verifies the amount of bandwidth that your web server tier can pass. This test uses a large image hosted on your web server (not a CDN!) to determine the throughput your website can push through. A Bandwidth Test verifies the promised bandwidth can be delivered given your current configuration. By running an isolated bandwidth test, other tests may be safely run without downloading assets like images so long as the implied bandwidth requirements of those tests is within your established bandwidth-ceiling.
Purpose: Verifies your web server and networking capabilities in isolation.
Detects: Limitations with web hosting providers, network misconfiguration, load balancers, web server, and connection problems.
A Baseline Test verifies website performance under a minimal-traffic scenario.
Purpose: This test determines best-case performance measurements for page load times.
Detects: Best-case page load time. Issues in testing scripts themselves.
A home page test is a simple test that can verify some basic scalability issues.
Purpose: For static websites, this single-page test provides a decent estimate of a website’s capabilities. For true web applications, a home page test provides fast feedback on some problems.
Detects: Issues on a website’s homepage, as well as common web server issues and some configuration issues.
We’re starting a Load Test Scripting series where we’ll cover common areas of site functionality, how to properly script them, and considerations for each type of script. We’ll be focusing on common functionality like authentication, product search, purchase, chat, and more. The posts will be tool-agnostic and focus on doing things right rather than any particular vendors or tools.
Our first post on testing your site’s authentication (login/logout capacity) is up already. We’ll add a link to each area below as we post them.
Keep an eye out for more from us–join our mailing list or subscribe to our RSS feed to keep in touch.