SlideShare a Scribd company logo
QAFEST
Web Application
Performance From
User Perspective
JACEK OKROJEK
01.10.2016
1. Why it matters
2. Tips for improving web page performance
3. Metrics
4. Measurements techniques
AGENDA
GFT Technologies SE 25.06.2016 3
Why it matters
W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
GFT Technologies SE 25.06.2016 4
High Performance Web Sites Rules
 Gzip Components
 Put StyleSheets at the Top
 Put Scripts at the Bottom
 Minimize HTTP Requests
 Minify JavaScript and CSS
 Make JavaScript and CSS External
 Use a Content Delivery Network
 Avoid empty src or href
 Add an Expires or a Cache-Control Header
 Avoid CSS Expressions
 Reduce DNS Lookups
 Remove Duplicate Scripts
W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
 Make AJAX Cacheable
 Use GET for AJAX Requests
 Reduce the Number of DOM Elements
 Use Cookie-Free Domains for Components
 Do Not Scale Images in HTML
 Make favicon.ico Small and Cacheable
 Configure ETags
 Avoid Redirects
 Reduce Cookie Size
 Avoid Filters
 No 404s
GFT Technologies SE 25.06.2016 5
Checking conformance to High Performance Web Sites Rules
 YSlow
 Google PageSpeed Insights
W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
GFT Technologies SE 25.06.2016 8
Server Metrics
 HTML Document download time is 68ms
W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
GFT Technologies SE 25.06.2016 10
USING REAL BROWSER IN PERFORMANCE TESTS
 Key advantages
 Provides metrics from real
browser
 You can run them when you
want
 Key disadvantage
 User perspective as if she use
test equipment
browser, hardware, connections
speed, location)
 Key challenges
 What metrics should be
collected
 Where to put test equipment
SYNTHETIC MEASUREMENTS
GFT Technologies SE 25.06.2016 11
Navigation API
BROW SER METRICS
GFT Technologies SE 25.06.2016 12
USING REAL BROWSER IN PERFORMANCE TESTS
 Key advantages
 Provides metrics from real
browser
 You can run them when you
want
 Key disadvantage
 User perspective as if she use
test equipment
browser, hardware, connections
speed, location)
 Key challenges
 What metrics should be
collected
 Where to put test equipment
SYNTHETIC MEASUREMENTS
GFT Technologies SE 25.06.2016 13
Navigation Timing API
var t = performance.timing || {};
var i = t.domInteractive - t.navigationStart,
d = t.domContentLoadedEventStart - t.navigationStart,
c = t.domComplete - t.navigationStart;
return i + ', ' + d + ', ' + c;
BROW SER METRICS
GFT Technologies SE 25.06.2016 14
Zasoby
 Typowe metryki
 Czas pobrania wybranego zasobu
 Czas pobrania ostatniego zasobu
BROW SER METRICS
GFT Technologies SE 25.06.2016 15
Resource Timing API
var resources = performance.getEntriesByType("resource");
for (var i=0; i < resources.length; i++) {
log("== Resource[" + i + "] - " + resources[i].name);
// Start until reponse end
t = (resources[i].startTime > 0) ? "0":
(resources[i].responseEnd - resources[i].startTime);
log("... Start until response end time = " + t);
}
BROW SER METRICS
GFT Technologies SE 25.06.2016 16
User Timing API
 Typowe metryki
 Wyświetlony wybrany element strony
BROW SER METRICS
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="contentSearchUI.css">
</head>
…
<body>
<img src="hero.jpg" onload="performance.mark('hero1')">
<script>performance.mark('hero2')</script>
</body>
</html>
GFT Technologies SE 25.06.2016 17
Tools and services
 Open Source
 Selenium, BrowserMob i HarStorage
 SiteSpeed.io
 WebPageTest
 Płatne
 NewRelic
 CatchPoint
SYNTHETIC MEASUREMENTS
GFT Technologies SE 25.06.2016 18
Real User Measurements (RUM)
 Collected from real user devices
(mobile and desktop) and helps
understands how performance is
seen by real users
 Key advantages
 You know what performance is seen
by real users
 Solves most of the challenges of
synthetic monitoring
 Key disadvantage
 You can not run it when you want (for
example before release)
 Key challenges
 What to measure
W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
GFT Technologies SE 25.06.2016 19
Dodatkowe informacje
 https://www.soasta.com/blog/measuring-web-performance-video/
 https://dzone.com/articles/a-brief-history-of-web-performance-roi
 https://developers.google.com/web/fundamentals/performance
 http://yslow.org/
 http://www.softwareishard.com/blog/har-viewer/
 https://www.soasta.com/blog/ebook-usertiming-performance-monitoring/
 https://codeascraft.com/
 https://www.soasta.com/blog/ebook-usertiming-performance-monitoring/
 https://code.facebook.com/posts/991252547593574/the-technology-behind-
preview-photos/
 https://blog.twitter.com/2012/improving-performance-on-twittercom
 http://www.stevesouders.com/blog/2015/05/12/hero-image-custom-metrics
Steve Souders
@Souders
Tammy Everts
@tameverts
Ilya Grigorik
@igrigorik
Tim Kaldec
@tkaldec
GFT Technologies SE
Jacek Okrojek
Email: jacek.okrojek@gft.com
Twitter: @Okrojek
Thank you

More Related Content

PDF
Karim Fanadka
PDF
DevOps 及 TDD 開發流程哲學
PDF
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
PPTX
Refresh your project vision with Report Portal
PDF
Alexander Mostovenko "'Devide at impera' with GraphQL and SSR"
PPTX
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
PPTX
QA Fest 2017. Диана Пинчук. Разработка мульти- платформенного мобильного SDK:...
PDF
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
Karim Fanadka
DevOps 及 TDD 開發流程哲學
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
Refresh your project vision with Report Portal
Alexander Mostovenko "'Devide at impera' with GraphQL and SSR"
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
QA Fest 2017. Диана Пинчук. Разработка мульти- платформенного мобильного SDK:...
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測

What's hot (20)

PDF
점진적인 레거시 웹 애플리케이션 개선 과정
PPTX
Cypress Automation
PDF
Testing for fun in production Into The Box 2018
PDF
Unit Testing your React / Redux app (@BucharestJS)
PPTX
Load Testing with k6 framework
PDF
Automated acceptance test
PPTX
Docker в автоматизации тестирования
PPTX
TDD on OSGi, in practice.
PDF
Java 9 and Beyond
PDF
Presentation security automation (Selenium Camp)
PDF
JavaFX JumpStart @JavaOne 2016
ODP
Jenkins Pipelining and Gatling Integration
PPTX
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
PDF
Никита Галкин "Testing in Frontend World"
PDF
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
PDF
Andrii Shumada "No excuses for not writing tests"
PDF
Супер быстрая автоматизация тестирования на iOS
PDF
Cypress e2e automation testing - day1 intor by: Hassan Hameed
PDF
Continuous Delivery - Devoxx Morocco 2016
PDF
Continuous Delivery - Voxxed Days Thessaloniki 21.10.2016
점진적인 레거시 웹 애플리케이션 개선 과정
Cypress Automation
Testing for fun in production Into The Box 2018
Unit Testing your React / Redux app (@BucharestJS)
Load Testing with k6 framework
Automated acceptance test
Docker в автоматизации тестирования
TDD on OSGi, in practice.
Java 9 and Beyond
Presentation security automation (Selenium Camp)
JavaFX JumpStart @JavaOne 2016
Jenkins Pipelining and Gatling Integration
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Никита Галкин "Testing in Frontend World"
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Andrii Shumada "No excuses for not writing tests"
Супер быстрая автоматизация тестирования на iOS
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Continuous Delivery - Devoxx Morocco 2016
Continuous Delivery - Voxxed Days Thessaloniki 21.10.2016
Ad

Similar to QA Fes 2016. Jacek Okrojek. Website performance from user perspective (20)

DOCX
Rahul parashar resume
PPTX
The art of .net deployment automation
PDF
Bringing JAMStack to the Enterprise
PDF
Bringing the JAMstack to the Enterprise
PPTX
Java springboot microservice - Accenture Technology Meetup
PPT
Web Performance Testing
PDF
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
PPTX
Web Application Performance from User Perspective
PDF
Client-Side Performance Testing
PPT
Developing Java Web Applications In Google App Engine
PPTX
10 Emerging Test Frameworks for Cross Browser Testing
PDF
Optimizing a React application for Core Web Vitals
PPTX
Timings API: Performance Assertion during the functional testing
PDF
Tapan Nayan Banker Background and details
PDF
CA World 2014 Release Automation Coexistence in the Enterprise
PPTX
Performance Metrics in a Day with Selenium
PPTX
Monitoring web application response times^lj a hybrid approach for windows
PPTX
Consuming GRIN GLOBAL Webservices
PDF
F5 Automation Toolchain
PPTX
Azure appservice
Rahul parashar resume
The art of .net deployment automation
Bringing JAMStack to the Enterprise
Bringing the JAMstack to the Enterprise
Java springboot microservice - Accenture Technology Meetup
Web Performance Testing
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
Web Application Performance from User Perspective
Client-Side Performance Testing
Developing Java Web Applications In Google App Engine
10 Emerging Test Frameworks for Cross Browser Testing
Optimizing a React application for Core Web Vitals
Timings API: Performance Assertion during the functional testing
Tapan Nayan Banker Background and details
CA World 2014 Release Automation Coexistence in the Enterprise
Performance Metrics in a Day with Selenium
Monitoring web application response times^lj a hybrid approach for windows
Consuming GRIN GLOBAL Webservices
F5 Automation Toolchain
Azure appservice
Ad

More from QAFest (20)

PDF
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
PPTX
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
PPTX
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
PDF
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
PDF
QA Fest 2019. Никита Галкин. Как зарабатывать больше
PDF
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
PDF
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
PPTX
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
PPTX
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
PDF
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
PPTX
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
PDF
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
PPTX
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
PDF
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
PDF
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
PDF
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
PPTX
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
PPTX
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
PDF
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
PPTX
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22

Recently uploaded (20)

PDF
Pre independence Education in Inndia.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
Institutional Correction lecture only . . .
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
RMMM.pdf make it easy to upload and study
PPTX
Cell Types and Its function , kingdom of life
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Basic Mud Logging Guide for educational purpose
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Computing-Curriculum for Schools in Ghana
Pre independence Education in Inndia.pdf
Renaissance Architecture: A Journey from Faith to Humanism
Institutional Correction lecture only . . .
human mycosis Human fungal infections are called human mycosis..pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Anesthesia in Laparoscopic Surgery in India
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
RMMM.pdf make it easy to upload and study
Cell Types and Its function , kingdom of life
Microbial diseases, their pathogenesis and prophylaxis
Basic Mud Logging Guide for educational purpose
Abdominal Access Techniques with Prof. Dr. R K Mishra
TR - Agricultural Crops Production NC III.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
Computing-Curriculum for Schools in Ghana

QA Fes 2016. Jacek Okrojek. Website performance from user perspective

  • 1. QAFEST Web Application Performance From User Perspective JACEK OKROJEK 01.10.2016
  • 2. 1. Why it matters 2. Tips for improving web page performance 3. Metrics 4. Measurements techniques AGENDA
  • 3. GFT Technologies SE 25.06.2016 3 Why it matters W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
  • 4. GFT Technologies SE 25.06.2016 4 High Performance Web Sites Rules  Gzip Components  Put StyleSheets at the Top  Put Scripts at the Bottom  Minimize HTTP Requests  Minify JavaScript and CSS  Make JavaScript and CSS External  Use a Content Delivery Network  Avoid empty src or href  Add an Expires or a Cache-Control Header  Avoid CSS Expressions  Reduce DNS Lookups  Remove Duplicate Scripts W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE  Make AJAX Cacheable  Use GET for AJAX Requests  Reduce the Number of DOM Elements  Use Cookie-Free Domains for Components  Do Not Scale Images in HTML  Make favicon.ico Small and Cacheable  Configure ETags  Avoid Redirects  Reduce Cookie Size  Avoid Filters  No 404s
  • 5. GFT Technologies SE 25.06.2016 5 Checking conformance to High Performance Web Sites Rules  YSlow  Google PageSpeed Insights W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
  • 6. GFT Technologies SE 25.06.2016 8 Server Metrics  HTML Document download time is 68ms W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
  • 7. GFT Technologies SE 25.06.2016 10 USING REAL BROWSER IN PERFORMANCE TESTS  Key advantages  Provides metrics from real browser  You can run them when you want  Key disadvantage  User perspective as if she use test equipment browser, hardware, connections speed, location)  Key challenges  What metrics should be collected  Where to put test equipment SYNTHETIC MEASUREMENTS
  • 8. GFT Technologies SE 25.06.2016 11 Navigation API BROW SER METRICS
  • 9. GFT Technologies SE 25.06.2016 12 USING REAL BROWSER IN PERFORMANCE TESTS  Key advantages  Provides metrics from real browser  You can run them when you want  Key disadvantage  User perspective as if she use test equipment browser, hardware, connections speed, location)  Key challenges  What metrics should be collected  Where to put test equipment SYNTHETIC MEASUREMENTS
  • 10. GFT Technologies SE 25.06.2016 13 Navigation Timing API var t = performance.timing || {}; var i = t.domInteractive - t.navigationStart, d = t.domContentLoadedEventStart - t.navigationStart, c = t.domComplete - t.navigationStart; return i + ', ' + d + ', ' + c; BROW SER METRICS
  • 11. GFT Technologies SE 25.06.2016 14 Zasoby  Typowe metryki  Czas pobrania wybranego zasobu  Czas pobrania ostatniego zasobu BROW SER METRICS
  • 12. GFT Technologies SE 25.06.2016 15 Resource Timing API var resources = performance.getEntriesByType("resource"); for (var i=0; i < resources.length; i++) { log("== Resource[" + i + "] - " + resources[i].name); // Start until reponse end t = (resources[i].startTime > 0) ? "0": (resources[i].responseEnd - resources[i].startTime); log("... Start until response end time = " + t); } BROW SER METRICS
  • 13. GFT Technologies SE 25.06.2016 16 User Timing API  Typowe metryki  Wyświetlony wybrany element strony BROW SER METRICS <html> <head> <link rel="stylesheet" type="text/css" media="all" href="contentSearchUI.css"> </head> … <body> <img src="hero.jpg" onload="performance.mark('hero1')"> <script>performance.mark('hero2')</script> </body> </html>
  • 14. GFT Technologies SE 25.06.2016 17 Tools and services  Open Source  Selenium, BrowserMob i HarStorage  SiteSpeed.io  WebPageTest  Płatne  NewRelic  CatchPoint SYNTHETIC MEASUREMENTS
  • 15. GFT Technologies SE 25.06.2016 18 Real User Measurements (RUM)  Collected from real user devices (mobile and desktop) and helps understands how performance is seen by real users  Key advantages  You know what performance is seen by real users  Solves most of the challenges of synthetic monitoring  Key disadvantage  You can not run it when you want (for example before release)  Key challenges  What to measure W EB APPLICATION PERFORMANCE FROM USER PERSPECTIVE
  • 16. GFT Technologies SE 25.06.2016 19 Dodatkowe informacje  https://www.soasta.com/blog/measuring-web-performance-video/  https://dzone.com/articles/a-brief-history-of-web-performance-roi  https://developers.google.com/web/fundamentals/performance  http://yslow.org/  http://www.softwareishard.com/blog/har-viewer/  https://www.soasta.com/blog/ebook-usertiming-performance-monitoring/  https://codeascraft.com/  https://www.soasta.com/blog/ebook-usertiming-performance-monitoring/  https://code.facebook.com/posts/991252547593574/the-technology-behind- preview-photos/  https://blog.twitter.com/2012/improving-performance-on-twittercom  http://www.stevesouders.com/blog/2015/05/12/hero-image-custom-metrics Steve Souders @Souders Tammy Everts @tameverts Ilya Grigorik @igrigorik Tim Kaldec @tkaldec
  • 17. GFT Technologies SE Jacek Okrojek Email: jacek.okrojek@gft.com Twitter: @Okrojek Thank you

Editor's Notes

  • #12: http://web.archive.org/web/20150405114023/http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/Default.html https://developer.mozilla.org/en-US/docs/Web/Events/load https://developer.mozilla.org/en-US/docs/Web/Events/domContentLoaded http://www.webpagetest.org/video/compare.php?tests=160527_JW_1DVJ,160527_JH_1DDS http://www.webpagetest.org/video/compare.php?tests=160527_JW_1DVJ%2C160527_JH_1DDS&thumbSize=200&ival=100&end=visual
  • #15: https://www.w3.org/TR/resource-timing/
  • #17: https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index
  • #18: https://github.com/lightbody/browsermob-proxy http://code.google.com/p/harstorage/