As a web application developer, you are constantly working on your site, tweaking it, and rolling out new features. Any time you make changes to the existing site, you run the risk of negatively impacting the performance site.
How you test those features and your overall site will greatly affect your ability to roll out changes without any issues unexpectedly popping up. After all, improvements should only improve the site, not cause problems. It comes down to these steps:
- Establish a baseline
- Run multi-variate web performance tests under normal load
- Use load testing tools in conjunction with your web performance testing tool
- Deploy your new code
- Test after deployment
- Load test in conjunction with web performance testing tool
- Run web performance testing tool under normal load
- Compare before and after to ensure there are only improvements
Read on to learn more about how to deploy code with a strong web performance testing process.
Establish a Baseline
The first step for any project is to establish a baseline. Before rolling out any changes to your site, it’s important to understand the performance of your site before you implement those changes. If you skip this step, it will be very difficult to establish if your changes have actually hurt the site’s performance. If your users are the ones telling you about the site’s problems, you may not have a chance to fix it before they leave forever.
How To Create A Baseline
A baseline test should look at a site from all the typical viewpoints: it should test the site from different browsers, from different locations, and with different connection speeds. There are many tools you could use for this, but we will use WebsiteTest.com for this post.
Within WebsiteTest, run the multi-browser test. Enter in your URL and click the Multi-browser webpage radiobutton. Now select the Multi-browser webpage Options tab and choose the browsers you want to use (I’ll often pick Chrome-latest, Firefox 16, IE8, and IE9). Pick a location and connection type that’s most appropriate. Don’t worry about not being able to pick multiple locations, we will do that next.
Now click the Scheduling tab. Its important to create a test that is statistically relevant. A single test could result in abnormally high or low numbers. I often choose 5 or 10 tests to ensure meaningful data; choosing many more simply takes a long time to complete, thereby delaying the process.
Click the big green Test button when you are ready to test. Save the URL! We will continually update the page and if you close it, you can come back any time. (If you have an account with Yottaa, we will automatically save the URLs for you and provide an easy to use list of all your tests.)
Repeat For The Other Test Types
Enter the same URL but this time choose the Multi-location test (with other testing tools, you may be required to run several tests manually). Choose the browser most of your visitors use and choose all of the relevant locations. Again, enter a number large enough to get some useful results, 5 or 10 should be good.
If you have a lot of users visiting from slower connections, also create a Multi-connectivity test.
After these tests have completed, you will have three sets of results. Since you have saved the URLs, you can come back to them at any time. If you like to do any analysis in Excel, it might also be a good idea to download the CSV of the results for later.
Establish the Baseline Under Load
You can take the baseline test a bit further if a load testing tool such as LoadStorm is part of your existing testing strategy (it should be!). Load testing tools are great at what they do, but they don’t give you a complete picture of your site.
While they will show you response time, error rate, requests per second, throughput and other important stats, they are usually collecting that info from a basic http request and often don’t include all of the assets of the page.
The solution is to run a web site performance testing tool in conjunction with load testing tools to ensure the entire site is performing well under load.
How To Create The Baseline Under Load
Setting up the web performance tests in this scenario is similar to how it was described above, with one difference: Instead of collecting 5 or 10 samples for multiple locations, perform the test in a single location at a regular interval.
Your load testing tool will probably be configured to run for 30 or 60 minutes, so set your web performance testing tool to run every 5 minutes for the same length of time. To do that, go to the Scheduling tab and choose the second radio button. Select how often you want to run the test and for how long. Everything else should be the same. And remember to save the URL for later reference.
The result of this test will show you how your overall site is performing under significant load.
Now that you have your baseline, you are ready to deploy your new code.
Measure and Monitor During Deployment
You should also have a monitor setup with alerts to watch your site while you deploy. Some sites will announce ahead of time that the site will be down for maintenance for 30-60 minutes. Other sites will deploy while the site is live. Having a monitor setup with alerts in case of downtime ensures that you keep to your planned downtime and get alerted in case of any unexpected outages.
Test After Deployment
After deploying, you’ll want to repeat what you did above with the new version of the site: test under load with your web performance testing tool and a load testing tool, then test under normal load with the performance testing tool alone.
Assess the Performance Changes
After all four sets of tests are done, compare the results. Review the Time to Last Byte to ensure that the backend server is performing as well as or better than it was before. Look at the Time To Interact to see if the end users will have a similar or better experience.
If everything looks comparable to, or has improved on, baseline test results, you did a good job. Congratulations!
If performance on your site has gotten worse since your changes, consider tinkering with the code or applying front-end optimization techniques to get your site back to baseline. Your visitors will thank you.
Have you incorporated a web performance testing tool into your web updates? How is it going for you? Share your experiences in the comments below.
VP of Products | I am a hands-on, results-focused, resourceful and creative product leader with a track record for successful solutions from initial concept throughout the product lifecycle. Filling various management and operational roles at each company I've worked, I enjoy and thrive under pressure. Nirvana is a dynamic, fast-paced organization where creativity, quality, collaboration and customer focus are key to delivering truly impactful products. Specialties: Product management, lifecycle management, networking and communication, database administration, performance tuning, production deployment and support, some system administration background. Experienced and engaging public speaker and evangelist.