In this article I want to tell you why the Load and Stress testing are important for business operation, why your eCommerce project needs them, and what tasks they solve for growing your business.
What is Load and Stress testing
You probably know that there is a big difference between the performance of any application or service depending on how many visitors use it. A website that worked fast during development may fall when the first real users arrive, and what worked with a hundred users may die when there are 10,000 of them. In simple terms, load or stress testing is a process when we simulate usage of your project by a different number of users. So, they help you:
- Determine the maximum performance of the system, i.e. the maximum and optimal number of users;
- Detect trouble spots within your IT-infrastructure and application;
- Identify resistance to loads and an ability of the system to restore after traffic spikes.
Here I need to specify that load testing is somewhat different from stress testing, however, the ASAP Lab team performs both tests within the same Load and Stress Testing service. The Load testing checks the maximum capacity of the project, i.e. more often this test is done until the project becomes unavailable. And the Stress testing checks the work of all components of the project under load for a wider timeframe (usually 1-3 hours) to determine its ability to withstand the increased load over a long period of time.
In addition to the most obvious “find out the maximum allowable load on the project”, the Load and Stress testing help to do a very important thing – they help to plan. Based on the results of testing, it is possible to identify growth points that may not be obvious during the launch process or during the daily work of the project. So, let's talk about this a little more.
Load Testing: Why and What for
The Load and Stress testing help you to be prepared for a large influx of traffic and understand, for example, what capacity needs to be added to your project. This is especially true in the season of high sales or when you get prepared for the launch of a large-scale advertising campaign which will bring a sharp increase in the system load.
If you don’t want to find your online store down and are willing to keep the customers who usually don’t wait more than 3 seconds to load the page (according to statistics, 53% of visits are abandoned if a mobile site takes longer than 3 seconds to load) – Load Testing is exactly what you need to ensure stable project growth.
Another case is when you introduce functional changes in the infrastructure and application code. Let's say you are planning to launch new services that will increase the current load on your project. Or you somehow expand the technical functionality of the application, i.e., install add-ons from third-party developers or even make changes to the code. At first glance, everything may work stable, though various trouble spots in queries directed to the database may become noticeable under loads.
The same may apply to software updates or integration of external systems and services. After all, if errors that can be detected using A/B tests or functional testing appear almost immediately after the deployment of a new version of the application, the problems that load testing is aimed at are “sleeping”. And they are discovered only when real user traffic arrives at your website causing lack of RAM in the cluster, large load on the disk subsystem during read-write operations.
Therefore, Load/Stress testing is important not only for the “marketing” qualities of your project. It also allows you to check how well the technical side of the project is prepared, thereby helping to avoid unpleasant situations with system “crashes”. In fact, Load testing is a very powerful measuring device which allows you to probe the software code and infrastructure configurations and find their bottlenecks.
A few words about Load Testing procedure
Without delving into technical issues, the most important things you need to know about conducting the Load and Stress testing are 1) load testing scenario and 2) convenient time when it can be carried out.
In an ideal world, test scripts should fully simulate user behavior on the site - page navigations, registration and authentication procedures, password reset and change, adding products to the shopping cart, checkout, etc.
Lifehack: when choosing a contractor for load testing make sure they specialize in your sphere. We in ASAP Lab have designed a special methodology for testing online stores and marketplaces taking into account specific eCommerce user behavior.
Agree on a technological window for testing when the system will be under minimal load from live users and during which there will be no imports, mailings, backups, etc. Coordinate testing time with your developers - no work on the project should be carried out by the customer (for example, deploying a new version).
Usually it takes 1 hour to perform the Load testing, and from 1 to 3 hours for the Stress testing. Therefore, the best time for performing service is when there are not so many visitors in your store, for example at night. This will help to perform it unnoticed by users and not affect your business processes in any way. Our team will take care of everything else.
When the Load and Stress testing is done, we make a detailed report on the provided works with the investigation results and recommendations on improvement.
Numbers and figures are important but more important is to understand why the results are like this and what can be further done for seamless project growth.
The report will include and describe the following points:
- The maximum number of users/requests to the website at which the site is stable with the current configurations;
- Trouble spots, bottlenecks and issues with 3rd-party apps;
- Graphs and data which reflect the results of the tests with a description of detected problems,
- Site load indicator and average response time of project pages;
- Requests that are considered slow;
- Response time by page type, which helps to clearly see on which pages or group of pages the problem occurs.
After solving the identified issues and optimizing the server, you can repeat the Load and Stress testing (and the ASAP Lab team does it for FREE) to make sure that the trouble spots are fixed, and the project performance increases.
Like any preventive checkups, regular load testing will undoubtedly have a positive impact on the development of your product / service. In an ideal world, if there is a stage (preprod) website identical to production, load testing can be built directly into CI / CD processes when laying out a new version of the project for pre-production. Unlike various other testing load testing is not just a statement whether the patient is “sick” or not, it is a total and exhaustive study of the project in terms of bottlenecks that can become the reason for the failure of the site or service when the load increases. And, in our case, also a roadmap for troubleshooting.
Let’s once again point out three main reasons why the Load and Stress testing are your bros.
- Determine what the project is ready for
- Understand what the project should be prepared for
- Find what trouble spots your project has right now