Five years since she last performed live, tickets for Taylor Swift’s new “The Eras Tour” were to become available for fans to purchase on the Ticketmaster website. But for many fans, the user experience left much to be desired.
The Ticketmaster website crashed on Nov. 15 during ticket presales due to high traffic spikes the ticket-selling website wasn’t prepared for. The unfortunate event sparked a huge backlash, from fans all the way to the parliament representatives, all criticizing Ticketmaster’s handling of the situation.
Let us take a closer look at why Ticketmaster crashed and explore some best practices for other enterprises that do not want to fall prey to the same scenario.
Table of Contents:
A Load Testing Flop: Why Ticketmaster’s Site Crashed
Ticketmaster organized two ticket-selling events:
The first, a presales event, on Tuesday, Nov. 15. For this date, only a selected number of fans, 1.5 million, were given access codes to purchase tickets.
The second sale was supposed to take place on Friday, Nov. 18, for any tickets left from the prior presales event. However, the second public sale was canceled by Ticketmaster, which they explained was due to high demand during the presales event.
Limiting the number of fans who received access codes was supposed to help Ticketmaster monitor and control their system’s traffic. However, reality did not adhere to their plans. During the presales event, Ticketmaster reported 3.5 billion system requests, four times their previous peak. Two million tickets were sold.
This peak resulted in the website crashing, which created a horrible user experience for the fans: hours-long waiting times to purchase tickets, being kicked out of the waiting list, losing tickets that were already in their cart, and more. The fact that many fans had rearranged their schedules to purchase these tickets on Nov. 15 only added insult to injury.
Now, Ticketmaster and Taylor Swift herself is subject to harsh criticism about the way they handled ticket selling, as well as how ticket selling, in general, exploits demand for profit rather than prioritizing the user experience.
6 Reasons Why Load Testing is Important
While it is obvious that a better load-testing strategy was needed in the case of Ticketmaster, it is also important to incorporate load testing into your release process during every code commit.
Here are six reasons why load testing is important to do on a regular basis:
Load Testing Simulates Real-User Scenarios
When testing your website, app, or API endpoint under a load, you are simulating how it will perform when hundreds, thousands, or millions of users visit it in real life. Don’t neglect the real people who will use your system or product.
Understand, analyze, and fix errors, bugs, and bottlenecks before they happen. Your system may depend on the limits of its resources, and perform completely differently for one user (functional testing) compared to many (load testing), leading to our next point.
Your System Performs Differently Under a Load
KPIs like response time, error rate, memory leakage, and CPU consumption might be top-notch when running functional tests, but when scaling to thousands of users from all over the globe, they could suddenly plummet and require-dev attention. Load test to learn where and when your system breaks, fix the problems, and avoid upset users and revenue loss.
Incorporate different types of load when you’re load testing. For example, test for sudden spikes, test maintaining a super-heavy load over time and test gradually increasing the load to a forecasted real-life volume. Such tests will help you learn how your system reacts to different traffic events.
Your Code Can Change Your Product in Unexpected Ways
Let us assume you are a responsible developer who tested your system two months ago. The results showed that most of the API endpoints and services worked. Some small bottlenecks were detected, but you fixed them, ran the test again, and saw that everything was performing well. You know you have made some code changes since then; in fact, you have likely released new versions.
These modifications may have affected your system in unexpected ways, perhaps due to dependencies, heisenbugs, or other reasons not yet readily apparent. Your system’s ability to handle a heavier load may have likewise been affected. To ensure you’re not surprised by a crash or slow responsiveness, run an automated load test as part of your continuous integration cycle every time you commit.
You Cannot Be Fully Agile Without It
Faster releases, lighter versions, and more automation create a better product and make for a better working environment for developers and engineers. Load testing with every commit is an inherent part of any continuous integration process, alongside issue management, code analysis, and other lifecycle activities.
When you are setting up your automated continuous integration cycle with open-source tools (such as Jenkins), add load testing to your workflow. Include open-source load testing tools (such as Apache JMeter™), and if you need to test in the cloud to simulate users from across the globe, run your load tests with BlazeMeter.
Users are Impatient and Unforgiving
The Taylor Swift-Ticketmaster is living proof that a poor user experience due to lack of load testing can have devastating consequences. Unsatisfied customers have a good memory, and there is a limit to the number of times they will try to revisit a slow or unreliable website.
Instead of desperately trying to get your website up while under pressure, dealing with frantic PR managers, and investing money in re-branding, load test on time.
Load Testing Saves You Money
Teaching developers to set up and automate load tests will take up some resources, but it will cost more to constantly fix website crashes and restore your brand reputation after scores of unhappy customers are fed up and move on to your competitors. For example, one minute of downtime on Black Friday costs $4,700 on average.
Now consider the reverse: If your competitor’s site crashes while yours remains stable (because you load-tested beforehand), you can seize the opportunity and win their users over, increasing your revenues.
4 Best Practices to Avoid Peak Event Website Crashes
In addition to running continuous load tests as part of the ongoing development process, this fiasco with Ticketmaster highlights the importance of running dedicated tests that are tailored for major events. These pre-event tests should test for higher traffic spikes, longer time on the website, and the specific scenarios the event will offer.
Here are four other best practices that can help prevent such mishaps, which affect sales, brand reputation, and customers:
Run Stress Tests and Soak Tests to the Limit
Predicting traffic spikes is a risky affair because it is impossible to know if a certain chain of events will lead to a sudden and unexpected significant number of visitors to our website. Therefore, the best way to prepare is not only to load test for anticipated traffic but also to stress test the system to its limits.
By running stress tests and soak tests, you will gain visibility into their stack’s capacity limit and bottlenecks. You will be able to understand which memory, CPU, bandwidth, or other issues start to fail when the load is too high. Then, it is recommended to create playbooks for fixing them.
That way, if that limit is actually hit, engineering teams can quickly amend the issue and prevent a significant impact on users and sales.
Monitor the User Experience
Once backend performance is covered, it’s time to gain visibility into what the user will be experiencing under heavy loads. After all, the user experience is one of the most significant factors when determining the success of your events. But there is no dedicated tool for running a UI and a load test together.
The technological solution for this type of testing is to run a Selenium test with open-source Taurus and line up the two results in a single report. Check out BlazeMeter’s documentation for a step-by-step overview of how to set up these tests.
Create Meaningful Tests With Test Data
To ensure your tests are accurate and simulate real-world scenarios, use synthetic test data that can replace PII information like credit card numbers or addresses, which are part of the ticket purchasing process. This ensures the tests simulate real scenarios and makes them relevant for catching bottlenecks that could happen in real-time.
Set Up Back Ups
Users usually forgive mistakes, but they are less forgiving when these mistakes are not fixed. By setting up backup servers, databases, and clusters, you can ensure connectivity continuity even if the website crashes. These backups need to be prepared in advance with clear action plans as part of the ongoing preparation for major events.
No one is looking to disappoint fans and buyers. With proper load testing, such disappointments can be prevented. Eliminate poor experiences by continuously testing your website and application and running dedicated tests before major events.