Last- und Performancetesting

Post on 24-Jan-2015

1.729 views 0 download

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

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

Jürg Stuker. CEO. Partner.

8. Dezember 2011

Namics.Last. Performance. Im Griff.2

Thema 1

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

8. Dez. 2011

Namics.Last. Performance. Im Griff.3

Thema 2

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

8. Dez. 2011

Namics.4 Last. Performance. Im Griff.

Verstehen

8. Dez. 2011

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

Browser Websitehttp/s

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

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

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

Browser Websitehttp/s

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

- Anzahl Requests- Reihenfolge

- Headerdaten / Protkoll

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

Browser Websitehttp/s

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

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/

Namics.10 Last. Performance. Im Griff.

Tools

8. Dez. 2011

Namics.Last. Performance. Im Griff.11

Tool 1: Firebug

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

8. Dez. 2011

Namics.Last. Performance. Im Griff.12

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

8. Dez. 2011

Namics.Last. Performance. Im Griff.13

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

8. Dez. 2011

Namics.Last. Performance. Im Griff.14

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

8. Dez. 2011

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

Namics.16 Last. Performance. Im Griff.

Last- und Performancetesting (mit Proxy Sniffer)

8. Dez. 2011

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

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

Namics.Last. Performance. Im Griff.19

Vorsicht

Lasttests generieren Last!

8. Dez. 2011

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

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)

Namics.22 Last. Performance. Im Griff.

Test ausführen und auswerten

8. Dez. 2011

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

Namics.Last. Performance. Im Griff.24

Interpretation

Viel Lesen

Erfahrung

...

8. Dez. 2011

Namics.Last. Performance. Im Griff.25

Beispiel 1

8. Dez. 2011

instabil

Kapazitätsgrenze

12Mb / Sekunde

Namics.Last. Performance. Im Griff.26

Beispiel 2

8. Dez. 2011

85Mb / Sekunde

Namics.Last. Performance. Im Griff.27

Beispiel 3

8. Dez. 2011

Problem mit Nebenläufigkeit

Namics.Last. Performance. Im Griff.28

Beispiel 4

8. Dez. 2011

wunderbar

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

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

Namics.31 Last. Performance. Im Griff.

Zusammenfassung

8. Dez. 2011

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

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

juerg.stuker@namics.com@jstuker

8. Dezember 2011