Failing to load tests leaves you blind to site slowness and issues when they matter most, when users are using it. -- Connor Cahill
Tweet

Testing your website is an important part of optimizing WordPress and verifying that your site can handle spikes in traffic.

There are a few types of tests on your site that can tell you different insights about your site's performance.

Most people we talk to are pretty consistent with performance testing their site, using a tool such as GTMetrix or Google Lighthouse. Performance testing is a great way to diagnose performance issues, test speed or look for possible optimizations. While it does all that great it doesn’t tell you everything. It only tests the performance of one simulated user and while this is great there are many times in the wild when you are going to have multiple users on your site at the same time. So how do we know how our site will hold up in those situations?

This is where load testing comes in. Website Load Testing is when you send many simulated users to a site over a certain duration of time. This can be great for seeing how your site holds up when an unexpected surge of traffic hits. Load testing also tests the hosting infrastructure more than a normal performance test would, as it requires a lot more resources to handle 100 users/second than it does 1 user.

Why is Website Load Testing important?

By load testing your site you gain a much better understanding of how it will perform when traffic increases. This will help you be better prepared, understanding what your site can handle without throwing errors or crashing. All this can also be used to identify whether your site is being hosted with a sufficient amount of resources and if your site is prepared for the traffic it demands. Overall failing to load tests leaves you blind to site slowness and issues when they matter most when users are using it.

Website Load Testing Tools

There are many great tools out there that help you run load tests, many with different functionality and use cases. Below we will name a few solutions we have enjoyed using in the past.

RoboSwarm.dev

Screenshot of RoboSwarm's request and failure graph

Website: roboswarm.dev
Price: From USD $29 / month. Free plan available

RoboSwarm is a great load testing tool offering free/premium plans. We really like this tool at Convesio because it allows you to load test WooCommerce sites as well. It gives you the functionality to see how many WooCommerce checkouts per second your site can handle. This can be a really useful tool for big WooCommerce sites expecting heavy traffic during sales/holidays.

Loader.io

Screenshot from Loader.io showing key trends in a test

Website: loader.io
Price: From USD $99 / month. Free plan available

Loader.io is a very simple solution that lets you spin up a load test in minutes. The dashboard is very intuitive and will let you draw quick conclusions based on your testing results. Unlike RoboSwarm, Loader.io does not have any WooCommerce testing capabilities. That being said they have a generous free plan and allow you to have a load test setup in minutes.

Locust.io

Screenshot showing key statistic from a website loading test using Locust.io

Website: locust.io
Price: Free

Locust is a great open-source load testing tool that lets you write simple python scripts to simulate users on a webpage. This is another good option for someone with some programming experience looking for an open-source load testing solution.

Supervisor.com

Screenshot of Supervisor's test web loading test result page

Website: supervisor.com
Price: From USD $39.50 / month. Free trial available

Supervisor.com’s approach is different. Robots use real web browsers to simulate users, measuring the sequence of requests as they would happen normally as a person interacts with a website. For example, the path through a conversion funnel is never the same:  different elements are clicked and timings between them are randomized.

ABOUT THE AUTHOR
Connor Cahill
My story with WordPress goes way back to my first job managing websites for a digital marketing agency in high school. I went from web dev building WordPress websites to software engineer building web apps and developing software products. Currently, I am Product Lead at Convesio where my main focus is making sure we provide a top tier hosting experience to WordPress Users. Outside of work I enjoy the remote work life and have spent time living in Asia, Europe and currently residing in LA. Learn more about me at connorcahill.com.
Free Resource

Sign up for our newsletter

Receive our monthly round up of what's new with WordPress.

Spotlight

Want faster, scalable & more reliable WordPress sites?

Convesio is not just another hosting provider. Our infrastructure was designed from the ground up for hosting high performance, scalable WordPress sites.

30 DAY FREE TRIAL

How do we load test WordPress and WooCommerce?

Most of the load tests we run are on WooCommerce sites, so for this process, we will walk through load testing a site with RoboSwarm.

Once you have an account set up on RoboSwarm, there will be few setup tasks before we can run a load test.

1. Verifying site ownership

The first thing you will need to do is, go to the “Verify Site Ownership” tab in the top menu. This takes you to the page where you will enter the URL for a site you want to test, and it will verify that you own the site.

The page will prompt you to download the RoboSwarm plugin, you will need to do that and install it on your WordPress site. Then click the “Verify a Site” button in the top right corner, enter the URL, and boom, your site is almost ready to go.

All that’s left is to grab the verification code from the new row created on the Verify Site Ownership page in RoboSwarm. Take this code and paste it in the RoboSwarm Site Verification section at the bottom of “Settings>General” in the wp-admin for your site.

Click the “Verify” button next to your URL in RoboSwarm and you should now see that your site is “Verified”.

Screenshot showing how to verify ownership of a website in RoboSwarm

2. Setting up test template

Now you will need to set up a test template for the load tests you want to run. For this instance, we will walk through setting up a WooCommerce Template. To set this up, go to the “WooCommerce Templates” in the top menu then click the “Create WooCommerce Template” button.

Now a form will popup with inputs to fill out relevant information about the test you want to run. Here you will also input the Shop URL, Cart URL, Checkout URL, and URLs to 2 products. Notice that you only put the path and not the whole URL (path: /shop - not: https://myshop.com/shop). This is how RoboSwarm will actually mock a shopper on your site and go through to purchase an item.

Screenshot showing setting up the website load test in RoboSwarm

3. Setting up WooCommerce for testing

There are some things you will need to do in the wp-admin before you get to testing.

The first thing we recommend is to change your payment method to Cash on delivery. This will make it, so the testing bots don’t need to enter a credit card number to go through the checkout flow. Another thing that needs to be done is to disable any automated shipping. We don’t want the product actually being shipped to a fake customer.

Screenshot showing settings needed for testing WooCommerce in Roboswarm

4. Setting up the website load test

Now back from the RoboSwarm dashboard we want to hop over to the “Load Tests” tab and hit the “Create Load Test” button.

This is where you will select the number of simulated users and the duration of the test. You should go through selecting the verified site and template you created.

Once this is filled out, you can start the load test.

Screenshot showing setting up WooCommerce for testing

5. Starting and analyzing the website load test

It will take a minute or two for the infrastructure for the load test to spin up. Once done you can “View Details” on the test and watch as the data comes in.

We also recommend opening up the WooCommerce Orders Tab on your WordPress site to make sure orders are properly being processed.

Now just sit back and watch, as all the data starts streaming in.

What we are looking at during the load test?

During the load test, you will see a dashboard where the data is displayed.

Screenshot showing requests and failures per second

It can look overwhelming at first, but most of the charts are very helpful in gaining insights into how your site is performing under the load. Below we will outline a few of those metrics and how they are helpful.

Requests/Second

During the test, as more simulated users are sent to the site at the same time, you should see this number start to increase. This shows how many requests your site is handling per second. This is not the same as how many users per second. Every simulated user is making multiple requests to the server at every visit.

Looking at the requests/second metric can help you figure out how many requests your site can handle or if there are potential request limiting issues.

Average Response Times

This is a very important metric to look at because it can tell you how much your site slows down as the requests/traffic scale up. The average response time tracks the TTFB of the requests and gives the average. Over the duration of the test, if you see this number really start to spike, then you know that your site is not handling load very well. This could turn into lost sales or conversions during flash sales or events. It is common to see this number go a little but up during the test (as more traffic is sent to your site), but we should not see a large increase in the response time.

Errors

This one is pretty obvious but can be very important as we start to get more traffic. It’s great for testing for errors that only appear when the site is under a lot of loads. Keep an eye on the errors and see at what points the errors start appearing. Look at how many requests/seconds it took to start showing the errors.

Some errors hide until the site is under a lot of loads so testing for these cases is crucial.

WooCommerce: checkout throughput

If you are load testing a WooCommerce site this is a great metric to pay attention to. The Checkout Throughput metric shows you how many WooCommerce orders are processed per second, or if orders are failing.

This is a great metric for busy WooCommerce stores to look at. Flash sales and holidays may have your site spiking in traffic and it isn’t uncommon for multiple people to be checking out at the same time. This is very resource-intensive on your site so testing to make sure it can handle the relevant amount of customers buying at the same time can be the difference between conversions or losing sales.

Screenshot showing WooCommerce throughput in RoboSwarm

How many concurrent users can your website handle?

Load testing is a ‘must-do process if you’re running a WordPress website for your business, particularly a WooCommerce store.

We often talk about page load speed and Core Web Vitals, but one measure that is rarely mentioned is concurrency. How many visitors can a website sustain at the same time before page speed drops to an unacceptable level?

Should scalability be a KPI, then? Absolutely. Small businesses and enterprises need to know at what point their website stops being fit for the purpose. This is true for slow WordPress admin too.

We load test our platform regularly, internally, and for our clients too. Concurrency is an important KPI for us as Convesio was built from the ground up to scale. For example, our Performance plan can handle up to 5 WooCommerce transactions a second, which is unheard of at that price point. Learn more about this on our WooCommerce hosting page.

Get in touch if you’re running WooCommerce and need help with load testing. One of our engineers will be more than happy to perform the above test to determine its breakpoint and offer advice on what you can do to avoid it.

Comments

Be the first one to comment.
Have your say

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright 2021 © Convesio