SlideShare a Scribd company logo
Developer-Friendly
Web Performance Testing
in Continuous Integration
Michael Klepikov, Google

Velocity Conference, London, 2013
Overview
● Web performance testing is hard
● Sidelines of web app lifecycle
● Move to mainstream
● Integrate with main UI continuous build
● Make fixes cheaper
Perf testing on sidelines
● Many awesome perf test tools
○ WebPageTest.org

● Domain of few experts
● High maintenance
● Hard to add to regular continuous build
Why hard to integrate?
● Focus on browser only
○ No control of server start/stop
○ CB must run at a specific changelist

● Own test scheduler (e.g. WebPageTest)
○ Impedance mismatch with main CB scheduler
Expensive to fix production
● Complex end to end system
○ Regression could be anywhere, not just browser

● Hard to find the culprit change
○ 100’s-1000’s of developer changes + cherrypicks

● Production release logistics
Dedicated Perf Tests Rot
UI evolves
Tests break
Who fill fix?
Selenium 2.0 - WebDriver
● Pervasive adoption in web UI tests
● All major browsers, desktop and mobile
○ W3C standard

● No direct support for perf testing
○ Bad idea to measure around Selenium/WD API calls
Real User Monitoring
● Self-instrumentation + reporting in JS
● Arguably more important than perf testing
● Track metrics that matter
● Interactive pages (page-load meaningless)
● Easier to attribute than page-load time
Perf tests that ride on UI tests
● UI tests trigger RUM
● Intercept metrics
○ and DevTools traces

● UI tests stay green
○ keep perf tests green
Collect DevTools traces
● Selenium Logging API: LogType.PERFORMANCE
● Save in test results
● Compare before vs. after traces
○ Great aid for debugging regressions

● Test infrastructure does it transparently
Intercept RUM metrics
● Parse from the saved DevTools trace
○ …/report?a=10,b=220

● Store to a database
○ Time Series of Time Series: changelists, iterations

● Graph, autodetect regressions
○ TSViewDB
Iterations
● Run many iterations of same UI test
○ At the same changelist

● Statistically viable
○ Keep in mind – the distribution is not normal!

● Test infrastructure does it transparently
RUM metrics from UI tests
Graphs !
Detect regressions
Drill down
WebPageTest: results UI only
● Don’t schedule tests on WPT
● Send perf test results to WPT server
○ Awesome UI, lots of useful analysis for free

● Link from main test results UI to WPT page
● TSViewDB integration, with drill-down
Performance Test Lifecycle
Add Instrumentation
Reporting
to your (web) app
Continuous
Performance Tests

Fix

Push to Production

Regression Alerts

Real User
Monitoring
Perf tests run longer: two CBs
Main CB

green builds

bisect the
culprit

Perf CB
Caveats
● Do not predict absolute production latency!
○ Ideally server under test runs in isolation in CB
○ Limited variety of hardware, networks

● Only detect regressions
○ E.g. daily regression summary email
Conclusions
● Use UI functional tests as a base
● Intercept RUM, run many iterations
● Run continuously!
● Autodetect regressions, CL author to fix!
● Debug production less!
Q&A
These slides: goo.gl/HdUCqL
Intercept DevTools: youtu.be/0_kAPWSZNY4
Send results to WPT: gist.github.com/klepikov
TSViewDB: github.com/google/tsviewdb

More Related Content

PPTX
Елена Панина - Drupal performance testing. Тестирование производительности, м...
PDF
[E-Dev-Day 2015][3/4] QA Status Report (Stefan Schmidt)
PDF
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
PPTX
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
PPTX
Workshop New Relic - juni 2015
PDF
HKG15-411: Browser Testing Framework for LHG
PDF
EFL QA: Where Are We and Where Should We Go?
PDF
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
Елена Панина - Drupal performance testing. Тестирование производительности, м...
[E-Dev-Day 2015][3/4] QA Status Report (Stefan Schmidt)
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Workshop New Relic - juni 2015
HKG15-411: Browser Testing Framework for LHG
EFL QA: Where Are We and Where Should We Go?
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...

What's hot (14)

PDF
QA Strategies for Testing Legacy Web Apps
PDF
Using Crowdsourced Testing to Turbocharge your Development Team
PDF
Ceilometer juno-midpoint
TXT
!!Readme
PPT
Qtp testing
PDF
Performance testing for developers
PPTX
Chef tooling and TDD
PPTX
Integrate matlab application into python
PDF
Working process and git branch strategy
PPTX
How We Build Confidence with Continuous Integration and Automated Testing
PPTX
Continuous Delivery in Practice (extended)
PDF
Seaside Web 2.0
PPTX
Continuous integration CloudParty 21 may 2014 - Milan
PPTX
Dev ops presentation
QA Strategies for Testing Legacy Web Apps
Using Crowdsourced Testing to Turbocharge your Development Team
Ceilometer juno-midpoint
!!Readme
Qtp testing
Performance testing for developers
Chef tooling and TDD
Integrate matlab application into python
Working process and git branch strategy
How We Build Confidence with Continuous Integration and Automated Testing
Continuous Delivery in Practice (extended)
Seaside Web 2.0
Continuous integration CloudParty 21 may 2014 - Milan
Dev ops presentation
Ad

Viewers also liked (14)

PDF
Getting 100B Metrics to Disk
PPTX
Data viz as_interface_makoto_inoue
PPTX
Why Page Speed Isn't Enough - Tim Morrow - Velocity Europe 2012
PDF
Velocity EU 2013 What is the velocity of an unladen swallow?
PDF
Performance and Metrics at Lonely Planet
PDF
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
PDF
Bring the Noise
PDF
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
PPT
Velocity EU 2012 - Third party scripts and you
PDF
Integrating multiple CDNs at Etsy
PDF
Be Mean to Your Code with Gauntlt and the Rugged Way // Velocity EU 2013 Work...
PPTX
Software enginering
PDF
Jti vol1 no2_politeknik telkom_lisana_pembuatan aplikasi multimedia pembelajaran
PPTX
Belajar html!!
Getting 100B Metrics to Disk
Data viz as_interface_makoto_inoue
Why Page Speed Isn't Enough - Tim Morrow - Velocity Europe 2012
Velocity EU 2013 What is the velocity of an unladen swallow?
Performance and Metrics at Lonely Planet
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Bring the Noise
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
Velocity EU 2012 - Third party scripts and you
Integrating multiple CDNs at Etsy
Be Mean to Your Code with Gauntlt and the Rugged Way // Velocity EU 2013 Work...
Software enginering
Jti vol1 no2_politeknik telkom_lisana_pembuatan aplikasi multimedia pembelajaran
Belajar html!!
Ad

Similar to Velocity 2013 london developer-friendly web performance testing in continuous integration (20)

PPTX
All levels of performance testing and monitoring in web-apps
PDF
Client-Side Performance Testing
PDF
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
PPTX
Using Automation to Meet Demands for Performance and Quality
PPTX
Measuring web performance with user-centric metrics
PPTX
Measuring web performance
PPTX
Browser Based Performance Testing and Tuning
PDF
WebPagetest Power Users - Velocity 2014
PPTX
TGT#19 - 3 seconds or less - Piotr Liss
PPT
Performance Testing Overview
PPTX
Web Application Performance from User Perspective
PPTX
Performance on a budget
PPTX
The Truth About Your Web App's Performance
PDF
Client-Side Performance Testing
PDF
Client-side Performance Testing
PPTX
Neotys PAC - Ian Molyneaux
PDF
Building Performance Testing into the Development Process
PPTX
Metrics, metrics everywhere (but where the heck do you start?)
PPTX
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
PPTX
Metrics, metrics everywhere (but where the heck do you start?)
All levels of performance testing and monitoring in web-apps
Client-Side Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
Using Automation to Meet Demands for Performance and Quality
Measuring web performance with user-centric metrics
Measuring web performance
Browser Based Performance Testing and Tuning
WebPagetest Power Users - Velocity 2014
TGT#19 - 3 seconds or less - Piotr Liss
Performance Testing Overview
Web Application Performance from User Perspective
Performance on a budget
The Truth About Your Web App's Performance
Client-Side Performance Testing
Client-side Performance Testing
Neotys PAC - Ian Molyneaux
Building Performance Testing into the Development Process
Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
The AUB Centre for AI in Media Proposal.docx
Review of recent advances in non-invasive hemoglobin estimation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology

Velocity 2013 london developer-friendly web performance testing in continuous integration

  • 1. Developer-Friendly Web Performance Testing in Continuous Integration Michael Klepikov, Google Velocity Conference, London, 2013
  • 2. Overview ● Web performance testing is hard ● Sidelines of web app lifecycle ● Move to mainstream ● Integrate with main UI continuous build ● Make fixes cheaper
  • 3. Perf testing on sidelines ● Many awesome perf test tools ○ WebPageTest.org ● Domain of few experts ● High maintenance ● Hard to add to regular continuous build
  • 4. Why hard to integrate? ● Focus on browser only ○ No control of server start/stop ○ CB must run at a specific changelist ● Own test scheduler (e.g. WebPageTest) ○ Impedance mismatch with main CB scheduler
  • 5. Expensive to fix production ● Complex end to end system ○ Regression could be anywhere, not just browser ● Hard to find the culprit change ○ 100’s-1000’s of developer changes + cherrypicks ● Production release logistics
  • 6. Dedicated Perf Tests Rot UI evolves Tests break Who fill fix?
  • 7. Selenium 2.0 - WebDriver ● Pervasive adoption in web UI tests ● All major browsers, desktop and mobile ○ W3C standard ● No direct support for perf testing ○ Bad idea to measure around Selenium/WD API calls
  • 8. Real User Monitoring ● Self-instrumentation + reporting in JS ● Arguably more important than perf testing ● Track metrics that matter ● Interactive pages (page-load meaningless) ● Easier to attribute than page-load time
  • 9. Perf tests that ride on UI tests ● UI tests trigger RUM ● Intercept metrics ○ and DevTools traces ● UI tests stay green ○ keep perf tests green
  • 10. Collect DevTools traces ● Selenium Logging API: LogType.PERFORMANCE ● Save in test results ● Compare before vs. after traces ○ Great aid for debugging regressions ● Test infrastructure does it transparently
  • 11. Intercept RUM metrics ● Parse from the saved DevTools trace ○ …/report?a=10,b=220 ● Store to a database ○ Time Series of Time Series: changelists, iterations ● Graph, autodetect regressions ○ TSViewDB
  • 12. Iterations ● Run many iterations of same UI test ○ At the same changelist ● Statistically viable ○ Keep in mind – the distribution is not normal! ● Test infrastructure does it transparently
  • 13. RUM metrics from UI tests Graphs ! Detect regressions Drill down
  • 14. WebPageTest: results UI only ● Don’t schedule tests on WPT ● Send perf test results to WPT server ○ Awesome UI, lots of useful analysis for free ● Link from main test results UI to WPT page ● TSViewDB integration, with drill-down
  • 15. Performance Test Lifecycle Add Instrumentation Reporting to your (web) app Continuous Performance Tests Fix Push to Production Regression Alerts Real User Monitoring
  • 16. Perf tests run longer: two CBs Main CB green builds bisect the culprit Perf CB
  • 17. Caveats ● Do not predict absolute production latency! ○ Ideally server under test runs in isolation in CB ○ Limited variety of hardware, networks ● Only detect regressions ○ E.g. daily regression summary email
  • 18. Conclusions ● Use UI functional tests as a base ● Intercept RUM, run many iterations ● Run continuously! ● Autodetect regressions, CL author to fix! ● Debug production less!
  • 19. Q&A These slides: goo.gl/HdUCqL Intercept DevTools: youtu.be/0_kAPWSZNY4 Send results to WPT: gist.github.com/klepikov TSViewDB: github.com/google/tsviewdb