show me the numbers: automated browser
TRANSCRIPT
CHRIS MOUNTFORD • SENIOR DEVELOPER , J IRA • ATLASS IAN • @CHROMOSUNDRIFT
Show Me the NumbersAUTOMATED BROWSER PERFORMANCE TESTING
20053.4.17425
Inline Edit
Search
Detail View
Browser Performance Testing
Measuring the perceived
performance of specific interactions for a single user ”“
Measuring the perceived
performance of specific interactions for a single user ”“
JavaScript Timeline
Classical JavaScript
1995
Just text by itself, for impact.
“Why do we split everything into so many files?”
“Performance.”
“Why do we merge all the files into large batches?”
“Performance.”
“Why...”
“Performance!”
Show me the numbers!
NOT JACKY CHAN
”“
If we have data, let’s look at
data. If all we have are opinions, let’s go with mine.
J IM BARKSDALE
”“
Performance has many enemies
The Mobile Web
• network / radio power mode steps, sleep, etc.
• cpu / battery impact
• memory
• standards compliance
• tooling
E V E R Y T H I N G I S T H E S A M E B U T W O R S E
NETWORK TIME
PARSE T IME
• JS Engines
• native bind(), map() etc
• V8: hidden classes, arrays, gc
• DOM Manipulation
• events
• JQuery
• Sizzle selectors
• Memory leaks
JavaScript Execution
BLOCKING
<SCRIPT SRC=”WTF . JS”>
Tools
Chrome DevTools, Chrome WTFFirebug Lite dynaTrace
Reflow
Will It Reflow?inspired by @stoyanstefanov
Yes!
• CSS Transforms
• Hardware acceleration?
• Data weight
• Concurrent request count
• Inline Base64 Encoded resources
But wait, there’s more!
Designing the JIRA Browser Performance
Test Suite
Page Objects
Soke Framework Bamboo
Hacking
Koto Charts
Psycho Events
Baselines
OnDemandAnalytics
Vigilance
DBPlugin
Automated JIRA Browser Performance Tests
• Define Timed Sections
• Number of Repetitions
• Personas
Soke Interactions
Mad Props to
Atlassian PerfEng Team
Soke Interactions In Scala
• Batching
• Atlassian Plugins, No Worries
• Predictive Fetching
• Guided by Analytics
• Caching
• Watch for memory leaks
Optimization Techniques
I don’t know... it just feels slow.
A J IRA PRODUCT MANAGER
”“
Perception is Reality
• 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
• Optimization Example: Execution Reordering
Psycho Latency
Gotchas
click( )
• Chromedriver implemented by Chromium team
• mouse click on geometric centre of target
• W3C Webdriver wire protocol draft
• OK Browsers, follow the standard!
Selenium / Webdriver
• Windows and IE process control• Browser auto-upgrades• Changing what you measure
• Prefetch cache benefit in JIRA 6.0
Selenium / Webdriver
Takeaway tweets:
#atlassiansummit
• Performance has many enemies
• Be holistic, be quantitative, beware the micro-optimization trap
• Perception is Reality
• The price of performance is eternal vigilance
Thank you!
CHRIS MOUNTFORD • SENIOR DEVELOPER , J IRA • ATLASS IAN • @CHROMOSUNDRIFT
Text code below to 22333or visit http://bit.ly/197mpCa
Show Me the Numbers: Automated Browser
To join this session, send text 136888 to
AWESOME = 48
PRETTY GOOD = 47
NOT BAD = 46
MEH = 45
Rate this Talk