38
Measuring User Experience Alois Reitbauer

Measuring User Experience

Embed Size (px)

Citation preview

Page 1: Measuring User Experience

Measuring User ExperienceAlois Reitbauer

Page 2: Measuring User Experience

Disclaimer

Page 3: Measuring User Experience

We used to measure here

Page 4: Measuring User Experience

We miss about 80%

Your visibility ends here

Page 5: Measuring User Experience

… let’s look at an example

Page 6: Measuring User Experience

Web Application Delivery Chain

Browser

3rd Party

Server

Internet<html> <head>

Content

Processing

Page 7: Measuring User Experience

Robots forMonitoring

Page 8: Measuring User Experience

Monitor from Everywhere

Page 9: Measuring User Experience

Robots are not humans(even if they come close)

Page 10: Measuring User Experience

Lack of standards

In Browser Measurement Complex

Most tools for development/troubleshooting

Challenges Today

Page 11: Measuring User Experience

We need this …

Page 12: Measuring User Experience

My

Page 13: Measuring User Experience

Request Start Time

Time-to-First-Byte

OnLoad Time

Business Event Time

Resource Download TimeRendering Time

DNS/Network Time

JS Execution Time

Rendering TimeBandwidth

Latency (Geo)Location

Browser Info

Page 14: Measuring User Experience

… we want to get all this information non intrusively

(aka hacking)

Page 15: Measuring User Experience

<html> <head> <script type="text/javascript"> var start = new Date().getTime(); function onLoad() { var now = new Date().getTime(); var latency = now - start; alert("page loading time: " + latency); } </script> </head> <body onload="onLoad()"> ……

OnLoad Time Measurement

Page 16: Measuring User Experience

……<script type="text/javascript"> downloadStart(“myimg”);</script><img src=“./myimg.jpg” onload=“downloadEnd(‘myimg’)” />…..

Resource Time Measurement

Page 17: Measuring User Experience

… browsers have all this information, so why not

expose it

Page 18: Measuring User Experience

W3C Performance Working Group

Page 19: Measuring User Experience

Navigation TimingBasic page navigation information

Resource TimingInformation about page resources (own & third party)

User TimingCustom actions and high-res timer

TimelineUnified Access to Performance Data

Web Performance Specs

Page 20: Measuring User Experience

Understand Page Loading

Page 21: Measuring User Experience

window.performance.timing.

Navigation Timing

Page 22: Measuring User Experience

Navigation Timing in Chrome

Page 23: Measuring User Experience

Navigation Timing on Windows Mobile

Page 24: Measuring User Experience

Let’s try this ourselves ...

Page 25: Measuring User Experience

The page is not enough

Page 26: Measuring User Experience

window.performance.getEntriesByType(window.performance.PERF_RESOURCE)[].

Resource Timing

Page 27: Measuring User Experience

Custom Time Measurements

Page 28: Measuring User Experience

mark (markName)add a new mark with the current timestamp

getMarks (markName)Retrieve all marks with the specified name. If none is specified all marks will be returnedResult Structure:

{ <markName> : [<val1>, <val2>, …] …..}

Marks

Page 29: Measuring User Experience

measure () fetchStart -> now

measure (startTime) startTime -> now

measure(startTime, endTime) startTime -> endTime

Measures

Page 30: Measuring User Experience

Performance Timeline

Page 31: Measuring User Experience

Real world exampleswhat’s possible today

Page 32: Measuring User Experience
Page 33: Measuring User Experience
Page 34: Measuring User Experience
Page 35: Measuring User Experience

BrowserSupport

Page 36: Measuring User Experience

How to send the data back to the server

Rendering and JS Execution

Implementing the backend services

Full browser support

More efficient bandwidth measurement

Open Issues

Page 37: Measuring User Experience

LegacyBrowsers

Page 38: Measuring User Experience

Alois [email protected]

@AloisReitbauerhttp://blog.dynatrace.com