September 2022 WebPageTest Roundup

It’s been a while, but we’re bringing back our monthly product round-up to make it easier for folks to stay up to date with all the new features and improvements around WebPageTest.

anchorOverview

anchorFree Web Performance Course!

A banner highlighting the "Lightning-Fast Web Performance" online course, noting that is free.

WebPageTest has benefitted so much from the performance community over the years, and it’s very important to us that we give back to the community by finding ways to support, educate and empower folks in their performance journey.

To that goal, we’ve launched “Lighting Fast Websites”—a perfect course for introducing you to web performance, taught by Scott Jehl. Scott had published the course on his own before joining WebPageTest, but now we’ve updated it and made it available for free to anyone with a WebPageTest account.

If you’ve already got a WebPageTest account, you can access the course right now and get started. If you don’t have an account, you can register today (did we mention it was free?) and get immediate access to the course, as well as all the other benefits of a WebPageTest account.

And stay tuned. Investing in the community by providing educational resources is important to us, and this is just the start.

anchorRemove TTFB Variance from Experiment Comparisons

As people have been running more and more experiments, one thing we’ve heard from folks is that sometimes server variability (something almost always unrelated to the experiment itself) makes it hard for folks to see the direct impact of an experiment.

To help with that, if you run an experiment and there is more than 100ms of difference between the median control and median experiment runs, WebPageTest now surfaces a note pointing out that the difference in Time to First Byte may be skewing the results of the experiment, with a quick link to view the results with the Time To First Byte removed from any relevant primary metrics.

Variability still matters and often hints at other performance challenges, so we also provide a quick link to the plot full results page so you can dig deeper into the variability between runs.

In the example below, you can see how our original experiment looked like it made things slower, but that’s because there was a 1.14s difference in Time to First Byte.

A screenshot showing an experiment being slower across all metrics, but a note points out that the TTFB difference was significant and provides a link to ignore TTFB.

When you remove TTFB from the equation, you can see the experiment does have a positive impact on rendering metrics.

A screenshot showing the same experiment referenced earlier, but with the new results, with an improvement in all major rendering metrics.

Accurate, reliable experiment data is very important to us, and this improvement should make it easier to zero in on meaningful changes in performance data.

anchorMore events supported in the Chrome Recorder extension

Last month’s release of the WebPageTest Chrome Recorder extension instantly made writing custom scripts and testing user journey’s in WebPageTest much easier, and we’ve made it even better. This month we mapped the following Chrome Recorder commands to WebPageTest script commands to make the export even more useful:

  • waitForElement
  • waitForExpression
  • doubleClick
  • scroll

In addition, if you use setViewport in the Recorder panel, we’ll now use that to set the viewport of your test in WebPageTest.

We’ve been getting a lot of positive feedback on how useful the extension has been. If you’re using it, we’d love to know what else could make it even better.

anchorPass the Current Test ID through in Custom Scripts

WebPageTest supports several handy variable substitutions for custom scripts that let you pass through, for example, the current test URL (%URL%) or the host of the current test URL (%HOST%).

Based on user feedback, we also provide variable substitution for the test ID of the currently running test. If you include %TEST_ID% in your custom script, as soon as we create the unique test ID for your test, we’ll replace any %TEST_ID% references with the ID instead.

Let’s say that you wanted to analyze your own internal logs to see what’s happening deep within your stack for a particular WebPageTest run. You could use the %TEST_ID% variable to ensure that the unique ID is present in, say, a query parameter.

navigate %URL%?%TEST_ID%

That test ID then gets passed through to the test.

Truncated screenshot of a WebPageTest waterfall, showing a request to ESPN.com, with the current test ID appended to the end of the URL as a query parameter.

You can now look through your logs, or any APM setup you have, to find that distinct ID and see what’s happening in your application stack during the test run.

W e're excited about the power this has to unlock even deeper analysis when used in conjunction with a rock-solid APM solution.

You can read about all of the variable substitutions we support in our docs.

anchorBlacklist, custom scripts, custom metrics and more support file input

Each textarea input in our test form now supports file input, making it easier for folks to save your favorite scripts and more as files and use them directly, rather than having to retype everything.

A screenshot of the Custom headers and Inject Script fields, showing a new file input link as well as syntax highlighting.

Where it makes sense, we’ve also started adding some syntax coloring to the fields to make it easier to read through what you’ve input and spot potential issues.

We’ve got more in store for making it easier for folks to reuse favorite scripts and run advanced tests with confidence, so stay tuned!

anchorAbility to report the time until the title is displayed for Chrome tests

For Chromium-based tests, we will now parse out the titleTime from the traces: the time it takes for the page title to be displayed during the page load process.

The titleTime is currently available in the JSON data for each test run, so it’s best consumed using the WebPageTest API today.

A screenshot of Firefox's JSON view, showing the titleTime of 862ms, tucked under the data, median, firstView objects.

Tim Kadlec is the Director of Engineering for WebPageTest, a web performance consultant, and trainer focused on building a web everyone can use. He is the author of High Performance Images (O'Reilly, 2016) and Implementing Responsive Design: Building sites for an anywhere, everywhere web (New Riders, 2012). He writes about all things web at timkadlec.com.

@tkadlec
Banner ad that says Prototype perf optimizations in minutes, not months.