Black Friday is just under 3 months away, making this the perfect time to start preparing your website and application for the expected crowds.
To make sure you are ready for November 25th, here are 8 Best Practices for making sure you are ready.
1. Define Your Load Goals From a Business Perspective
To ensure your website can handle the load, you first need to determine what your loads are. You will need to define the number of concurrent users, the hold time or times, traffic spikes and complex user scenarios. Take into consideration your traffic from last year, the changes in your traffic over the past months, your marketing efforts for Black Friday, any special offers you have that might spike your traffic and your users’ behaviour.
2. Involve the Whole Technical Team
After deciding what you want, you now need to plan how it can be done. Get your technical team together: developers, QA engineers, DevOps, product managers, etc. Get them involved in the Black Friday spirit and share your business goals with them. They are the ones that will be running the tests and preparing your infrastructure, application and site for Black Friday. Get an overview of the current performance status, so you can prepare for the next step — planning the tests.
3. Plan the Tests
Now you can plan how to execute your business goals. Together with your team, determine which tests you need.
Here are the types of tests you can run:
Load Tests — For understanding system behavior under an expected load.
Stress Tests — For understanding the system’s capacity limits.
Soak Tests — For examining the system’s abilities to hold a continuous expected load.
Spike Tests — For examining the system’s abilities to hold a heavy load that was abruptly and quickly generated.
Isolation Tests — A repeated test for examining if a known and detected system error or issue previously detected by the same test, was fixed.
Take your business goals as well as your knowledge of where your product performs better and not-so-well, and fit the right tests to them.
4. Choose Your Load Testing Tools
There are different open source tools you can use for load testing, such as JMeter, Gatling, Locust, The Grinder and Selenium (for low-scale browser loads). For a quick guide on the similarities and differences between them, see here. BlazeMeter offers additional advantages, such as larger scalability from multiple geo-locations, it’s a cloud service, it has sophisticated and elegant reporting abilities and it enables work collaboration.
5. Run the Tests
You are now ready to run the tests! Go for it. We recommend that if your system successfully handles your goals - go farther. Know when your system breaks. This could come in handy for unexpected real-time traffic spikes. If you know what your system can do, you also know how to manage it in real-time.
6. Analyze the Results
Identify bottlenecks and errors and determine which solutions are needed to fix them, and fix them. Set aside dedicated technical resources for this. Look at KPIs like response time, throughput, latency and connect time; and also at the correlations between them.
7. Run Your Tests Again
After committing changes, fixing bugs, servers are ready, etc., calibrate your tests and run them again to see if the changes improved your system’s abilities.
8. Plan and Implement Continuous Delivery (CD), Continuous Testing, and Continuous Integration (CI) Methodologies
Load testing doesn’t start and end before special events. Implement Continuous Testing into your development strategy. Ensure any changes in your code don’t affect other parts of your product, and make sure you are always prepared. Jenkins is an open source tool for automating tests and Continuous Integration, which enables load testing as part of its process.
Black Friday is a great opportunity for many businesses. With proper preparation, you can ensure you will be prepared.