Black Friday and Cyber Monday are arriving and with them is the wave of users frantically attempting to purchase items on their wishlist! When too many of these eager shoppers flood your site at the same moment, it just might break, and unfortunately, this is exactly what happens every year even to major retailers. In this post, we are going to share some tips for ensuring your site’s performance just in time for Black Friday. If you follow them, the site that winds up making major headlines for its technical difficulties on Black Friday (or any day) will not be yours.
Why You Can’t Afford to Skip Performance Testing
Firstly, let’s talk about why performance is relevant to Black Friday and Cyber Monday revenues.
Say you are a big box retailer and I am a customer trying to purchase a TV that you are offering for half-off online on Black Friday only to discover that it has already sold out. It would be a bummer for me, but understandable. I lost out to the other online shoppers fair and square.
On the other hand, something that would just not be understandable nor acceptable to me is if, during my transaction, a 503 error appeared on my screen. I would be losing out to you, the site owner, leaving us both worse off. I’d be wondering, “Why is the site not working? What do I do? How can I fix it? How can I work around this? How many more seconds do I have until my TV is sold out? Ahh!”
After facing this issue, I will feel frustrated and significantly less confident in using your site to purchase items in the future. I’ll even have to go to a competitor’s site to purchase the same TV.
Moral of the story: Don’t give your competition the favor of boosting their sales due to your own site’s downtime!
To add insult to injury, the bad news of your site performance will travel much faster than if it had been working perfectly. How many times have you seen someone share on social media or in the workplace, a screenshot of an embarrassing glitch, error, or system crash accompanied by a story of outrage and frustration? Many times. Now, how often do you hear about a transaction that went seamlessly, resulting in a “Thank you for choosing us.” message? Almost never.
So as a company, the high-level performance of my website will be a critical factor for the success of my Black Friday sale for two reasons:
I won’t lose sales due to the system crashing at the very moment when thousands of deals could be made.
I can avoid the negative impacts on my brand perception of thousands of users having a poor shopping experience and then telling the world about it.
How can you make sure your site wins out on Black Friday without cracking under the pressure of a heavy load?
Performance tests are the best way to know whether a system will be able or not to support your expected load. If you do not know what the expected load is, you will at least know how many users the site can support with the components you have available at the time of the test.
It may seem obvious that one should run performance tests before putting a website into production that is destined to have a heavy load. The reality is that many companies put their sites into production and then experience many service interruptions and only then start to utilize performance tests. Often, this is when it is already too late as many customers have already experienced these problems and the company earnings slow down as the word gets out about the site’s issues.
Tips for Great Black Friday and Cyber Monday Web Performance
Try not to leave performance tests for just a week before going into production or when your site has already suffered problems. Solving this kind of issues takes time – a lot of time! Don’t plan your tests merely as a check, but plan them out with enough time, taking into consideration that you will have to fix any problems you may find.
Decide whether you should increase your infrastructure temporarily to prepare for times like these when the expected user load is much larger than it typically is throughout the year. The cloud can make this easier to do, especially for smaller businesses. It’s crucial to be ready and be sure that your scaling configuration is optimal, considering performance and costs.
It is advisable to test performance on the infrastructure of your choice or the one you have in production, whichever is the best moment to run them. Just remember that these tests often try to find the breaking point of the system and we do not want to find them at the same moment when a user is in the middle of a transaction. We typically run these tests at late hours and take advantage of having a team of performance engineers in a different time zone. A four- or five-hour difference (like that of our testers in Uruguay and our clients in California) is usually more than enough.
Since Black Friday begins in a few weeks, you probably do not have time to test all the functionalities of your system, so you’ll have to choose the functionality or functionalities that you think will be most visited, like links to articles or the product checkout. If you do not know which of your pages are most visited, you can use Google Analytics statistics or access logs.
Set up monitors and alerts using a sophisticated tool like New Relic or a simpler, open-source one like Nagios to stay updated on the health of your infrastructure.
Monitor all components of your infrastructure, any of which may become a bottleneck as well as the database. Top SQL transactions should also be under control.
Try to run loads that are realistic for your business. Testing too small of a load will not leave you well prepared for the actual Black Friday load while executing an extremely ambitious scenario might leave you needlessly fretting over sizing your infrastructure and avoiding a crash when in fact, it is not even likely that you need to be that prepared.
There are many tools and methods for automation, execution, and analysis. Thus, we could go into detail for many hours and pages talking about them all. We’ll just focus on the set of tools that with which us performance testers at Abstracta have seen great results.
For the automation stage, we recommend JMeter, a very widely known open-source tool. If you don’t already know how to use it, I highly recommend our certification (I may be biased as I am one of the instructors, but really, check it out!). JMeter is easy to learn, easy to use, multiplatform and most importantly, free.
With JMeter, we can run hundreds of users from a single PC, but if you’re looking to scale to thousands of users, we recommend using BlazeMeter. BlazeMeter is 100% compatible with JMeter and saves you from having to deal with the scalability problems that JMeter could have while simplifying all the setup, configuration, management, and reporting.
Finally, for performance monitoring, we recommend New Relic, a tool with very little configuration that provides performance indicators throughout your system in an understandable and centralized manner. What’s great is that it is easily integratable with BlazeMeter. In each execution, not only does it know the test data (response time, error rate, percentiles, etc.), but it provides infrastructure performance indicators that you can easily share with the rest of your company in the same report if you wish. Best of all, it only takes a single click.
After reading this post and implementing these tips, there will be no more excuses for your site not to shine on Black Friday. When the day comes, you will not have to sit around nervously watching your server and waiting to be there in case you have to restart it, but you can even enjoy Black Friday yourself and go out and buy what you want!