wydajność aplikacji web z perspektywy użytkownika
TRANSCRIPT
Wydajność aplikacji Web z perspektywy użytkownika
Agenda
Testy z wykorzystaniem narzędzi takich jak Jmeter, SoapUI, Grinder, Gatling itp. Testy syntetyczne z wykorzystaniem przeglądarki Real User Measurements
Pomiary z wykorzystaniem aplikacji Jmeter, Gatling itp
Pozwalają mierzyć czasy odpowiedzi elementów serwisu www Pobranie dokumentu HTML Wywołanie zapytania do API
Niezastąpione przy generowaniu obciążenia Pozwalają ocenić zmiany czasów w odpowiedzi na zwiększoną liczbę równoległych
użytkowników Nie dają informacji o wydajności strony widzianej z perspektywy użytkowników
Środowisko
Czas pobieranie obrazka (6kB) korzystając z narzędzia curl (1 wątek)
0 200 400 600 800 1000 12000
1
2
3
4
5
6
7
8
9
10
0 1000 2000 3000 4000 5000 6000 7000 8000 90000
0.5
1
1.5
2
2.5
3
3.5
W czasie dnia (15:30 – 17:00) W nocy (18:00-6:00)
Konsekwencje niestabilnego środowiska
Czas pobierania krytycznego zasobu może być wydłużony poprzez problemy sieciowe
Pomiary syntetyczne z wykorzystaniem przeglądarki
Pomiary z wykorzystaniem przeglądarki w znanym (referencyjnym) środowisku Określone warunki
Jakie łącze Jaki dostawca usługi Jaką przeglądarką
Jaka wiele metryk Czas pobieranie dokumentu HTML Zdarzenia Java Script PageIndex, SpeedIndex Własna metryka, zobacz https://www.youtube.com/watch?v=f5_iAzS3WMQ
High Performance Web Sites Rules
Minimize HTTP Requests Use a Content Delivery Network Avoid empty src or href Add an Expires or a Cache-Control
Header Gzip Components Put StyleSheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript and CSS Avoid Redirects
Remove Duplicate Scripts Configure ETags Make AJAX Cacheable Use GET for AJAX Requests Reduce the Number of DOM Elements No 404s Reduce Cookie Size Use Cookie-Free Domains for
Components Avoid Filters Do Not Scale Images in HTML Make favicon.ico Small and
Cacheable
Narzędzia
YSlow (darmowe) PageSpeed (darmowe) WebPageTest (darmowe)
Pomiary syntetyczne z wykorzystaniem przeglądarki
Narzędzia Selenium + mobProxy/net export (darmowe) WebPageTest (darmowe) SideSpeed.io (darmowe) NewRelic Catchpoint DynaTrace
Narzędzia dodatkowe ShowSlow (darmowe)
Real User Measurements
Pomiary czasów odpowiedzi strony przez prawdziwych użytkowników, czyli na urządzeniach użytkowników ich konfiguracji sieci
Narzędzia: Google Analytics NewRelic mPulse Catchpoint
Jakie wymagania
From the The Art of Application Performance Testing (after Martin 1988) Greater than 15 seconds Greater than 4 seconds 2 to 4 seconds Less than 2 seconds
Jupiter Research, Retail Web Site Performance: Consumer Reaction to a Poor Online Shopping Experience, June 2006 and PhoCusWright, Consumer Response to Travel Site Performance, June 2010 3 seconds lead to significant decrease in user satisfaction
Dodatkowe informacje
Heristic Test Strategy Model - www.satisfice.com/tools/htsm.pdf Radware Research - http://www.radware.com/Documents/?type=Research Steve Souders @Souders Ilya Grigorik @igrigorik Tammy Everts @tameverts