Imagine on a bright sunny day you open up your analytics dashboard and you notice the visitors graph going high and high and high and suddenly drops all of a sudden.
You will be wondering what is happening, only to find that your colleague had started a nice promotion and due to the promotion the website load increased multifold.
But what happened all of a sudden? Why the drop in visits? Ah… the promotion became too popular as it had gone viral in the social network and print media. And due to the heavy demand more number of users visited and the site could not take up the anticipated load and crashed.
A poor show, in spite the excellent job by marketing team.
What could have been done to avoid such situation and do not let the customer suffer and the drop in sales and site visitors?
Performance testing is the answer on anticipated site load.
What is Performance Testing?
Triple “S” check is a must for the public facing websites.
- Speed – Determines whether the application responds quickly.
- Scalability – Determines maximum user load the software application can handle.
- Stability – Determines if the application is stable under varying loads.
And all three can be measured using performance testing.
Performance testing is the investigation done either to determine or to prove the response time, scalability and performance of the website to ensure that they will perform well under their expected regular workload, at peak load and uncover inconsistencies across different operating systems/devices.
The goal of performance testing is not to find bugs but to eliminate performance bottlenecks and tune the system for maximum load. This is also to determine the maximum threshold the website can take.
Common Performance Problems
Poor Response Time:
Once the user performs an action and user has to wait for so long before the response is provided. This can lead to poor user experience.
Poor Load Distribution:
Poor load distribution can cause slow response time by incorrectly assigning new site visitors to hanged up servers. If too many people are on the same server, they’re going to experience difficulties, even if the overall system is well under capacity. Check the sites of some of the big players and you will notice the site loads in a flash of moments.
Types of Performance Testing
Generally a load test is conducted to understand the behaviour of a system under the specific expected load. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation. E.g. If the number of users are increased then how much CPU, memory will be consumed, what is the network and bandwidth response time.
It also helps in measuring the response time, throughput rates, and resource-utilization levels, and to identify the breaking point, and the peak load the website can handle.
This can answer questions like, what is the maximum number of users that can use the system without any impact on performance and acceptable response time.
Stress testing refers to the testing of website to determine whether its performance is satisfactory under any extreme and unfavourable conditions, which may occur as a result of heavy network traffic, process loading and maximum requests for resource utilization. Stress testing enables to identify how the website behaves under extreme load conditions.
This will answer questions like, what is the maximum peak load the system can handle and determine if the system will perform sufficiently if the current load goes well above the expected maximum limits.
Soak / Endurance Test:
This is usually done to determine if the system can sustain the continuous expected load, this helps in detecting potential memory leaks and utilization. Also to check the performance degradation when the system is being used for long duration.
This can answer questions like, if the promotion becomes very popular and the load of system is way beyond for a very long duration, can the system handle such situations?
Spike testing is a subset of stress testing. A spike test is a type of performance test focused on determining reaction to a sudden large spikes in the load generated by users.
This can answer questions like, if the competitor, runs a promotion and we are unaware of it, due to such situations users visiting the site for similar promotions on our site, there could be sudden spike of users and if the system can handle such situations.
Lot of performance testing tools are available for different types of tests and it is quite difficult to cover all types of test using one.
Jmeter is one of the renowned open source tool designed to load test functional behaviour and measure performance.
Lets explore more about Jmeter and its functioning in the upcoming blog.
Performance Testing is a must before the website goes to market, as poor performance and inconsistent behaviour of the site may lead to inadequate reputation, poor user experience and will not meet the sales goals.
Hence its concluded that it’s a must to perform performance testing at initial stage of building website and regularly in different intervals. Analytics can help monitor the peak loads and help plan for performance testing. This can go a long way building customer trust, relation and not only retain but expand customer base. Lets read about that too in another upcoming blog.