After a humble beginning in 2003 as a blogging platform, WordPress has grown into one of the largest content management systems available. According to statistics provided by HubSpot, around two out of every five websites on the internet use WordPress. However, while WordPress users are provided with a vast number of themes and plugins to make their site unique and personal to them, periodic testing of the website is an important part of ensuring that your customers do not encounter bugs or glitches when visiting your site — or worse — when attempting to purchase products from your site. This is where automated testing for your WordPress site comes in.
Automated testing provides many benefits for both you and your customers. It can save you and your team an extraordinary amount of time, as no one will need to sit at a desk and manually test each page of the site. Additionally, you can use the same test repeatedly through required alterations. In fact, you have the ability to test how the site performs across multiple browsers and devices.
When you’ve made changes to the site or have added features such as new products or carts, automated testing is important. Another valuable use of testing is in determining how your site would perform if thousands of users were to attempt to access it at the same time.
You can run automated tests can at any time of the day or night. Having reliable tests not only helps you to catch bugs that can potentially impact the integrity of your site but can also increase your profits as customers are more likely to return to a site that is working properly and refer it to their friends.
Choosing the Right Testing Framework
The term “framework” refers to a set of tools or processes that support your testing and development activities. The purpose of the automated test framework is to provide the environment in which the automated test scripts can be executed, while also helping the user to create and execute these scripts and receive reporting of potential issues.
A framework should provide a well-defined code structure and should also maintain reusable modules. It should have the ability to analyze test coverage and requirement coverage.
PHPUnit is the framework that WordPress itself selected to test its code, and is widely used on WordPress websites. This allows programmers to efficiently analyze code coverage. It can also generate code coverage reports in HTML as well as XML log files. As a programmer-oriented tool, PHPUnit shines in the area of unit and integration testing between components. It is an open-source testing tool and because of its popularity, new users can obtain a massive amount of information and support when using it.
The advantages of using PHPUnit include a higher probability of creating error-free code, as well as the opportunity to automate testing to save time and to easily understand inherited code. Additionally, this framework allows for PHP testing on all platforms and developers can also make use of the tool.
When using PHPUnit, developers need to add cover annotations when testing multiple functions. If the developer changes the name of the method or function without updating their cover annotations, testing will be skipped for that method or function.
As a behavior-driven development (BDD) framework for PHP, Behat allows developers to use natural language when writing tests. This means others on the work team can easily read these test cases. This allows the developer to have a clear idea of what their customer or business leadership wants in the website and a stronger collaboration among the team. A variety of testing types are supported through this framework, including acceptance, functional, and integration testing.
Behat has a strong support community and easy-to-read documentation to help users set up their framework. Behat scripts are not dependent on the type of operating system that is used to run them, and the behavior-driven feature of this framework helps developers and their clients to create a bridge between what is expected from the website and how the website actually runs.
The main disadvantage of using Behat as the framework for the automated testing of your WordPress site is that implementing this framework can take significant time as developers often have to rethink their entire development process. Additionally, it does not support API testing, and there is no support for mobile browsers.
Codeception has a number of features that allow programmers and developers to also test a site’s function and acceptance by simply adding suites. It provides a simple, easy-to-understand framework for writing test cases and highlights syntax errors in order for users to quickly identify and correct mistakes.
The advantage of Codeception is that it supports multiple frameworks without the need to add extensions or change codes. Testers have the ability to quickly retrieve information from the database and clean up the data in the test module in order to isolate the tests. The results provided from the testing feature information that anyone can readily understand, even those who do not have a technical background.
A disadvantage of using Codeception for the automated testing of your WordPress site is that the framework emulates a browser. This creates a risk of increased false-positive results. While you can use it for unit testing, code changes can create problems.
Creating Test Suites
Creating test suites for large WordPress websites essentially involves seven steps.
- Set up a clone or staging site for your initial test. This is a site identical to your live page in which you can test changes you plan to implement before adding them to the live site. There are a number of plugins that you can use to quickly create your staging site. In fact, our preferred WordPress hosting solution, Pantheon, offers multiple environments for just this purpose.
- Set your live site aside and only work within the clone website, experimenting with the changes you plan to implement.
- Choose the testing tool you want to use for your tests, such as the ones listed above.
- Once you have completed your testing, you are ready to clone the changes to your primary website.
- Repeat your testing on your primary website to ensure that the changes you’ve implemented are performing as intended.
- Compare the test results from your live website and your cloned website. This way, you can ensure that the results are a perfect match.
- Update and publish the changes you’ve made to your WordPress site.
Running Tests Automatically
Continuous integration (CI) is a software development practice that merges all of the developers’ working copies to a shared mainline on a frequent basis (often several times a day). This is important for quick identification of errors that occur during the development process. By regularly integrating, there are fewer areas that need to be checked for errors and less time involved in debugging.
CI tools allow the developer to check the code and send changes to the repository. The repository then sends a request to the CI system, and the CI server runs the tests requested. The CI server saves the information from the testing and notifies the work team if the tests reveal issues. The developer team is then able to address those issues.
CI is generally performed through the use of tools such as:
- CircleCI. A free cloud-based system that is quick and easy to use.
- TravisCI. This features many similarities to CircleCI with added features such as the ability to run tests on multiple browsers simultaneously and the support of more programming languages.
- Jenkins. This is a self-contained Java-based program that features over 300 plugins to implement and integrate continuous delivery pipelines.
In fact, having a CI tool is essential for working with an outsourced development team. It ensures that all code changes are regularly tested and improves collaboration among team members.
Analyzing Test Results
A test is only as useful as the results it produces and the ability of the work team to decipher those results. After completing automated testing of your WordPress site, there are several things to look for in your report, such as:
- Total Blocking Time (TBT). This measures how long it takes a specific page to become usable. This period of time should be under 50 ms.
- First Input Delay (FID). This measures how long it takes for the page to respond when a user attempts to interact with it. This period of time should be under 100 ms.
- Largest Contentful Paint (LCP). This shows you how long it takes for the largest visible element on your site to appear. This period of time should be no more than 2.5 seconds.
- Cumulative Layout Shift (CLS). This measures how often visitors to your site will experience unexpected shifts in the layout. This number should be less than .01.
CI tools also will inform your team of the amount of failed tests, “flaky tests” (intermittent pass and fail results), the slowest tests, and the tests that have failed most often over a period of time, such as 14 days.
If You Have a Large WordPress Website, Now is a Great Time to Consider Automated Testing
Having a website that runs properly is important to attracting and retaining customers. In a world where there are many options online that customers can choose from, having a website that responds poorly to a customer’s interaction is commonly taken by customers as an indicator that the company’s customer service will respond poorly as well.
There is no time like the present to start with automated testing. For more information on automated testing or to obtain solutions and expert support for your WordPress site, contact us today.