In this article I am presenting the detailed information about load test and its best practice on one of the known software Let’s get into the topic.
What is Load Test?
Load testing is a process of putting load on any machine, site or any software system to measure its response. This test helps to determine the behaviour of system at different amount of load (load is nothing but the amount of traffic) and it also helps to estimate breakdown point, maximum traffic that a system can bare.
In the software environment load testing refers to the testing of website performance, apps and storage server and many other things
Why do we need to perform Load Test?
Load test need to be performed on every system to analyse the following things
It helps to estimate the performance of system, site not only for huge traffic but also for daily visitors how they are experiencing the site.
Amount of user engagement with content of system.
To check any need of updation of pages, content in system.
The capacity of system can be tested by maximum load on the system.
What will happen if we don’t do load test:
To explain this let me give a real life example, In the year 2013 coco cola launched Coco cola bears for which they spent huge amount for advertisement, promotional videos, Banners etc for all these kinds of things when the product launched on their site,
You don’t know what happened, a large amount traffic began to flow to their site and it reached up to it’s maximum capability which the site was unable to bear therefore the site gets overloaded and site become temporarily out of service.
They spent large money on promotions, but they did not check their site for load Test. So for this reason we must do load test to our site frequently.
Types of Load Tests:
Load tests are classified into 4 types
Endurance load test
Targeted Function test
The capacity test is a test where we test our site to the point where the site gets breakdown or up to number of users can my site able to bear. It helps to find the maximum load that a site can manage. If the site goes beyond the maximum Capacity we will be shown with 500 errors of maintenance on the site.
Endurance load test:
Endurance test objective is to send traffic to the system which is more than maximum capacity which our system can handle.
This will be done over a long period of time to figure out the problems which can be seen until our system has long period of maximum traffic.
You can figure out few problems like memory leaks in such test only. These tests tell that your memory gets to end up so you need to clear inaccessible storage in order to maintain your site health.
Baseline test is considered to be one of the most important test where you can check up normal day to day traffic. Baseline test helps to check the performance of system under normal organic traffic. This test helps us to understand and check how our site performs normally on day to day.
Once the baseline test is done then you can analyse what has happened to your site over time like why the site getting slower or how the site getting faster. We can also compare baseline test with stress load test to estimate various parameters of system.
Targeted Function test:
Targeted Function test performs to test everything on the site. You can customize this test to certain level. If you are going to release some new feature on your system then you can run this targeted function test to specify test targeted to that specific update only, later you can check whole system to cross-check whether the update is working properly with system or not.
When do we need to do Load test
The best time to do a load test is before the time of prelaunch, and we have to do it several times before the prelaunch because if you find any issue at that time, then you have enough time to resolve the issues.
We can perform basic load tests like stress test and baseline test on the system before prelaunch. One more thing to do a load test we must have complete duplicate of system to test because if you find any error after load test and you try to resolve the code and if in case it won’t work then you need your root source code to reconstruct the system.
Load testing need to be performed before a major marketing event because after the event you will get huge traffic to your site which may lead to site breakdown
So it is necessary to perform the load test before marketing event, you can take Coco cola example for this as mentioned in the beginning of article.
Test plans helps to estimate the breakdown point of the site which means that maximum number of users that a site can accommodate at a time and it also includes with number of users hitting the site at a particular page.
If you are going to perform load test on multi niche site and you want to test all the categories to be visited by unique visitors at a time then it needs to be included in test plans to test how the site is performing on different browsers and on different devices.
Test plan needs to follow the behaviour of follow click paths. Click paths refers to the users who visit to our system through referral links and that referred link to next pages and so on. We must plan that our test plan must follow this behaviour for testing.
Load test can not perform complete test of a system so, we need to see that riskiest areas need to be definitely checked for sure during the load test.
How to perform Load testing on a system ?
To perform a load on a system we can consult companies which specifically work on Load testing, or we can use the software to do load test if we know how to use them.
There are companies like Blaze meter, SOA STA, Frugal Testing which perform load test on demand basis, or we can do load test by software like J meter which is Java based to do load test to run load test on our site.
Best practices while load testing with J meter:
Delay thread creation until there is a need of thread.
Use workbench to perform rough task.
Include and exclude list- save exclude list for further usage.
Avoid GUI mode for large load.
Avoid view result tree and table use only for debugging.
Use loop controllers for same samplers.
Use dynamic test data with CSV.
For saving listener output use CSV i.e, disable XML. It saves larger data in larger size.