Last- und Performancetesting

33
Internet Briefing. Developer Konferenz. Clientseitige Last- & Performancetesting. Namics. Jürg Stuker. CEO. Partner. 8. Dezember 2011

description

Im Rahmen der Developer Konferenz des Internet-Briefing zeige ich Last- und Performancetests mit Proxy Sniffer (http://www.proxy-sniffer.com/). Die Präsentation dient dabei als Einleitung und Begleitung. Die Demo ist hier kurz zusammengefasst: http://www.youtube.com/watch?v=kP7ZxGTBync

Transcript of Last- und Performancetesting

Page 1: Last- und Performancetesting

Internet Briefing. Developer Konferenz.Clientseitige Last- & Performancetesting. Namics.

Jürg Stuker. CEO. Partner.

8. Dezember 2011

Page 2: Last- und Performancetesting

Namics.Last. Performance. Im Griff.2

Thema 1

Verstehen was zwischen User Agent und Server geschwatzt wird...

8. Dez. 2011

Page 3: Last- und Performancetesting

Namics.Last. Performance. Im Griff.3

Thema 2

Verhalten der Anwendung unter Last (#User und #Traffic)

8. Dez. 2011

Page 4: Last- und Performancetesting

Namics.4 Last. Performance. Im Griff.

Verstehen

8. Dez. 2011

Page 5: Last- und Performancetesting

Namics.58. Dez. 2011 Last. Performance. Im Griff.

Browser Websitehttp/s

Welche Elemente lädt der Browser?- unconditional request- conditional request

Page 6: Last- und Performancetesting

Namics.Last. Performance. Im Griff.6

Unconditional versus conditional

Unconditional (leerer Cache / erster Besuch)

Conditional (hat das/ein Element lokal)

8. Dez. 2011

Browser WebsiteGET

If-Modified-Since?Browser Website

304

Page 7: Last- und Performancetesting

Namics.78. Dez. 2011 Last. Performance. Im Griff.

Browser Websitehttp/s

Was lädt der Browser?- Quelle- Grösse

- Anzahl Requests- Reihenfolge

- Headerdaten / Protkoll

Page 8: Last- und Performancetesting

Namics.88. Dez. 2011 Last. Performance. Im Griff.

Browser Websitehttp/s

Welche Elemente lädt der Browser?- im Vergleich zur alten Website

Page 9: Last- und Performancetesting

Namics.Last. Performance. Im Griff.9

Lesen...

must should

http://stevesouders.com/

http://code.google.com/speed/articles/

8. Dez. 2011

Caching verstehen!

z.B. http://www.mnot.net/cache_docs/

Page 10: Last- und Performancetesting

Namics.10 Last. Performance. Im Griff.

Tools

8. Dez. 2011

Page 11: Last- und Performancetesting

Namics.Last. Performance. Im Griff.11

Tool 1: Firebug

https://addons.mozilla.org/de/firefox/addon/firebug/

8. Dez. 2011

Page 12: Last- und Performancetesting

Namics.Last. Performance. Im Griff.12

Tool 2: http://www.webpagetest.org/

8. Dez. 2011

Page 13: Last- und Performancetesting

Namics.Last. Performance. Im Griff.13

Tool 3: http://www.proxy-sniffer.com/

8. Dez. 2011

Page 14: Last- und Performancetesting

Namics.Last. Performance. Im Griff.14

Tool 4: http://www.charlesproxy.com/ (USD 50)

8. Dez. 2011

Page 15: Last- und Performancetesting

Namics.Last. Performance. Im Griff.15

Wann welches Tool (Fokus Ladeverhalten)?

Firebug Webpagetest Charles Proxy Sniffer

Browser nur FFox ausgewählte alle alle

Testpunkt lokal remote(unkontrolliert)

lokal lokal / remote(kontrolliert)

Details ++ - ++ +

Aufzeichnung nein nein ja ja

Automati-sierung

nein nein nein ja

Kosten gratis gratis USD 50 gratis / Lizenz

für Mobile nein nein ja (Proxy) ja (Proxy)

Spezialität - Clientcode Analyse

- Übersicht

- Sicht “aus dem Internet”

- Throttling- Rewrite- FFox Menu

- CMD Line- Lasttest

8. Dez. 2011

Sackmesser Fast Food Rolls Royce Alles drin

Page 16: Last- und Performancetesting

Namics.16 Last. Performance. Im Griff.

Last- und Performancetesting (mit Proxy Sniffer)

8. Dez. 2011

Page 17: Last- und Performancetesting

Namics.Last. Performance. Im Griff.17

Was?

Lastverhalten und Performance

Auslieferungszeit der Seiten (Usersicht)

Anzahl parallele Users

benötigte Bandbreite

Stabilität

über Zeit Memory Leaks & Overflows

unter Last Concurrency & Deadlocks

Fittness der Infrastruktur

Reproduktion von Problemen für Fixing

8. Dez. 2011

Page 18: Last- und Performancetesting

Namics.Last. Performance. Im Griff.18

Wann?

8. Dez. 2011

AnforderungenProof ofConcept Entwicklung Going Live Betrieb

Test eingesetzter Frameworks

Test der Anwendung

Integration / Deployment

Bei jedem Release / Fix

Spezifikation der Bedürfnisse• gleichzeitigen

User• Anzahl Requests• User Stories• Antwortszeit / -

verteilung

Page 19: Last- und Performancetesting

Namics.Last. Performance. Im Griff.19

Vorsicht

Lasttests generieren Last!

8. Dez. 2011

Page 20: Last- und Performancetesting

Namics.Last. Performance. Im Griff.20

Komponenten von Proxy Sniffer

Nur zwei Dateien: prxsniff.jar (16.4 MB) and prxsniff.key

Gute Doku

8. Dez. 2011

port 7990WebAdmin / GUI

port 7993Exec Agent

port 7999HTTP Proxy

aufzeichnen

ausführen

port 7995Job Controller

Page 21: Last- und Performancetesting

Namics.Last. Performance. Im Griff.21

Ablauf einer Testsequenz

8. Dez. 2011

Szenarioaufzeichnen

Validieren(Aufzeichunganpassen)

Test generieren(java)

Test kompilieren(class)

Test ausführen

Test auswerten

anpassen (onething at the time)

Page 22: Last- und Performancetesting

Namics.22 Last. Performance. Im Griff.

Test ausführen und auswerten

8. Dez. 2011

Page 23: Last- und Performancetesting

Namics.Last. Performance. Im Griff.23

Demo von Proxy Sniffer

Am Vortrag live gezeigt und sich hier im Überblick:

http://www.youtube.com/watch?v=kP7ZxGTBync

8. Dez. 2011

Page 24: Last- und Performancetesting

Namics.Last. Performance. Im Griff.24

Interpretation

Viel Lesen

Erfahrung

...

8. Dez. 2011

Page 25: Last- und Performancetesting

Namics.Last. Performance. Im Griff.25

Beispiel 1

8. Dez. 2011

instabil

Kapazitätsgrenze

12Mb / Sekunde

Page 26: Last- und Performancetesting

Namics.Last. Performance. Im Griff.26

Beispiel 2

8. Dez. 2011

85Mb / Sekunde

Page 27: Last- und Performancetesting

Namics.Last. Performance. Im Griff.27

Beispiel 3

8. Dez. 2011

Problem mit Nebenläufigkeit

Page 28: Last- und Performancetesting

Namics.Last. Performance. Im Griff.28

Beispiel 4

8. Dez. 2011

wunderbar

Page 29: Last- und Performancetesting

Namics.Last. Performance. Im Griff.29

Wie?

Richtig schwierig ist das Szenario

User Stories als Grundlage (“follow the money”)

Auftraggeber / Domänenexperte

Analytics (zuzüglich Sicherheitsmarge)

Unterschiedliche Testaspekte

Bandbreite ein grosses Element max. wiederholen

Anzahl Transaktionen: Kurze Testzyklen mit steigender Nutzerzahl 1, 5, 25, 50, 75, 100... (Asymptote / Crash)

Long Runner Wenig Last aber sehr lange

System unter Last stoppen und starten

8. Dez. 2011

Page 30: Last- und Performancetesting

Namics.Last. Performance. Im Griff.30

Wo klemmts (typischerweise)?

Network (Pipe, Router, Firewall)

< 1%

Load Balancer

5 %

Reverse Proxy (Produkt)

5 %

Reverse Proxy (Konfiguration)

10 %

OS Konfiguration (TCP/IP Stack)

5 %

Framework

10 %

Konfiguration der Anwendung

20 %

Programmcode der Anwendung

40 %

Datenbankmanagementsystem

5%

8. Dez. 2011

Quelle: David Fischer

Page 31: Last- und Performancetesting

Namics.31 Last. Performance. Im Griff.

Zusammenfassung

8. Dez. 2011

Page 32: Last- und Performancetesting

Namics.Last. Performance. Im Griff.32

Zusammenfassung

IMMER testen

Produkteigentümer definiert die Anforderungen

früh im Projekt testen (aber spät optimieren)

Möglichst nahe am Produktionssystem testen

90% der Requests genügen (ausser bei Fehlern)

Guten Szenarien sind die Knacknuss

8. Dez. 2011

Page 33: Last- und Performancetesting

Internet Briefing. Developer Konferenz.Clientseitige Last- & Performancetests. Namics.

[email protected]@jstuker

8. Dezember 2011