Website Monitoring Done Differently
René Schwietzke, Xceptance
A short explanation
Website monitoring is the process of testing and verifying that end-users can interact with a website or web application as expected. Website monitoring is often used by businesses to ensure website uptime, performance, and functionality behaves as expected.
Monitoring can also be Business Transaction Monitoring. ...a tool for tracking the flow of transactions across IT infrastructure, in addition to detection, alerting, and correction of unexpected changes in business or technical conditions...
https://en.wikipedia.org/wiki/Website_monitoring
https://en.wikipedia.org/wiki/Business_transaction_management
Monitoring Goals
There might be more...
Simplest form of monitoring
Simple but more realistic
Execute business flows
Real User Monitoring
Synthetic Monitoring and RUM
Use real test cases with full test stack
That's the Xceptance Monitoring approach
Most Important Events During a Page's Life Cycle
https://www.w3.org/TR/navigation-timing/
When do we get things
A series of timestamps and events, measurements by Performance Timing API
https://www.w3.org/TR/html5/syntax.html#the-end
Users don't care about technical details
first-paint
, first-contentful-paint
First Paint | First Contentful Paint |
---|---|
![]() |
![]() |
First Meaningful Paint | Visual Complete |
![]() |
![]() |
No relation between DOM numbers and visual impression!
Ideas, Concepts, Features
The Features and Ideas behind Xceptance Monitoring (XM)
What components you will see and use
XTC will host more in the future, XM is the start
The basic building blocks
The Modules of XM
Some project terms first
The little details you can set
The way XM gets its code
The core of monitoring
The core of monitoring
Who can see and manage
How long does data live
Let's go over the Project Basics
What do we want to do?
The minimal code
public class TMinimalHomepage extends AbstractWebDriverScriptTestCase
{
@Test
public void minimalHomepage() throws Throwable
{
// ok, let's open the homepage, this is without tracking
Action.run("Homepage", () ->
{
// hardcoded homepage
Commands.open("https://www.foobar.com/en-us/");
// make sure the page came up just fine and is fully loaded with
// its async JS, if the privacy stuff is missing,
// we will already fail here
Commands.waitForVisible("css=#js-data-privacy-save-button");
// just make sure we have not been redirected
Assert.assertTrue("Url redirect happened",
Commands.getWebDriver().getCurrentUrl().endsWith("/en-us/"));
});
}
}
Demo of Setup
Use activity logging and storing
Verify Additional Details, such as Screenshots and HAR data
How to Get Notified
Notification Basics
When do Notifications fire?
What a Notification tells you
Examples of more general problems
Messages will be collected and send as one after the first one.
Long Term Observations
A General Overview
Actions are wrappers
// open homepage
Action.run("Homepage", () ->
{
Commands.open("https://www.foobar.com");
Commands.waitForVisible("css=#js-data-privacy-save-button");
Assert.assertTrue("Redirect missing",
Commands.getWebDriver().getCurrentUrl().endsWith("/"));
});
What detailed browser timings are collected
P,Homepage [FirstPaint],1563186744174,3705,false
P,Homepage [FirstContentfulPaint],1563186744174,3705,false
P,Homepage [LoadEventStart],1563186744174,9548,false
P,Homepage [DomInteractive],1563186744174,6173,false
P,Homepage [DomComplete],1563186744174,9548,false
P,Homepage [DomContentLoadedEventStart],1563186744174,6258,false
P,Homepage [DomContentLoadedEventEnd],1563186744174,6258,false
P,Homepage [DomLoading],1563186744174,1113,false
P,Homepage [LoadEventEnd],1563186744174,9560,false
When there is no page load there is no entry here
Metrics can be filtered and grouped
View by time and narrow down
Daily 3rd party influence as well as a major performance problem
Daily 3rd party influence as well as a major performance problem by location
Provider maintenance effect
Caches and monitoring traffic
Caches and monitoring traffic
What features might be next
This is not a guaranteed roadmap
Feel free to ask