Show Me the Numbers: Automated Browser

588 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
588
On SlideShare
0
From Embeds
0
Number of Embeds
252
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Show Me the Numbers: Automated Browser

  1. 1. Show Me the Numbers AUTOMATED BROWSER PERFORMANCE TESTING CHRIS MOUNTFORD • SENIOR DEVELOPER, JIRA • ATLASSIAN • @CHROMOSUNDRIFT
  2. 2. 2005 3.4.1 7425
  3. 3. Inline Edit Search Detail View
  4. 4. Browser Performance Testing
  5. 5. “ Measuring the perceived performance of specific interactions for a single user ”
  6. 6. “ Measuring the perceived performance of specific interactions for a single user ”
  7. 7. JavaScript Timeline
  8. 8. 1995 Classical JavaScript
  9. 9. Just text by itself, for impact.
  10. 10. “Why do we split everything into so many files?” “Performance.”
  11. 11. “Why do we merge all the files into large batches?” “Performance.”
  12. 12. “Why...” “Performance!”
  13. 13. “ Show me the numbers! NOT JACKY CHAN ”
  14. 14. “ If we have data, let’s look at data. If all we have are opinions, let’s go with mine. JIM BARKSDALE ”
  15. 15. Performance has many enemies
  16. 16. The Mobile Web EVERYTHING IS THE SAME BUT WORSE • network / radio power mode steps, sleep, etc. • cpu / battery impact • memory • standards compliance • tooling
  17. 17. NETWORK TIME
  18. 18. PARSE TIME
  19. 19. JavaScript Execution • JS Engines • native bind(), map() etc • V8: hidden classes, arrays, gc • DOM Manipulation • events • JQuery • Sizzle selectors • Memory leaks
  20. 20. BLOCKING <SCRIPT SRC=”WTF.JS”>
  21. 21. Tools Chrome DevTools, Chrome WTF Firebug Lite dynaTrace
  22. 22. Reflow
  23. 23. Yes! Will It Reflow? inspired by @stoyanstefanov
  24. 24. But wait, there’s more! • CSS Transforms • Hardware acceleration? • Data weight • Concurrent request count • Inline Base64 Encoded resources
  25. 25. Designing the JIRA Browser Performance Test Suite
  26. 26. Automated JIRA Browser Performance Tests Baselines Vigilance Koto Psycho OnDemand Charts Events Analytics Hacking Page Objects Soke Bamboo Framework Plugin DB
  27. 27. Soke Interactions • Define Timed Sections • Number of Repetitions • Personas Mad Props to Atlassian PerfEng Team
  28. 28. Soke Interactions In Scala
  29. 29. Optimization Techniques • Batching • Atlassian Plugins, No Worries • Predictive Fetching • Guided by Analytics • Caching • Watch for memory leaks
  30. 30. “ ” I don’t know... it just feels slow. A JIRA PRODUCT MANAGER
  31. 31. Perception is Reality
  32. 32. 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 • Optimization Example: Execution Reordering
  33. 33. Gotchas
  34. 34. click( )
  35. 35. Selenium / Webdriver • Chromedriver implemented by Chromium team • mouse click on geometric centre of target • W3C Webdriver wire protocol draft • OK Browsers, follow the standard!
  36. 36. Selenium / Webdriver • Windows and IE process control • Browser auto-upgrades • Changing what you measure • Prefetch cache benefit in JIRA 6.0
  37. 37. Takeaway tweets: • Performance has many enemies • Be holistic, be quantitative, beware the microoptimization trap • Perception is Reality • The price of performance is eternal vigilance #atlassiansummit
  38. 38. Thank you! CHRIS MOUNTFORD • SENIOR DEVELOPER, JIRA • ATLASSIAN • @CHROMOSUNDRIFT
  39. 39. Rate this Talk Show Me the Numbers: Automated Browser Text code below to 22333 or visit http://bit.ly/197mpCa MEH = 45 NO T BA D = 46 P R ET T Y GO O D = 47 A WES O ME = 48 To join this session, send text 136888 to

×