Load testing for the massive traffic on Black Friday and Cyber Monday

Care to share?

Both Black Friday and Cyber Monday are brutal tests for your infrastructure. That’s when many eCommerce businesses have the most sales in the entire year. Load tests are crucial to ensure your system won’t break during the most critical time of the year and waste your marketing efforts and cost you revenue. 

eCommerce shops can receive 10x more traffic on Black Friday and Cyber Monday compared to regular business days. You still have time to check how your eCommerce will hold up against this crushing tide. The testing itself isn’t complicated, but it’s essential to do it right so you don’t miss all the important insights and bottlenecks.

Here are seven important tips to handle the load testing process properly.

Getting ready

1. Identify critical bottlenecks in your infrastructure.

Your eCommerce is usually a complex system with many microservices that act independently. A single feature can drag down your site's performance and user experience. On the other hand, one of the benefits of this architecture is that you can easily identify problems and fix them. 

In most cases, the critical point is your front-end/back-end integration. There are also other elements that can cause trouble. Custom services or a search feature can eat up a lot of resources. Another thing you shouldn’t miss is autoscaling that can fail during peaks in traffic. 

Depending on the bottlenecks you identify, your load testing scenarios can vary.

2. Calculate how much load you can expect on Black Friday/Cyber Monday. 

You want your test to be performed in similar conditions to the incoming eCommerce bonanza. One of those conditions is a monstrous amount of traffic. 

You can estimate the traffic by comparing it to your historical data and planned marketing campaigns. It can be expressed in orders per minute or hour, sessions per minute, etc. 

3. Identify the major processes of your eCommerce.

Your critical processes are those processes your customer cannot progress on their journey without on their way to finally ordering a product. Talking about the eCommerce front end, you can take a closer look at:

  • product detail pages. 
  • product listing pages. 
  • cart/checkout pages. 
  • AddToCart feature.

You have to evaluate the performance of those critical features in your testing process.

Technical issues

4. Find the right tool for handling different traffic patterns and create test plans.

When it comes to load testing, we can recommend Apache JMeter. It’s a mature open-source tool with lots of features. 

Lots of SaaS platforms out there support JMeter tests, but you have to be aware of the costs. Full-scale load testing on large environments can easily cost several thousand dollars. If you’re familiar with cloud services like AWS, it could be cheaper to set up your own cluster.

5. Make sure everything is testable and remember to create a cleanup procedure.

Load tests can generate a lot of mess. For example, it can create several thousand orders in your system. You need to have a plan for how to delete them and keep it all under control.

6. Track more than just CPU and memory.

Doing tests in large environments can be stressful. You may not be aware that system loads look at the task managers scattered across several machines. It’s very important to have proper monitoring and tools to track and summarize all this. Without that data, you’ll be blind.

Monitoring CPU and memory isn’t enough in most cases. Tools like New Relic and Datadog can help you with logging all the data. During the test, we always recommend specific application metrics, like:

  • read/write latency. 
  • deadlocks. 
  • transactions per second. 
  • cache hit stats and so on for the databases.

7. Find the right environment for your load testing.

In the best case, your testing environment will be an exact copy of production. It should always match the production setup as much as possible. 

If it’s impossible to do the load testing in a separate environment, find the right time with minimal traffic. After all, you should expect your systems to go down. That’s the hidden cost of testing in production.

How to assess the load testing results

In the end, the testing itself is very simple. You just direct the traffic and keep monitoring the logs. The difficult part is to analyze the results and come to the right conclusions and recommendations. 

JMeter, or any other tool, will generate a report to show you what happened during the test. It will show you if there are any findings, increasing response errors, higher response times, etc. Now it’s time to analyze the behaviors. You need to bring all the experts to the table for this.

Of course, if you need any more experts to help you understand the data, you know who to call.

 

Published November 3, 2021