SlideShare uma empresa Scribd logo
1 de 94
Baixar para ler offline
@atlassian #atlascamp
Show Me the Numbers
Automated Browser Performance Testing

Chris Mountford
Senior Software Developer, JIRA
Atlassian
@chromosundrift
2
Chris Mountford

2005
3.4.1
185
16660
3
Chris Mountford

4
Chris Mountford

4
Chris Mountford
Inline Edit

4
Chris Mountford
Inline Edit

4
Chris Mountford
Inline Edit

Search

4
Chris Mountford
Inline Edit

Search

4
Chris Mountford
Inline Edit

Search
Detail View
4
Chris Mountford
Inline Edit

Search
Detail View
4
Browser Performance
Testing
Welcome!
Browser Performance Testing

“of specific interactions for a single user
Measuring the perceived performance

”
6
Browser Performance Testing

“of specific interactions for a single user
Measuring the perceived performance
perceived

”
7
Outline
• Intro

• Optimisation Techniques

• JavaScript Renaissance
Engineering

• Perception

• Performance Factors

• Gotchas
• Take Aways

• JIRA Perf Tests

8
Outline
• Intro

• Optimisation Techniques

• JavaScript Renaissance
Engineering

• Perception

• Performance Factors

• Gotchas
• Take Aways

• JIRA Perf Tests

8
JavaScript Timeline
A history
lesson
1995

Classical JavaScript

10
Browser Wars

10
Browser Wars

Dark Ages

10
Dark Ages

Firebug

10
V8

Firebug

10
V8

Node.js

Firebug

10
Node.js

Hipsters

10
11
12
13
“Why do we split everything
into so many files?”

13
“Why do we split everything
into so many files?”

“Performance.”
13
14
“Why do we merge all the files
into large batches?”

14
“Why do we merge all the files
into large batches?”

“Performance.”
14
15
“Why...”

15
“Why...”

“Performance!”
15
“Why...”

“Performance!”
15
“

Show me the numbers!

”

– Not Jacky Chan

Hey it’s
Jacky

16
“ If all we have are opinions, let’s go
with mine.
”
If we have data, let’s look at data.

Netscape
CEO

– Jim Barksdale

17
Factors That Influence
Browser Performance
sad panda
Mobile Web
• Everything is the same but worse
• network / radio power mode steps, sleep, etc.
• cpu / battery impact
• memory
• standards compliance
• tooling
19
Network
Time
20
Parse
Time
21
JavaScript Execution
• JS Engines
• native bind(), map() etc

• DOM Manipulation
• events

• JQuery
• Sizzle selectors
• micro-optimisation ☠

• Memory leaks

22
Blocking

23
Blocking
<script src=”wtf.js”>
23
Top Tools
Chrome DevTools
Firebug Lite
dynaTrace

24
Reflow
26
inspired by @stoyanstefanov

27
Will It Reflow?
inspired by @stoyanstefanov

27
Will It Reflow?
inspired by @stoyanstefanov

27
Yes!

Will It Reflow?
inspired by @stoyanstefanov

27
But wait, there’s more!
• CSS Transforms
• Hardware acceleration?

• Data weight
• Concurrent request count
• Inline Base64 Encoded resources

28
But wait, there’s more!
• CSS Transforms
• Hardware acceleration?

• Data weight
• Concurrent request count
• Inline Base64 Encoded resources

28
Designing the JIRA
Browser Performance
Test Suite
Sweet!
JIRA Browser Perf Tests

30
JIRA Browser Perf Tests

Page
Objects
30
JIRA Browser Perf Tests

Page
Objects

Soke
Framework
30
JIRA Browser Perf Tests

Page
Objects

Soke
Framework

Bamboo
30
JIRA Browser Perf Tests

Page
Objects

Soke
Framework

Plugin

Bamboo
30
JIRA Browser Perf Tests

Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests

Hacking
Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests
Koto
Charts
Hacking
Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests
Koto
Charts

Psycho
Events
Hacking

Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests
Koto
Charts

Psycho
Events

OnDemand
Analytics

Hacking
Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests
Baselines
Koto
Charts

Psycho
Events

OnDemand
Analytics

Hacking
Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
JIRA Browser Perf Tests
Baselines
Koto
Charts

Vigilance

Psycho
Events

OnDemand
Analytics

Hacking
Page
Objects

Soke
Framework

Plugin

DB

Bamboo
30
Soke Interactions
• Define Timed Sections
• Number of Repetitions
• Personas

31
Soke Interactions
• Define Timed Sections
• Number of Repetitions
• Personas

Big ups to
Atlassian
PerfEng
Team

31
Soke Interactions in Scala

32
33
33
34
Optimisation Techniques
• Batching
• Atlassian Plugins, No Worries
• Predictive Fetching
• Guided by Analytics
• Caching
• Watch for memory leaks
35
“

I don’t know... it just feels slow.

”

– a JIRA Product Manager

Show me the
numbers!

36
Perception is Reality
No, it only
seems that way
38
Psycho Latency
• Ready for Action
• When does the User believe the app is waiting for her?

• Manual “psycho” event placement
• and maintenance!

• Yardstick tuning against a real system
• Optimisation Example: Execution Reordering
39
Gotchas
I’m gonna
click( )
Selenium / Webdriver

42
Selenium / Webdriver
• Chromedriver implemented by Chromium team

42
Selenium / Webdriver
• Chromedriver implemented by Chromium team
• mouse click on geometric centre of target

42
Selenium / Webdriver
• Chromedriver implemented by Chromium team
• mouse click on geometric centre of target
• W3C Webdriver wire protocol draft

42
Selenium / Webdriver
• Chromedriver implemented by Chromium team
• mouse click on geometric centre of target
• W3C Webdriver wire protocol draft
• OK Browsers, follow the standard!

42
Selenium / Webdriver
• Chromedriver implemented by Chromium team
• mouse click on geometric centre of target
• W3C Webdriver wire protocol draft
• OK Browsers, follow the standard!

42
Selenium / Webdriver

43
Selenium / Webdriver
• Windows and IE process control

43
Selenium / Webdriver
• Windows and IE process control
• Browser auto-upgrades

43
Selenium / Webdriver
• Windows and IE process control
• Browser auto-upgrades
• Changing what you measure

43
Selenium / Webdriver
• Windows and IE process control
• Browser auto-upgrades
• Changing what you measure
• Prefetch cache benefit in JIRA 6.0

43
Take Aways
• Lots of factors
• Measure perceived reality
• Be holistic, quantitative, beware micro-optimisation trap
• Monitor and Maintain your performance suite
• Use Chrome DevTools etc.

44
Thank you!
For resources:
#atlascamp
@chromosundrift

Mais conteúdo relacionado

Semelhante a AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing

Show Me the Numbers: Automated Browser
Show Me the Numbers: Automated Browser Show Me the Numbers: Automated Browser
Show Me the Numbers: Automated Browser
colleenfry
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
Andreas Grabner
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
Dave Haeffner
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
kmloomis
 
Rails Performance Tricks and Treats
Rails Performance Tricks and TreatsRails Performance Tricks and Treats
Rails Performance Tricks and Treats
Marshall Yount
 

Semelhante a AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing (20)

Tooling for the productive front-end developer
Tooling for the productive front-end developerTooling for the productive front-end developer
Tooling for the productive front-end developer
 
Show Me the Numbers: Automated Browser
Show Me the Numbers: Automated Browser Show Me the Numbers: Automated Browser
Show Me the Numbers: Automated Browser
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
 
Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
 
Automated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonAutomated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave Sadlon
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
 
Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015
 
Page Performance
Page PerformancePage Performance
Page Performance
 
Web Crawling & Crawler
Web Crawling & CrawlerWeb Crawling & Crawler
Web Crawling & Crawler
 
Web Application Software Testing
Web Application Software TestingWeb Application Software Testing
Web Application Software Testing
 
Webdriver io presentation
Webdriver io presentationWebdriver io presentation
Webdriver io presentation
 
33rd degree
33rd degree33rd degree
33rd degree
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Web Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity ConferenceWeb Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity Conference
 
Getting started with dev tools (4/10/17 DC)
Getting started with dev tools (4/10/17 DC)Getting started with dev tools (4/10/17 DC)
Getting started with dev tools (4/10/17 DC)
 
Análisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic StackAnálisis de las novedades del Elastic Stack
Análisis de las novedades del Elastic Stack
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
 
Rails Performance Tricks and Treats
Rails Performance Tricks and TreatsRails Performance Tricks and Treats
Rails Performance Tricks and Treats
 

Mais de colleenfry

The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
colleenfry
 
The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
colleenfry
 
The 7 habits of high successful atlassian marketplace developers by dave meyer
The 7 habits of high successful atlassian marketplace developers   by dave meyerThe 7 habits of high successful atlassian marketplace developers   by dave meyer
The 7 habits of high successful atlassian marketplace developers by dave meyer
colleenfry
 
AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch
colleenfry
 
AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack
colleenfry
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
colleenfry
 
AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote
colleenfry
 
AtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patternsAtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patterns
colleenfry
 
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
colleenfry
 
AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints
colleenfry
 
AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union
colleenfry
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UX
colleenfry
 
Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union
colleenfry
 
Atlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-onsAtlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-ons
colleenfry
 
Flying at the Speed of Git
Flying at the Speed of GitFlying at the Speed of Git
Flying at the Speed of Git
colleenfry
 
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
colleenfry
 
True Git: The Great Migration
True Git: The Great MigrationTrue Git: The Great Migration
True Git: The Great Migration
colleenfry
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Group
colleenfry
 
W4 0245 agility_v1
W4 0245 agility_v1W4 0245 agility_v1
W4 0245 agility_v1
colleenfry
 

Mais de colleenfry (20)

The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
 
True Git
True Git True Git
True Git
 
The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers The 7 habits of high successful atlassian marketplace developers
The 7 habits of high successful atlassian marketplace developers
 
The 7 habits of high successful atlassian marketplace developers by dave meyer
The 7 habits of high successful atlassian marketplace developers   by dave meyerThe 7 habits of high successful atlassian marketplace developers   by dave meyer
The 7 habits of high successful atlassian marketplace developers by dave meyer
 
AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch AtlasCamp 2013: Scratch your own itch
AtlasCamp 2013: Scratch your own itch
 
AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack AtlasCamp 2013: Bring your own Stack
AtlasCamp 2013: Bring your own Stack
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
 
AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote AtlasCamp 2013: Keynote
AtlasCamp 2013: Keynote
 
AtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patternsAtlasCamp 2013: Confluence patterns
AtlasCamp 2013: Confluence patterns
 
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
 
AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints AtlasCamp 2013: Confluence Blueprints
AtlasCamp 2013: Confluence Blueprints
 
AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union AtlasCamp 2013: Confluence State of the Union
AtlasCamp 2013: Confluence State of the Union
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UX
 
Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union Atlassian Summit 2013: Confluence State of the Union
Atlassian Summit 2013: Confluence State of the Union
 
Atlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-onsAtlassian: More Awesome with Add-ons
Atlassian: More Awesome with Add-ons
 
Flying at the Speed of Git
Flying at the Speed of GitFlying at the Speed of Git
Flying at the Speed of Git
 
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
The Experience Canvas: How to Use a Core Tool from the Experience-Driven Play...
 
True Git: The Great Migration
True Git: The Great MigrationTrue Git: The Great Migration
True Git: The Great Migration
 
Adopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops GroupAdopting Continuous Integration in an Ops Group
Adopting Continuous Integration in an Ops Group
 
W4 0245 agility_v1
W4 0245 agility_v1W4 0245 agility_v1
W4 0245 agility_v1
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing