Proxy Sniffer V4.1-C User`s Guide Deutsche Ausgabe

Transcrição

Proxy Sniffer V4.1-C User`s Guide Deutsche Ausgabe
Ingenieurbüro David Fischer GmbH
Mühlemattstrasse 61, CH-3007 Bern
Switzerland
http://www.proxy-sniffer.com
E-Mail: [email protected]
Proxy Sniffer V4.1-C
User’s Guide
Deutsche Ausgabe
© 2008 by Ingenieurbüro David Fischer GmbH
Alle Rechte vorbehalten
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Inhaltsverzeichnis
1
2
3
4
5
6
Einleitung .................................................................................................................................................................................................................... 5
1.1
Menü-Übersicht und Navigation ........................................................................................................................................................................... 5
Installation ................................................................................................................................................................................................................... 8
2.1
System-Anforderungen ........................................................................................................................................................................................ 8
2.2
Windows Installation............................................................................................................................................................................................. 9
2.3
Installation bei Unix-ähnlichen Betriebssystemen ............................................................................................................................................... 10
2.4
Architektur-Übersicht .......................................................................................................................................................................................... 11
Konfiguration des Web-Browsers .............................................................................................................................................................................. 12
3.1
Lokale Popup-Fenster Zulassen ......................................................................................................................................................................... 13
3.2
JavaScript Einstellungen für Mozilla Firefox ....................................................................................................................................................... 15
3.3
Umkonfigurieren des Web-Browsers zur Aufzeichnung ...................................................................................................................................... 16
3.3.1
Beispiel Proxy-Konfiguration für Microsoft Internet Explorer: ....................................................................................................................... 17
3.3.2
Beispiel Proxy-Konfiguration für Mozilla Firefox 2 ........................................................................................................................................ 18
3.3.3
Web-Browser Warnung bei verschlüsselten Verbindungen ......................................................................................................................... 19
Aufzeichnen von Web-Browser Sessions .................................................................................................................................................................. 20
4.1.1
Löschen des Web-Browser Caches und der Cookies im Internet Explorer 7 ............................................................................................... 21
4.1.2
Löschen des Web-Browser Caches und der Cookies im Mozilla Firefox 2 .................................................................................................. 21
4.2
Aufzeichnen nachfolgender Web-Seiten............................................................................................................................................................. 22
4.3
Abspeichern der Aufzeichnung ........................................................................................................................................................................... 23
4.4
Kontrolle der aufgezeichneten Web-Session ...................................................................................................................................................... 24
4.4.1
Kontrolle der getesteten Web-Server .......................................................................................................................................................... 24
4.4.2
Kontrolle der automatischen Inhaltsüberprüfung ......................................................................................................................................... 25
4.5
Session Cutter.................................................................................................................................................................................................... 27
4.6
Weitere Hinweise zum Aufzeichnen von Web-Browser Sessions ....................................................................................................................... 28
4.6.1
Unterstütze HTTP/S Clients ........................................................................................................................................................................ 28
4.6.2
Proxy-Recorder und GUI Einstellungen (Personal Settings Menü) .............................................................................................................. 28
4.6.2.1
Proxy Kaskadierung (Connect to Next Proxy)....................................................................................................................................... 29
4.6.2.2
HTTPS Settings ................................................................................................................................................................................... 29
4.6.2.3
NTLM Authentication ............................................................................................................................................................................ 30
4.6.2.4
HTTPS Client Certificate Authentication ............................................................................................................................................... 30
4.6.2.5
GUI Settings ......................................................................................................................................................................................... 31
Inner Loops ............................................................................................................................................................................................................... 32
5.1
Bedingtes Ausführen von Teilen der Web-Session ............................................................................................................................................. 33
Nachbearbeiten der Web Session – dynamische Session-Parameter ....................................................................................................................... 34
6.1
Variablen Handler (Var Handler) ........................................................................................................................................................................ 36
6.2
Input Files .......................................................................................................................................................................................................... 37
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 2 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.2.1
Weitere Hinweise zu Input Files .................................................................................................................................................................. 42
6.3
User Input Fields ................................................................................................................................................................................................ 42
6.3.1
Weitere Hinweise zu User Input Fields ........................................................................................................................................................ 45
6.4
Dynamisch ausgetauschte Session-Parameter .................................................................................................................................................. 47
6.4.1
Automatische Behandlung von dynamisch ausgetauschten Session-Parametern (Var Finder) ................................................................... 48
6.4.2
Manueller Extrakt von dynamisch ausgetauschten Session-Parametern ..................................................................................................... 50
6.4.3
Ersetzen von Textmustern........................................................................................................................................................................... 54
6.4.4
Extrahieren und Zuweisen von Werten von/an SOAP- und XML-Daten....................................................................................................... 55
6.5
HTTP File-Uploads ............................................................................................................................................................................................. 56
6.6
Zusammenfassung der am häufigsten verwendeten Extrakt- und Zuweisungs-Operationen .............................................................................. 57
6.7
Direkte Definition von Variablen (stand-alone Variablen) .................................................................................................................................... 58
6.8
J2EE URL-Rewriting .......................................................................................................................................................................................... 59
7 Erzeugen des Lasttest-Programms ........................................................................................................................................................................... 61
7.1
Lasttest-Programme mit Input Files .................................................................................................................................................................... 67
8 Ausführen von Lasttest-Programmen ........................................................................................................................................................................ 68
8.1
Exec Agent Jobs ................................................................................................................................................................................................ 72
8.1.1
Real-Time Job Statistik ............................................................................................................................................................................... 73
8.1.2
Laden des Statistik-Files ............................................................................................................................................................................. 75
8.1.3
Jobs Menü (Exec Agents) ........................................................................................................................................................................... 76
8.2
Cluster-Jobs ....................................................................................................................................................................................................... 77
8.2.1
Real-Time Cluster-Job Statistik ................................................................................................................................................................... 78
8.2.2
Laden des Statistik-Files von Cluster-Jobs .................................................................................................................................................. 79
8.2.3
Jobs Menü (Cluster) .................................................................................................................................................................................... 81
8.3
Scripting von Lasttest-Jobs ................................................................................................................................................................................ 82
8.4
Wiederholen von Lasttest-Jobs .......................................................................................................................................................................... 82
8.5
Project Navigator ................................................................................................................................................................................................ 85
8.5.1
Konfiguration des Project Navigator Haupt-Directories ................................................................................................................................ 87
9 Auswerten der Messergebnisse ................................................................................................................................................................................ 88
9.1
Detailergebnisse ................................................................................................................................................................................................ 89
9.1.1
Test Scenario .............................................................................................................................................................................................. 90
9.1.2
Diagram: Response Time per Page ............................................................................................................................................................ 90
9.1.3
Results per URL Call (Overview) ................................................................................................................................................................. 91
9.1.4
Results per URL Call (Details) ..................................................................................................................................................................... 92
9.1.5
Diagram: Response Time Percentiles ......................................................................................................................................................... 93
9.1.6
Diagram: Top Time-Consuming URLs ......................................................................................................................................................... 94
9.1.7
Diagram: Concurrent Users ......................................................................................................................................................................... 94
9.1.8
Diagram: Average Session Time ................................................................................................................................................................. 95
9.1.9
Diagram: Web Transaction Rate ................................................................................................................................................................. 95
9.1.10 Diagram: Completed Loops ......................................................................................................................................................................... 96
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 3 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.11 Diagram: Average Network Connect Time .................................................................................................................................................. 96
9.1.12 Diagram: Total Network Throughput ............................................................................................................................................................ 97
9.1.13 Diagram: HTTP Keep-Alive Efficiency ......................................................................................................................................................... 97
9.1.14 Diagram: SSL Cache Efficiency................................................................................................................................................................... 98
9.1.15 Diagram: Session Failures .......................................................................................................................................................................... 98
9.1.16 Diagram: Top Error Types ........................................................................................................................................................................... 99
9.1.17 Diagram: Number of Errors per Page .......................................................................................................................................................... 99
9.1.18 Diagram: Number of Errors per URL ......................................................................................................................................................... 100
9.2
Error-Snapshots ............................................................................................................................................................................................... 100
9.2.1
Pseudo-Fehlercodes ................................................................................................................................................................................. 104
9.2.2
Übersetzen der URL Test-Nummerierung ................................................................................................................................................. 104
9.3
Lastkurven-Diagramme .................................................................................................................................................................................... 105
9.4
Vergleichs-Diagramme ..................................................................................................................................................................................... 108
10
Konfiguration und Architektur bei verteilten Lasttests ........................................................................................................................................... 109
10.1 Konfiguration von weiteren Last-auslösenden Rechnern .................................................................................................................................. 110
10.2 Konfiguration von Last-auslösenden Clustern .................................................................................................................................................. 111
10.3 Starten von verteilten Lasttests ........................................................................................................................................................................ 112
11
Konfiguration vom mehreren IP Adressen pro Last-auslösenden Rechner .......................................................................................................... 113
11.1 Schritt 1: Konfiguration des Betriebsystems ..................................................................................................................................................... 114
11.1.1 Windows ................................................................................................................................................................................................... 114
11.1.2 Unix-ähnliche Betriebssysteme ................................................................................................................................................................. 114
11.2 Schritt 2 und 3: Konfiguration des Exec Agents und Starten des Testlaufs ....................................................................................................... 115
12
Lasttest Plug-Ins .................................................................................................................................................................................................. 116
12.1 Plug-In Template Generator ............................................................................................................................................................................. 116
13
Manuelle Anpassungen an Java Lasttest-Programmen / Java API ...................................................................................................................... 120
13.1 Externe Klassen und Jar-Libraries.................................................................................................................................................................... 121
13.2 Direkter Zugriff auf Messergebnisse ................................................................................................................................................................. 122
14
Web Tools ........................................................................................................................................................................................................... 124
14.1 Page Scanner .................................................................................................................................................................................................. 125
14.1.1 Eingabe-Parameter, Fortschritts-Anzeige und Abspeichern des Scan-Resultats ....................................................................................... 126
14.1.2 Analyse des Scan-Resultats...................................................................................................................................................................... 130
14.1.2.1 Analyse der Scan-Details ................................................................................................................................................................... 131
14.1.3 Konvertierung des Scan-Resultats in eine Web-Browser Session ............................................................................................................. 136
15
Hersteller und Support ......................................................................................................................................................................................... 138
UNIX is a registered trademark of The Open Group in the U.S. and other countries. Solaris and Java are trademarks or registered trademarks of Sun Microsystems, Inc., in the United
States and other countries. Windows is a trademark of Microsoft Corporation.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 4 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
1 Einleitung
Wir danken Ihnen für den Gebrauch des Web Lasttest Produkts Proxy Sniffer.
Sie erhalten ein leistungsfähiges Produkt, das in der Regel einfach und weitgehend intuitiv bedienbar ist. Dennoch sind einige Konzepte nicht sofort
durchschaubar, so dass wir Sie bitten, diese Bedienungsanleitung möglichst vollständig zu lesen. Für Ihren Lasttest drücken wir Ihnen schon jetzt den
Daumen.
1.1
Menü-Übersicht und Navigation
Die Menüführung ist bei Proxy Sniffer etwas anders
als bei anderen Programmen. Die Menüführung
erfolgt immer Prozess- und Kontextbezogen, d.h. es
werden innerhalb eines Fensters nur diejenigen
Option dargestellt welche gerade relevant sind. Es
gibt kein eigentliches Hauptmenü oder Hauptfenster
(auch wenn es ein Menü mit diesem Namen gibt).
Dafür gibt es drei Menüs welche zentral sind:
Das „Main Menü“ erlaubt das Aufzeichnen von
Web-Browser Sessions sowie das Nachbearbeiten
bzw. das Erweitern der gewonnen Aufzeichnung mit
zusätzlichen Funktionalitäten. Über das
Zwischenmenü „Generate Load Test Program“
kann danach die Aufzeichnung in ein lauffähiges
Lasttest-Programm konvertiert werden.
Der „Project Navigator“ erlaubt das Verwalten der
aufgezeichneten Web-Browser Sessions und das
Verwalten der Lasttest-Programme. Darüber hinaus
können die Lasttest-Programme vom Projekt
Navigator aus gestartet werden und legen ihre Testbzw. Mess-Resultate wiederum im Project Navigator
ab.
Das „Analyse Load Test Menu“ erlaubt das
analysieren der Test- und Mess-Resultate sowie
den Vergleich von verschiedenen Testresultaten
untereinander.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 5 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Von diesen 3 zuvor erwähnten zentralen Menüs arbeitet nur der „Project Navigator“ mit permanenten d.h. Disk-gestützten Daten. Die beiden anderen
Menüs (wie auch die meisten weitern Menüs) arbeiten mit transienten Daten welche sich im temporären Speicherbereiche des Programms befinden.
Die weiteren Menüs welche in der vorangehenden Darstellung eingezeichnet sind haben folgende Funktionalitäten:
Web Tools / Page Scanner: erlaubt das automatische Scannen ganzer Web-Sites inklusive aller darin enthaltenen Web-Pages. Das Resultat
kann direkt in eine Web-Browser Session umgewandelt werden aus der wiederum ein Lasttest-Programm erzeugt werden kann. Dies stellte eine
schnelle und automatisch durchführbare Alternative zum manuellen Aufzeichnnen von Web-Browser Sessions im „Main Menu“ dar, welche
jedoch nur zum Testen von einfach aufgebauten Web-Sites angewandt werden kann. Eigentliche Web-Applikationen können hingegen nur mit
manuell, im „Main Menu“ aufgezeichneten Web-Browser Sessions, getestet werden.
Var Finder: erlaubt eine schnellen Überblick über alle ausgetauschten GGI- und Formular-Parameter einer ganzen Web-Browser Session.
Mittels dieses Menüs können zudem dynamisch ausgetauschte Session-Parameter automatisch mit einem Maus-Klick nachbehandelt werden
(z.B. .NET VIEWSTATE-Parameter).
URL Details / Var Handler: zeigt einerseits alle Details eines aufgezeichneten URL-Aufrufs an. Andererseits können im „Var Handler“ auch
Input-Files definiert und deren Inhalt URL-Parametern zugewiesen werden, was z.B. das Anmelden an eine Web-Applikation mittels
unterschiedlichen Benutzeraccounts erlaubt. Mittels des „Var-Handlers“ können auch eine Vielzahl vom weiteren Lasttest Programm-Optionen
dynamisch behandelt werden wie z.B. die Abänderung des zu testenden Web-Server(-Namens).
Response Test Configuration: Proxy Sniffer prüft während eines Lasttests nebst dem HTTP Status-Code der URL-Aufrufe auch den
empfangenen Inhalt der Web-Pages mittels eines automatisch angewandten heuristischen Verfahrens um sogenannte „false positive“
Messungen auszuschliessen. Mittels dieses Menüs kann der automatische angewandte Inhalts-Test manuell modifiziert werden.
Session Cutter: erlaubt das Zusammenschneiden einer oder mehrerer aufgezeichneten Web-Browser Sessions zu einer neuen Web-Browser
Session – analog einem Schneidetisch auf dem ein Film zusammengeschnitten wird. Zusätzlich können Web-Browser Sessions auch von
externen Definitions-Files importiert werden.
Execute Load Test: zeigt die wichtigsten Statistiken eines Lasttests während dessen Ausführung in „real-time“ an. Eventuell aufgetretene Fehler
können auch bereits während des laufenden Lasttests dargestellt und analysiert werden.
Load Curve Diagrams: zeigt die Lastkurven eines Web-Servers bzw. einer Web-Applikation an. D.h. wie sich die Antwortzeiten, der Durchsatz
und die Stabilität unter verschiedenen Lastbedingungen verhalten. Mittels dieses Menüs kann auch die maximale Leistungsfähigkeit eines WebServers oder einer Web-Applikation bestimmt werden.
Comparison Diagrams: zeigt einen grafischen Vergleich der gemessenen Antwortzeiten desselben Testprograms an, welches zu
unterschiedlichen Zeitpunkten ausgeführt wurde. So kann z.B. die Auswirkung von Server-Tuning-Massnahmen dargestellt werden, indem die
Antwortzeiten vor dem Tuning denen nach dem Tuning gegenübergestellt werden.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 6 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Detail Statistics & Diagrams: zeigt alle gesammelten Messresultate eines einzelnen Tests im Detail an. Dies umfasst über 21 verschiede
Statistiken und Diagramme.
Error Details: zeigt alle Details der während eines Lasttests aufgetretenen Fehler an. Das Menü kann zur Laufzeit eines Lasttests wie auch nach
dem Ende eines Lasttests aufgerufen werden.
Beachten Sie bitte, dass die Liste der vorgenannten Menus nicht vollständig ist. Zusätzlich stehen viele weitere Menüs zur Verfügung welche zum
Beispiel Daten exportieren, PDF-Reports erzeugen, Such-, Lösch- oder Filter-Funktionen enthalten oder die Konfiguration des Proxy Sniffer Produkts
betreffen. Weitere hier nicht erwähnte Menüs erlauben das Ausführen von Lasttests auf Remote-Systemen oder auch die Kombination von mehreren
Last-auslösenden Systemen zu einem Cluster. All diese weiteren Menüs sind im vorliegenden User‟s Guide beschrieben, sofern diese nicht
offensichtlich einfach bedienbar sind.
Bei allen Menüs steht Ihnen zusätzlich ein Menü-spezifischer Help-Text in Englischer Sprache zur Verfügung, welchen Sie über das Help-Icon des
entsprechenden Menüs situationsbezogen abrufen können. Beispiel:
Die nachfolgenden Kapitel enthalten nun eine Schritt-für-Schritt Anleitung zur Bedienung des Proxy Sniffer Produkts.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 7 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
2 Installation
Während der Installation unter Windows sind eventuell Administratoren-Rechte nötig, abhängig vom gewählten Installations-Directory. Bei der
unveränderten Übernahme der bei der Installation vorgeschlagenen Default-Werte sind keine Administratoren-Rechte nötig. Nach der Installation, d.h.
während des normalen Betriebs, benötigt das Produkt schreib-Zugriff auf das eigene Installations-Directory sowie dessen Sub-Directories.
2.1
System-Anforderungen
Unterstützt Betriebssysteme: Windows NT/2000/XP/2003/Vista oder Unix-ähnliches Betriebssystem: z.B. Solaris, Linux, BSD, Mac OS X …
Arbeitsspeicher: 512 - 1024 MB Ram (empfohlen), mindestens jedoch 256 MB Ram
Bildschirm: Auflösung mindestens 1280 x 800 Pixel, mit geringerer Auflösung ist die Bedienung des GUIs nicht mehr übersichtlich
Benötigter Disk-Speicherplatz: ca. 120 MB
Web Browser: Mozilla Firefox ab V1.0 oder Microsoft Internet Explorer ab V6.0
Optional: Adobe Reader zum Betrachten der Dokumentation und zum Betrachten der erzeugten PDF-Reports
Bei Unix-Systemen muss zusätzlich ein Java SDK 1.5 (5) vorinstalliert sein. Prüfen Sie mit which java und which javac oder auch mittels
find / -name javac -print ob auf dem Unix-System bereits ein Java SDK mit der richtigen Java-Version installiert ist.
Das Windows Installations-Kit enthält ein eigenes, integriertes Java 1.5 Kit, welches keinen Einfluss auf andere, bereits installierte Java Versionen hat.
Unter Windows ist keine Vorinstallation nötig.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 8 / 138
Proxy Sniffer V4.1-C User‟s Guide
2.2
Deutsche Ausgabe
Windows Installation
Starten Sie Prx41C.exe und folgen Sie den Anleitungen des Installations-Menüs. Nach der Installation befinden sich neue Einträge
unter Start  Programme  ProxySniffer und es werden zusätzlich auch 3 neue Desktop-Icons angelegt.
Falls Sie die neuen Desktop-Icon stören so können Sie diese löschen. Dieselben Einträge im Windows Start/Programme-Menü bleiben
dabei erhalten.
Starten Sie nun Proxy Sniffer indem Sie zuerst auf das Icon Proxy Sniffer Console und danach auf das Icon Proxy Sniffer GUI
klicken.
Unter Start  Programme  ProxySniffer finden Sie u.a. auch das
Application Reference Manual, welches die System-Architektur des
Produkts (in Englischer Sprache) genauer beschreibt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 9 / 138
Proxy Sniffer V4.1-C User‟s Guide
2.3
Deutsche Ausgabe
Installation bei Unix-ähnlichen Betriebssystemen
1. Erzeugen Sie das frei wählbare Installations-Directory von Hand, z.B. /usr/local/prxsniff oder /Users/<Ihr-name>/prxsniff (Mac OS X)
2. Kopieren Sie das File prxsniff.jar in das Installations-Directory (Sie können dieses File auch einer Windows-Installation entnehmen)
3. Erzeugen Sie das File prxsniff.key sowie das File ExecAgentTicket.dat im Installations-Directory mittels eines Texteditors (z.B. vi). Das File
prxsniff.key muss den GUI Lizenz-Key enthalten und das File ExecAgentTicket.dat muss das „Exec Agent License Ticket“ enthalten.
4. Setzen Sie die Java CLASSPATH Umgebungs-Variable so, dass diese das Installations-Directory, das Default-Directory ("."), sowie den Pfad
zum File prxsniff.jar enthält.
Beispiel 1: export CLASSPATH="/usr/local/prxsniff:.:/usr/local/prxsniff/prxsniff.jar"
Beispiel 2: export CLASSPATH=.:prxsniff.jar
5. Starten Sie Proxy Sniffer mit folgendem Befehl:
java -Xmx256m -Xbootclasspath/p:/usr/local/prxsniff/prxsniff.jar ProxySniffer -WebAdmin -JobController -ExecAgent -tz ECT
6. Starten Sie den Mozilla Firefox Web-Browser und geben Sie folgende URL ein http://127.0.0.1:7990
Alternativ zu den zuvor beschriebenen Schritten 4. Und 5. können Sie Proxy Sniffer auch im „Konsolen Window-Modus“ durch die Eingabe folgender
Befehle starten:
 cd /usr/local/prxniff – oder – cd /Users/< Ihr-name >/prxsniff
 export CLASSPATH=.:prxsniff.jar
 java -Xmx256m -Xbootclasspath/p:prxsniff.jar ProxySnifferConsole -tz ECT
Hinweis: das -tz Argument ist die Zeitzone. Kapitel 6 des Application Reference Manual enthält eine
Liste aller Zeitzonen. Zusätzliche Argumente wie -jobdir oder -dgs könne auch angegeben werden.
Die entsprechende Beschreibung hierzu finden Sie in Kapitel 3.1 des Application Reference Manual.
Spezieller Hinweis für Mac OS X Server welche über kein X11 Display (kein Grafikadapter) verfügen:
verwenden Sie zusätzlich das Java Argument -Djava.awt.headless=true
Beispiel: java -Djava.awt.headless=true …
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 10 / 138
Proxy Sniffer V4.1-C User‟s Guide
2.4
Deutsche Ausgabe
Architektur-Übersicht
Beim Starten des Produkts werden 4 Server auf Ihrem lokalen Server gestartet:
1. Ein spezieller Proxy Server welcher zum Aufzeichnen von WebBrowser Sessions dient (Proxy Sniffer)
2. Ein integrierter Web-Server für das GUI (Web Admin)
3. Ein Server welcher das Ausführen von Lasttest-Jobs erlaubt
(Exec Agent)
4. Ein Server welcher die Kombination von mehreren Systemen bzw.
Exec Agents zu einem Last-auslösenden Cluster erlaubt (Job
Controller)
Die nachfolgenden TCP/IP Server Ports werden auf Ihrem lokalen System verwendet:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
TCP/IP Port Nummer
Beschreibung
7990
Integrierter Web-Server, GUI
(Web Admin)
7993
Lasttest ausführender Server
(Exec Agent)
7995
Unterstützung von Exec Agent Clustern (Job Controller)
7998
Interner Kommunikations-Port
7999
HTTP Proxy Port
7997
HTTPS Proxy Port
Alle Rechte vorbehalten
(Proxy Sniffer Server)
(Proxy Sniffer Server)
(Proxy Sniffer Server)
Seite 11 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
3 Konfiguration des Web-Browsers
Nachdem Sie Proxy Sniffer installiert und gestartet haben – und das URL http://127.0.0.1:7990 in Ihrem Web-Browser eingegeben haben – oder auf
das Icon Proxy Sniffer GUI geklickt haben, sehen Sie das “Main Menu”. Dieses wird auch als Web Admin bezeichnet:
Bevor Sie jedoch Web-Browser Sessions aufzeichnen können müssen Sie zuerst Ihren Web-Browser umkonfigurieren:
o
Lokale, vom eigenen Rechner erzeugte Popup-Fenster müssen zugelassen werden.
o
Ein spezieller, lokaler Proxy Server wurde bereits mit dem Produkt gestartet. Um eine Aufzeichnung einer Web-Browser Session vorzunehmen
müssen Sie Ihren Web-Browser so umkonfigurieren, dass der Datenverkehr zwischen Web-Browser und Web-Server (indirekt) durch den
lokalen Proxy Server des Produkts hindurch fliesst.
Diese zwei Konfigurationsänderungen werden nachfolgend genauer beschrieben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 12 / 138
Proxy Sniffer V4.1-C User‟s Guide
3.1
Deutsche Ausgabe
Lokale Popup-Fenster Zulassen
Das Web GUI erzeugt Popup-Fenster, welche vom eigenen Rechner stammen. Sie müssen darum den Web-Browser und gegebenenfalls weitere lokal
installierte Security-Software so konfigurieren, dass Popup-Fenster vom eigenen Rechner 127.0.0.1 zugelassen werden. Dies ist kein
Sicherheitsproblem, da Popup-Fenster von externen Web-Servern weiterhin blockiert bleiben.
Die nachfolgenden Screenshots zeigen, wie lokale Popup-Fenster beim Microsoft Internet Explorer zugelassen werden. Verwenden Sie dazu immer
die fixe IP Loopback-Adresse 127.0.0.1. Gehen Sie wie folgt vor wenn der Internet Explorer diesbezüglich einen Sicherheitshinweis anzeigt:
Alternativ können Sie den Internet Explorer
auch direkt über
Extras  Internetoptionen  Datenschutz
konfigurieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 13 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Die nachfolgenden Screenshots zeigen, wie lokale Popup-Fenster beim Mozilla Firefox zugelassen werden:
Hinweis: falls Sie Google Toolbar verwenden müssen Sie auch dessen Popup-Blocker konfigurieren bzw. de-aktivieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 14 / 138
Proxy Sniffer V4.1-C User‟s Guide
3.2
Deutsche Ausgabe
JavaScript Einstellungen für Mozilla Firefox
Falls Sie Firefox zur Bedienung des Web Admin GUIs verwenden so sollten Sie noch zusätzlich folgende JavaScript Einstellungen vornehmen:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 15 / 138
Proxy Sniffer V4.1-C User‟s Guide
3.3
Deutsche Ausgabe
Umkonfigurieren des Web-Browsers zur Aufzeichnung
Während der Aufzeichnung fliesst der Datenverkehr zwischen Web-Browser und Web-Server durch das Produkt hindurch, dazu wurde lokal auf Ihrem
Rechner ein so genannter HTTP/S Proxy-Server gestartet. Darum müssen Sie Ihren Web-Browser so konfigurieren, dass dieser den Proxy Server auf
Ihrem eigenen Rechner 127.0.0.1 verwendet. Dessen Ports sind 7999 für HTTP und 7997 für HTTPS. Beim verschlüsselten HTTPS Protokoll
entschlüsselt der lokale Proxy-Server die Daten zur Laufzeit. Sie erhalten darum im Web-Browser während der Aufzeichnung eine Warnungsmeldung
bezüglich des Server-Zertifikats, welche Sie (nur in diesem Zusammenhang) ignorieren können.
Hinweis: 127.0.0.1 ist keine echte TCP/IP Adresse sondern die virtuelle Loopback-Adresse des eigenen Rechners. D.h. jeder Rechner kann „sich selbst“
unter dieser Adresse ansprechen. Verwenden Sie immer 127.0.0.1 und nie eine reale Adresse zur Konfiguration.
Die Konfiguration des Proxy-Servers im Web-Browser sollten Sie nach dem Aufzeichnen einer Web-Browser Session wieder rückgängig machen. Die
Konfiguration wird nur zum Aufzeichnen, jedoch nicht bei beim Ausführen von Lasttests benötigt.
Falls Sie bereits firmenintern einen Proxy-Server verwenden und Aufzeichnungen gegenüber firmenexternen Web-Servern machen möchten, so
müssen Sie Proxy Sniffer zusätzlich mit Ihrem firmeninternen Proxy-Server kaskadieren. Das einsprechende Menü dazu finden sie im Proxy Sniffer
Hauptmenü unter Personal Settings, Kapitel 4.6.2.1.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 16 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
3.3.1 Beispiel Proxy-Konfiguration für Microsoft Internet Explorer:
Fall der Reiter “Connections” bzw. “Verbindungen” im Options-Menü nicht angezeigt wird, so hat ihre IT-Abteilung diesen abgeschaltet. Versuchen Sie
mittel regedit diesen wieder zu aktivieren: Setzen Sie dazu den Wert von "\HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet
Explorer\Control Panel\ConnectionsTab" von 1 auf 0 (0=eingeschaltet).
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 17 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
3.3.2 Beispiel Proxy-Konfiguration für Mozilla Firefox 2
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 18 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
3.3.3 Web-Browser Warnung bei verschlüsselten Verbindungen
Beim Aufzeichnen von verschlüsselten HTTPS-Verbindungen werden Sie von Web-Browser eine Warnungsmeldung erhalten, da Proxy Sniffer zur
Laufzeit zum Zweck der Aufzeichnung eine Entschlüsselung durchführt, und darum das originale Web-Server Zertifikat durch ein eigenes ersetzt.
Je nach Web-Browser Produkt welches Sie einsetzen sieht diese Warnungsmeldung anders aus. Klicken Sie gegebenenfalls mehrmals auf ignorieren /
weiterfahren / fortsetzen um die Aufzeichnung fortzusetzen.
Wichtiger Hinweis: ignorieren Sie solche Warnungen niemals, wenn Sie nicht mit Proxy Sniffer aufzeichnen – Ihre vermeintlich verschlüsselte
Verbindung könnte im Klartext von unberechtigten Dritten abgehört werden, oder von „Cyber Criminals" modifiziert bzw. missbraucht werden.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 19 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
4 Aufzeichnen von Web-Browser Sessions
Web-Browser Sessions müssen zuerst aufgezeichnet werden bevor daraus ein Lasttest-Programm erzeugt werden kann. Alternativ dazu können Sie für
einfache Anwendungszwecke auch das Page Scanner Tool verwenden (Kapitel 14.1). Tests gegenüber eigentlichen Web-Applikationen müssen jedoch
immer manuell aufgezeichnet werden. Hierzu benötigen Sie ein zweites Web-Browser Fenster um die Aufzeichnung vorzunehmen. Die Aufzeichnung
erfolgt in der Art, dass Sie im zweiten Browser-Fenster die Web-Browser Session manuell vor-surfen. Gehen Sie wie folgt vor:
1. Starten Sie ein zweites Web-Browser Fenster
2. Löschen Sie den Web-Browser Cache und alle Cookies * (im zweiten Web-Browser Fenster)
3. Klicken Sie im ersten Web-Browser Fenster, im Web Admin GUI, auf Start Record
4. Geben Sie im zweiten Web-Browser Fenster die erste URL des Ziel-Servers ein, welcher getestet werden soll (Start Web-Seite der
Aufzeichnung)
Die erste Web-Seite sollte nun aufgezeichnet sein. Klicken Sie zur Kontrolle im Web Admin GUI (erstes Fenster) rechts oben auf das Refresh Display
Icon. Dadurch erschein eine technische Darstellung der einzelnen URLs (HTML-File, Bilder etc.) der Web-Seite.
Hinweis: wenn Sie die Aufzeichnung der ersten Seite nicht sehen, so ist die Proxy-Konfiguration des Web-Browsers nicht richtig konfiguriert.
Erstes Web-Browser Fenster: Web Admin GUI
Zweites Web-Browser Fenster: Vor-Surfen der Web-Browser Session
* Loschen Sie den Web-Browser Cache und die Cookies jedes Mal
bevor Sie eine neue Web-Browser Session aufzeichnen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 20 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
4.1.1 Löschen des Web-Browser Caches und der Cookies im Internet Explorer 7
4.1.2 Löschen des Web-Browser Caches und der Cookies im Mozilla Firefox 2
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 21 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.2
Deutsche Ausgabe
Aufzeichnen nachfolgender Web-Seiten
Bevor Sie nun weitere Web-Seiten aufzeichnen – d.h. bevor Sie im zweiten Web-Browser Fenster auf einen Hyperlink klicken oder ein Formular
abschicken – müssen Sie einen Seitenwechsel-Kommentar (Page Break) eingeben. Der Grund liegt darin, dass der universelle Proxy Recorder nur
einzelne Teile eine Web-Seite wie HTML Dateien oder Bilder “sieht”, jedoch nicht erkennen kann, wann eine Seite anfängt und wie diese endet.
Gehen Sie für alle nachfolgenden Web-Seiten einer Aufzeichnung wie folgt vor:
1. Überlegen Sie zuerst, als was Sie im zweiten Browser-Fenster klicken würden, bzw. welches Formular Sie absenden würden: nur denken,
noch nicht klicken.
2. Geben Sie einen Seitenwechsel-Kommentar (Page Break) ein. Beschreiben Sie mit ein, zwei Stichworten, welche Web-Seite als nächstes
aufgezeichnet wird.
3. Führen Sie die geplante Aktion der Aufzeichnung nun durch: klicken Sie im zweiten Browser-Fenster auf den Hyperlink oder senden Sie das
Formular ab.
Erstes Browser-Fenster: Web Admin GUI
Zweites Browser-Fenster: Vor-Surfen der Web-Browser Session
?
Die Zeit in Sekunden, welche neben dem Seitenwechsel-Kommentar
steht, ist die natürliche Bedenkzeit zum Betrachten der Web-Seite
(user‟s think time) welche nachher im Lasttest pro Benutzer appliziert
wird, bevor die nächste Web-Seite aufgerufen wird. Der daneben
stehende Prozentwert ist die zufällige Abweichung von dieser Zeit, so
dass nicht alle Benutzer genau gleich lange warten bzw. überlegen.
Sie können diese Werte auch nachträglich noch ändern oder
mit Variablen versehen.
Klicken Sie auf Stop Record im Web Admin GUI, nachdem Sie die letzte Web-Seite aufgezeichnet haben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 22 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.3
Deutsche Ausgabe
Abspeichern der Aufzeichnung
Nach der Aufzeichnung sollten Sie nun die Web-Browser Session abspeichern. Geben Sie nebst dem File-Namen auch noch einen kurzen Kommentar
zur Web-Session ein, damit Sie sich später besser erinnern können, was aufgezeichnet wurde.
Nach dem Abspeichern erscheint das Projekt Navigator Menü. Sie
können später eine ausgezeichnete Web-Browser Session wieder
laden, indem Sie auf das entsprechende
Icon im Projekt
Navigator klicken.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 23 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.4
Deutsche Ausgabe
Kontrolle der aufgezeichneten Web-Session
Nachdem die Web-Browser Session aufgezeichnet wurde sollten Sie folgendes kontrollieren:
1. Enthält die Web-Browser Session ausschliesslich URL-Aufrufe der Web-Server, welche auch getestet werden sollen?
2. Ist die automatisch angewandte Inhalts-Überprüfung der Web-Seiten sinnvoll vor-konfiguriert?
4.4.1 Kontrolle der getesteten Web-Server
Bei einigen Web-Seiten sind eventuell Referenzen (1 Pixel grosse Bilder) auf externe Session-Tracking Server integriert, welch Sie nicht unter Last
setzen sollten. Beim Aufzeichnen von verschlüsselten HTTPS-Verbindungen mit dem Microsoft Internet Explorer überprüft dieser vor dem Zugriff auf die
eigentliche Web-Site oft zuvor mit einem HTTP Aufruf an Microsoft die Gültigkeit der Stammzertifikate. Solche URL-Aufrufe werden auch aufgezeichnet.
Diese sollten Sie jedoch aus der Web-Browser Session entfernen bevor Sie den Lasttest erzeugen.
Überprüfen Sie kurz bei jeder aufgezeichneten Web-Seite die URL-Aufrufe auf unerwünschte Rechner-Namen oder IP-Adressen, welche nichts mit der
Web-Applikation bzw. Web-Site zu tun haben, welche Sie testen möchten. Entfernen Sie solche URL-Aufrufe indem Sie diese löschen – mit einem Klick
auf das Delete-Icon eines URLs öffnet sich ein Menü welches dies erlaubt. Alternativ können Sie auch den Host-Filter nutzen, indem sie den RechnerNamen der Web-Applikation eingeben, oder einen unerwünschten Rechner-Namen herausfiltern in dem Sie ein Ausrufzeichen (!) vor den RechnerNamen im Host-Filter setzen. Mehrere Rechner-Namen, getrennt durch Kommas, können auch eingegeben werden.
?
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 24 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
4.4.2 Kontrolle der automatischen Inhaltsüberprüfung
Durch einen Klick auf das View Icon ändert sich die Ansicht der aufgezeichneten Web-Browser Session, so dass Sie nun kontrollieren können, wie der
empfangene Dateninhalt der URL-Aufrufe während des Lasttests überprüft wird. Eine gute Prüfung ist oft wichtig, da nur so in HTML-Seiten “verpackte”
Fehlermeldungen der Web-Applikation gefunden werden können. Verzichten Sie niemals auf die Überprüfung des Inhalts in dem Sie diese abschalten –
die Ergebnisse solcher Lasttests sind dadurch oft nicht gültig.
Bilder (*.gib, *.jpg) werden während des Lasttests aufgrund der empfangenden Grössen geprüft. Dies ist effizient und meistens problemlos. HTMLSeiten (und auch XML-Files) werden so geprüft, dass ein bestimmter Text in der Seite gefunden werden muss. Proxy Sniffer benutzt dazu einen
automatischen, heuristischen Algorithmus, welcher pro HTML-Seite nach einem möglichst passenden Text-Fragment in der Aufzeichnung des
entsprechenden URL-Aufrufs sucht und dieses als Kontrolle des Inhalts während des Lasttests appliziert. Diese sog. „Test-Strings“ der HTML-Seiten
sollten Sie kurz dahingehend prüfen, ob auch aussagekräftige Text-Fragmente darin enthalten sind.
?
Klicken Sie auf das Lupen-Icon, um einen Test-String zu ändern, Sie gelangen dadurch in das Response Test Configuration Menü des URL-Aufrufs.
Hinweis: nachdem Sie die Kontrolle des Inhalts abgeschlossen haben, sollten Sie nochmals auf das View Icon klicken um die ursprüngliche Ansicht
wiederherzustellen – nur diese zeigt Ihnen alle möglichen Optionen an (mit Ausnahme natürlich der Inhaltsüberprüfung).
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 25 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Im Response Test Configuration Menü sehen Sie, welche Text-Fragmente der HTML-Seite der heuristische Algorithmus bestimmt und bewertet hat.
Die Bewertungs-Skala (Quality) hat einen Bereich von 1.0 bis 0.0 wobei 1.0 die best mögliche Bewertung ist.
Falls das automatisch ausgewählte Text-Fragment zu wenig
aussagekräftig ist, können Sie dieses ändern, indem Sie auf einen roten
Balken in der List of proposed test-strings klicken oder indem Sie einen
freien Text im Feld String eingeben. Bei der Eingabe eines freien Texts
stehen Ihnen zusätzlich weitere Möglichkeiten zur Verfügung:
[!<Text>]
Dieser Text darf auf der Web-Seite nicht auftreten
#<Anzahl>[<Text>]
Der Text muss auf der Web-Seite genau <Anzahl> mal auftreten.
#<min. Anzahl>-[<Text>]
Der Text muss auf der Web Seite mindestens <min. Anzahl> mal
auftreten.
#<min. Anzahl>-<max. Anzahl>[<Text>]
Der Text muss auf der Web Seite mindestens <min. Anzahl> mal
auftreten, jedoch nicht mehr als <max. Anzahl>
Beispiele:
![ORA-01652]
Der Text „ORA-01652“ darf nicht auftreten
#1[Vielen Dank für Ihren Einkauf]
„Vielen Dank für Ihren Einkauf“ darf genau einmal auftreten.
#1-2[Ihre Zahlung]
Der Text „Ihre Zahlung“ muss einmal, darf jedoch höchstens zweimal
auftreten
Hinweis: Es ist darüber hinaus auch möglich, einzelnen (auch mehrere) Teile des Texts, oder den ganzen Text mit variablen Werten zu versehen,
welche z.B. von einem bestimmten Benutzer-Account abhängen. Das Format für das Einsetzen einer Variable ist {$<Variablen-Name>}. Beispiel:
„Willkommen {$Anrede} {$Name}“. Mehr Informationen zum Umgang mit Variablen erhalten Sie in Kapitel 6.1, Variablen Handler.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 26 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.5
Deutsche Ausgabe
Session Cutter
Das Session Cutter Menü erlaubt das
Zusammenschneiden einer oder mehrerer Web-Browser
Sessions zu einer neuen Web-Browser Session – analog
dem Zusammenschneiden eines Films auf einem
Schneidetisch.
Dabei können jedoch nur „rohe“ Web-Browser Sessions
zusammengeschnitten werden, d.h. solche Web-Browser
Sessions, bei denen noch keine Nachbearbeitung erfolgte
(mittels des „Var Finders“ – Kapitel 6.4.1 oder mittels des
„Var Handlers“ – Kapitel 6.1). Wird eine nachbearbeitete Web-Browser Session in den Session Cutter geladen, so erscheint eine Warnungsmeldung.
Bei einem Übergehen dieser Warnungsmeldung werden danach alle Nachbearbeitungen gelöscht, d.h. diese müssen gegebenfalls nach dem Aufruf des
Session Cutters neu appliziert werden.
Einzelne Web-Pages können selektiert werden, in dem auf
den Namen der Web-Page geklickt wird. Danach können
die selektierten Web-Pages mittels der Knöpfe „move here“
oder „copy here“ verschoben bzw. kopiert werden.
Nach der Zusammenschneiden der Web-Browser Session
kann das Session Cutter Menü durch einen Klick auf den
„Close“ Knopf oder durch einen erneuten Klick auf das
Session Cutter Icon verlassen werden.
Hinweis: zusätzlich können Web-Browser Sessions auch
von externen Definitions-Files importiert werden.
Klicken Sie auf das Help-Icon des Import-Dialogs um mehr
über das Datenformat von externen Definitions-Files zu
erfahren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 27 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.6
Deutsche Ausgabe
Weitere Hinweise zum Aufzeichnen von Web-Browser Sessions
4.6.1 Unterstütze HTTP/S Clients
Zur Bedienung des Web Admin GUIs werden nur die Web-Browser Produkte Microsoft Internet Explorer ab Version 6.0 sowie Mozilla Firefox ab Version
1.0 unterstützt. Zum Vor-Surfen (Aufzeichnen) der Web-Session kann jedoch jeder beliebige Web-Browser und ebenso technische HTML ClientApplikationen ohne Oberfläche verwendet werden. So kann z.B. eine Web-Session mit einem Opera Browser oder mit einem technischen SOAP Client
auch aufgezeichnet werden. Dabei fliesst die spezifische Charakteristik des HTML-Clients genau in das Lasttest-Programm ein, d.h. der spezifische
Datenverkehr wird während des Lasttests genau so simuliert, wie dieser aufgezeichnet wurde (inklusiv der Client-Kennzeichnung / HTTP Header Field
„User-Agent“).
4.6.2 Proxy-Recorder und GUI Einstellungen (Personal Settings Menü)
Mittel des Personal Settings können Sie diverse Optionen einstellen welche während einer Aufzeichnung
einer Web-Browser Session zu Anwendung kommen. Sie können den lokalen Proxy Server von Proxy
Sniffer mit einem weiteren, abgehenden Proxy-Server kaskadieren (z.B. dem Ihrer Firma). Auch können Sie
spezielle Authentisierungs-Methoden gegenüber einer Web-Applikation setzen, wie NTLM und X509 ClientZertifikat basierende Authentisierung. Eine spezielle Konfiguration ist jedoch nicht nötig für HTML Formularbezogene Authentisierungs-Verfahren oder für Basic- oder Digest-Authentication.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 28 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.6.2.1
Deutsche Ausgabe
Proxy Kaskadierung (Connect to Next Proxy)
Checkbox im Titel: diese muss auf aktiv gesetzt werden damit die Proxy Kaskadierung wirksam wird.
Hinweis: um einen Lasttest über einen Proxy Server auszuführen müssen Sie später beim Erzeugen des Lasttest-Programms, im Menü „Generate
HTTP(S) Load Test Program“ (Kapitel 7) die Option „Load Test over HTTP(S) Proxy" verwenden.
Eingabefelder:
Next Proxy HTTP Host: DNS-Name oder IP-Adresse des kaskadierten Proxy Servers für unverschlüsselte HTTP-Verbindungen.
Next Proxy HTTP Port: TCP/IP Port Nummer des kaskadierten Proxy Servers für unverschlüsselte HTTP-Verbindungen.
Next Proxy HTTP Cache disabled: falls diese Checkbox aktiviert ist so wird der kaskadierten Proxy Server angewiesen, den übertragenen
Inhalt nicht zu cachen (empfohlene Option).
Next Proxy HTTPS Host: DNS-Name oder IP-Adresse des kaskadierten Proxy Servers für verschlüsselte HTTPS-Verbindungen.
Next Proxy HTTPS Port: TCP/IP Port Nummer des kaskadierten Proxy Servers für verschlüsselte HTTPS-Verbindungen.
Next Proxy Auth Username: Benutzername, falls der Zugriff auf den kaskadierten Proxy Server eine Authentisierung benötigt.
Next Proxy Auth Password: Passwort, falls der Zugriff auf den kaskadierten Proxy Server eine Authentisierung benötigt.
No Next Proxy for Host/Domain: Ausschluss-Liste von Host- oder Domain-Namen, für welche der kaskadierte Proxy Server nicht verwendet
werden soll. Die einzelnen Host- oder Domain-Namen müssen durch Kommas oder Strichpunkte getrennt werden.
4.6.2.2
HTTPS Settings
Mittels diesen Einstellungen können Sie das Verhalten des lokalen Proxy Servers bei der Aufzeichnung von verschlüsselt übertragenen Daten
bestimmen.
Eingabefelder:
SSL Version: erlaubt das Setzen einer bestimmten SSL Protokoll-Version (v2 / v3 / TLS / automatisch bestimmt)
SSL Session Cache enabled: schaltet den Client-seitigen SSL-Cache ein (empfohlene Option).
SSL Session Cache Timeout: Verweildauer der SSL Verbindungsdaten im Client-seitigen SSL-Cache (falls dieser eingeschaltet ist)
Enhanced Compatibility Mode: aktiviert einen erweiterten SSL Kompatibilitätsmodus welcher auch Web-Server unterstützt, die das SSL
Protokoll nur fehlerhaft handhaben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 29 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
HTTPS Response Timeout: maximale Zeitdauer eines verschlüsselten HTTPS URL-Aufrufs. Wird diese Zeitdauer überschritten, so wird der
URL-Aufruf abgebrochen (keine Antwort vom Web-Server erhalten).
4.6.2.3
NTLM Authentication
Erlaubt dass sich der lokale Proxy Server gegenüber einer Web-Applikation mittels des NTLM Verfahrens Authentisiert. Checkbox im Titel: diese muss
auf aktiv gesetzt werden damit die NTLM Authentisierung wirksam wird.
Hinweis: um einen Lasttest mittels NTLM Authentisierung auszuführen müssen Sie später beim Erzeugen des Lasttest-Programms, im Menü
„Generate HTTP(S) Load Test Program“ (Kapitel 7), die Option „NTLM Authentication" verwenden. Dabei kann auch festgelegt werden, dass jedem
simulierten Lasttest-Benutzer einen eigener NTLM-Account zugewiesen wird.
Eingabefelder:
Protocol: NTLM Protokoll-Version welche zur Aufzeichnung verwendet wird (üblicherweise v2)
Domain: Name der Windows-Domain
Username: Windows-Benutzername, welcher zur Aufzeichnung verwendet wird
Password: Password des Windows-Benutzernamens
4.6.2.4
HTTPS Client Certificate Authentication
Erlaubt dass sich der lokale Proxy Server gegenüber einer Web-Applikation mittels eines X509 Client-Zertifikats Authentisiert. Das X509 Client-Zertifikat
muss im PKCS#12 File-Format vorliegen. Hinweis: „gewöhnliche“ HTTPS Verbindungen benötigen kein Client-Zertifikat.
Hinweis: um einen Lasttest mittels einer X509 Client-Zertifikats basierender Authentisierung auszuführen müssen Sie später beim Erzeugen des
Lasttest-Programms, im Menü „Generate HTTP(S) Load Test Program“ (Kapitel 7), die Option „HTTPS Client Certificates" verwenden. Dabei kann
auch festgelegt werden, dass jedem simulierten Lasttest-Benutzer einen eigenes X509 Client-Zertifikat bzw. PKCS#12 File zugewiesen wird.
Nach dem Laden eines Client-Zertifikats erscheint unter der Spalte „Active“ ein roter Balken. Sie müssen in den
roten Balken klicken, damit das Zertifikat bei der Aufzeichnung verwendet wird. Dadurch verwandelt sich dieser
in ein grünes Häkchen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 30 / 138
Proxy Sniffer V4.1-C User‟s Guide
4.6.2.5
Deutsche Ausgabe
GUI Settings
Eingabefelder:
Time Zone: erlaubt das Setzen der Zeitzone welche vom GUI und von den Lasttest-Programmen verwendet wird.
Number Format: erlaubt das Setzen der Formatierung von Zahlen bzw. des Tausender-Trennzeichens, welche vom GUI angewandt wird
(123„456.78 oder 123,456.78).
Background Color: erlaubt das Setzen der Hintergrundfarbe aller GUI-Windows.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 31 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
5 Inner Loops
Sie können optional auch innere Schlaufen (Inner Loops) um Teile der aufgezeichneten Web-Session definieren. Zum Beispiel sollen die Benutzer
während eines Lasttests sich einmal anmelden, danach aber mehrere aufgezeichnete Web-Seiten in einer Schlaufe wiederholen, und sich danach
wiederum (einmal) abmelden.
Die Inner Loops werden während des Lasttests durch (äussere) Loops umfasst, d.h. wenn Sie z.B. einen Lasttest mit 3 Loops pro Benutzer starten (und
eine unbegrenzte Zeitdauer angeben), so wird pro Benutzer die ganze aufgezeichnete Web-Session dreimal wiederholt und innerhalb einer solchen
Wiederholung repetitiv jeweils der bzw. die Inner Loops ausgeführt.
Inner Loops können nur um ganze Web-Seiten (eine oder mehrere)
umfassen, jedoch nicht einzelne URL-Calls. Sie können jedoch
auch nachträglich an beliebigen Stellen Page Breaks
(Seitenwechsel-Kommentare) einfügen.
Um einen Inner Loop zu definieren klicken Sie bei einem Page
Break ganz links auf der Zeile in dessen Item-Nummer.
Optionen:
Inner Loop Description: frei wählbarer Text zur Beschreibung des Inner
Loops (Pflichtfeld)
Inner Loop End Page: Web-Seite, auf welcher der Inner Loop endet (inklusiv
der URL-Calls dieser Seite).
Loop Iterations: Anzahl Iterationen welche ausgeführt werden. Die Anzahl
kann auch variabel sein und z.B. durch Werte eins Input Files (Kapitel 6.2) oder
User Input Fields gesteuert werden (Kapitel 6.3).
Action if planned duration of Load Test exceeded: steuert was passiert,
wenn die Zeitdauer des Lasttests erreicht wird und sich ein Benutzer gerade in
einem Inner Loop befindet.
- abort inner loop after current iteration: die aktuelle Iteration wird zu
Ende geführt. Danach wird der Inner Loop abgebrochen
- continue with iterations: alle noch ausstehenden Iterationen werden
wie geplant noch durchgeführt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 32 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Enable Pacing: bestimmt die minimale Zeitdauer einer Iterationen. Dauert eine Iteration kürzer als bei dieser Option angegeben, so wird die Iteration
verzögert. Die Zeitdauer kann auch variabel sein.
Hinweis: Inner Loops werden im Web Admin durch schwarze Balken links aussen gekennzeichnet und können auch verschachtelt definiert werden:
5.1
Bedingtes Ausführen von Teilen der Web-Session
Sind die Anzahl Iterationen eines Inner Loops von einer Variablen abhängig (Kapitel 6), so darf diese auch den Wert 0 annehmen, was bedeutet, dass
der Inner Loop übersprungen wird, so dass einzelnen Benutzer während des Lasttests Teile der Aufzeichnung nicht ausführen.
Die Variablen zur Steuerung der Iterationen werden dazu üblicherweise aus Input Files gewonnen, welche auf dem Sichtbarkeitslevel „new line per user“
oder „new line per loop“ definiert werden (Kapitel 6.2). Damit die Statistik des Lasttest-Programms stimmt ist es jedoch erforderlich, dass ein Inner Loop
mindestens einmal von irgendeinem Benutzer während des Lasttests durchlaufen wird.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 33 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6 Nachbearbeiten der Web Session – dynamische Session-Parameter
Nachdem eine Web-Session aufgezeichnet wurde kann das entsprechende Lasttest-Programm erzeugt werden (siehe Kapitel 7). Oft ist es jedoch
wünschenswert oder sogar erforderlich, dass die Web-Session zuvor nachbearbeitet wird. Mögliche Beispiele dazu sind:
Die aufgezeichnete Session enthält einen HTML Formular-basierender Login-Vorgang und Sie möchten diesen so anpassen, dass jeder
Benutzer einen eigenen Account währen des Lasttests verwendet.
Sie möchten Parameter der Web-Session variabel Gestalten, in der Art, dass diese Parameter vor jeder Testausführung individuell gesetzt
werden können, oder dass jeder Benutzer während des Lasttests eigene Parameter verwendet.
Die aufgezeichnete Session enthält vom Server erzeugte, dynamische Session-Parameter, welche zur Laufzeit aus Web-Seiten extrahiert und
nachfolgenden Web-Seiten übergeben werden müssen, damit der Test erfolgreich läuft. Beispielsweise eine Bestell-Nummer bei einem Web
Shop welche bei jedem Einkauf wieder ändert.
Das Nachbearbeiten von Web-Sessions geschieht mittels eines zentralen, GUI basierten Variablen Handlers, welcher alle dynamischen Änderungen
der Web-Session verwaltet. Die dazu nötigen Operationen erfolgen immer in zwei Schritten:
1. Extrahieren oder definieren einer oder mehrer dynamischer Variablen
2. Zuweisen einer oder mehrer dynamischer Variablen
Oder anders formuliert: eine Variable muss zuerst extrahiert werden, bevor diese einem Zweck zugewiesen werden kann. Viele Dialoge enthalten
jedoch auch Optionen zur automatischen Zuweisung um den Benutzerkomfort zu erhöhen. Das Extrahieren einer Variablen ist jedoch prinzipiell von
deren späteren Zuweisung vollkommen unabhängig. Es entstehen so viele mögliche Kombinationen welche flexibel angewandt werden können.
Variablen können über das GUI von folgenden Quellen extrahiert werden:
-
Aus Input Files, welche zur Laufzeit des Lasttests eingelesen werden (Kapitel 6.2)
-
Aus User Input Fields, d.h. aus frei definierbaren Programm-Optionen welche beim Starten eines Lasttests gesetzt werden können (Kapitel 6.3)
-
Aus Parametern von HTML-Formularen , z.B. Werte von „hidden“ Formular-Feldern (Kapitel 6.6)
-
Aus Werten von geparsten SOAP- und XML-Daten (Kapitel 6.4.4)
-
Aus Werten von CGI-Parametern von Hyperlinks, von HTTP-Umleitungen (Redirections) und von HTML Formular-Aktionen (Kapitel 6.6)
-
Aus beliebigen HTML oder XML Text-Fragmenten (Kapitel 6.4.2)
-
Aus Feldern von HTTP Response-Headern
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 34 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Eine Variable, gleichgültig wie diese extrahiert wurde, lässt sich mittels des GUI folgenden Zwecken zuweisen:
-
einem Wert eines HTML-Formular Felds (Kapitel 6.6)
-
einem Wert eines CGI-Parmeters eines URL-Aufrufs (Kapitel 6.6)
-
Werten von SOAP- und XML-Daten (Kapitel 6.4.4)
-
einem beliebigen Text-Fragment eines URL-Aufrufs (sowohl im HTTP Request-Headers wie auch im HTTP Request-Content, Kapitel 6.4.3)
-
dem Protokoll, Hostnamen oder TCP/IP Port eines URL-Aufrufs (Kapitel 6.6)
-
der User’s Think Time einer Web-Seite (Kapitel 6.3.1)
-
der Inhaltsüberprüfung einer Web-Seite: in der Web-Seite gesuchtes Textfragment oder Grösse-Kontrolle der empfangenen Daten (Kapitel
4.4.2)
-
der Anzahl Iterationen und dem Pacing Delay von Inner Loops (Kapitel 5)
-
den Werten von einigen HTTP Request-Header Feldern (die meisten HTTP Request-Header Feldern werden durch Proxy Sniffer automatisch
behandelt)
Jeder Variable ist immer an einem Sichtbarkeitslevel (sog. Scope) gebunden. Mögliche Sichtbarkeitslevels sind:
-
global: alle Benutzer des Lasttests sehen den selben Wert der Variablen.
-
user: obwohl die Variable nur einmal definiert wurde, sieht jeder Benutzer während des Lasttests seinen eigenen Wert, d.h. von der Variable
existieren so viele „virtuelle“ Kopien, wie Benutzer während des Lasttests emuliert werden.
-
loop: wird die aufgezeichnete Web-Browser Session vom gleichen Benutzer mehrmals repetitiv ausgeführt, so werden die einzelnen
Repetitionen als „Loop“ bezeichnet. Eine Variable mit dem Sichtbarkeitslevel loop kann während jeder Ausführung einer solchen Repetition pro
Benutzer einen anderen Wert annehmen.
-
inner loop: die Sichtbarkeit ist auf einen Teil der Web-Browser Session begrenzt, welcher innerhalb des Loops wiederum repetitiv ausgeführt
wird (siehe Kapitel 5).
Der Umgang mit Variablen erscheint auf den ersten Blick etwas komplex. Wie Sie aber noch sehen werden unterstützt Sie das GUI des Variablen
Händlers mit komfortablen und leistungsfähigen Dialogen, so dass Sie nach kurzer Zeit fähig sind, anspruchsvolle Problemstellungen mit wenigen
Maus-Klicks zu lösen. Programmierkenntnisse sind dazu nicht nötig.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 35 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.1
Deutsche Ausgabe
Variablen Handler (Var Handler)
Sie gelangen zum Variablen Handler Menü (auch Var Handler genannt), indem Sie auf ein beliebiges aufgezeichnetes URL klicken. Im linken Teil des
Fensters sehen Sie alle Details des aufgezeichneten URLs – welche von URL zu URL anders sind. Im rechten Teil sehen Sie den Variablen Handler,
welcher eine Zusammenfassung aller Variablen und deren Definitionen anzeigt – dieser Teil des Fensters bleibt für alle URL gleich.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 36 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.2
Deutsche Ausgabe
Input Files
Klicken Sie im Var Handler auf Add File… um ein neues Input File zu definieren und geben Sie den Namen des Input Files ohne Pfadangabe ein
Option
Beschreibung
File Scope
Definiert die Sichtbarkeit welche später die Variablen erhalten, welche aus diesem Input
File gewonnen werden:
global (one-line): macht hier oft wenig Sinn, da nur eine einzige Zeile während des
ganzen Lasttests gelesen würde.
new line per user: pro emulierten Benutzer wird während des Lasttests je eine Zeile
eingelesen. Dies ist der richtige Scope zum einlesen von Benutzer-Accounts
new line per loop: jedes Mal, wenn ein Benutzer einen Loop ausführt, wird eine neue
Zeile eingelesen. Dabei kann nicht gesteuert werden, welcher Benutzer welche ZeilenSequenzen erhält.
NL per inner loop: für jede Iteration eines Inner Loops, egal von welchem Benutzer diese
durchgeführt wird, wird eine neue Zeile eingelesen.
Line Order
Steuert, ob die Zeilen sequenziell oder in zufälliger Reihenfolge (randomized) eingelesen
werden.
Comment Tag
Einzelne Zeilen können im File auch auskommentiert werden. Das Kommentarzeichen am
Anfang der Zeile ist frei wählbar; es kann auch eine Zeichensequenz sein.
Var Delimiter
Variablen-Trennzeichen. Aus einer Zeile können mehrere Variablen gleichzeitig extrahiert
werden, welche durch ein Trennzeichen separiert sind.
Trim Extracted
Values
Steuert ob Leerzeichen am Anfang und am Ende der (aus den Zeilen) extrahierten Werte
entfernt werden sollen.
EOF Action
Steuert was während des Lasttests passiert, wenn alle Zeilen des Files bereits eingelesen
wurden, und nun eine weitere Zeile verlangt wird:
reopen file bedeutet, dass das File neu geöffnet wird. Wurde zusätzlich eine randomized
„Line Order“ gesetzt, so werden die Zeilen nun auch nochmals neu „gemischt“.
stop load test bedeutet, dass der Lasttest abbricht. Diese Option kann z.B. sinnvoll sein,
wenn eine Applikation das doppelte Anmelden mit gleichen Benutzer-Accounts nicht
unterstützt. Beachten Sie bitte, dass auch bei zufälliger „Line Order“ die EOF Bedingung
eintreten kann – dann wenn jede Zeile einmal gelesen wurde. Es gibt keine doppelten
Zeilennummern solange noch „zufällige“ Zeilen frei sind.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 37 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Nachdem ein Input File definiert wurde müssen Sie dieses noch erstellen bzw. ein bereits vorhandenes File kopieren.
Das Input-File muss in demselben Directory des Projekt Navigators sein, in sich später das Lasttest-Programm befindet. Öffnen Sie dazu das Projekt
Navigator Menü und wählen Sie ein bestehendes Directory aus, oder erzeugen Sie ein neues Directory:
Links oben im Projekt Navigator sehen Sie
das aktuelle Directory; hierhin oder in ein
entsprechendes Subdirectory sollten Sie
ein bestehendes Input-File kopieren.
Mittels des Icons können Sie im Projekt
Navigator ein neues, leeres File definieren
und dessen Inhalt eingeben. Klicken Sie
nach dessen abspeichern auf Refresh im
Projekt Navigator rechts oben.
Mittels des Icons können Sie ein neues
Subdirectory im Projekt Navigator anlegen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 38 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Kehren Sie nun wieder zum Var Handler zurück, indem Sie den Projekt Navigator mit dem Close Icon (rotes Kreuz, oben rechts) schliessen.
Als nächstes sollten Sie das korrekte Parsing des Input Files prüfen, indem Sie auf das Icon des Input Files klicken:
Nun können Sie die Variablen aus dem
Input File extrahieren, indem Sie auf
Das Variablen-Extraktor Icon klicken:
Optionen:
Line#Column bezeichnet aus welcher
Spalte (1, 2, 3 ..) der Zeile die Variable extrahiert
wird
Var Name bezeichnet den Variablen Namen.
Dieser darf nur aus den Zeichen A..Z, a..Z,
0..9 sowie _ bestehen und darf keine Leerzeichen
enthalten. Der Name darf nicht mit einem _
beginnen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 39 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Die vollständige Definition des Input-Files – noch ohne die Zuweisung der extrahierten Variablen – sieht in diesem Beispiel so aus:
Die roten Balken mit dem Text „password“ und „username“ sind die Namen der Variablen. Dahinter folgt in
eckigen Klammern der Sichtbarkeitslevel (Scope).
Die blauen Pfeile nach links bedeuten, dass der Wert der Variablen extrahiert wird. Am Ende der selben
Zeile erfolgt ein Hinweis, woraus der Extrakt gewonnen wird. Mit einem Klick auf die das Lupen-Icon
können weitere Einzelheiten dargestellt werden, wie der Wert der Variablen extrahiert wird. Sie können
dabei auch die Definition des entsprechenden Variablen-Extraktors löschen.
Durch einen Klick auf einen der roten Balken können Sie die Definition einer Variable bzw. eines Input
Files wieder löschen.
Um dieses Beispiel zu vervollständigen, muss nun der Benutzername und das Passwort dem entsprechenden Formular-Werten des Login-Vorgangs
zugewiesen werden, bzw. dessen URL-Aufruf. Sie können dazu im Hauptmenü die Aufzeichnung aller URLs durchsehen, und dann auf das
entsprechende URL klicken, um die Details des URL-Aufrufs anzuzeigen und zu modifizieren. Falls Sie jedoch den entsprechenden URL-Call nicht
sofort finden, so können Sie auch die ganze aufgezeichnete Session nach einem Stichwort durchsuchen. In diesem Fall bietet sich als Stichwort das
Passwort des Benutzer Accounts an, welches während der Aufzeichnung der Web-Session verwendet wurde.
Um den URL-Call des aufgezeichneten Passworts zu suchen klicken Sie auf das Search Overall Menu und geben Sie als Suchtext das Passwort ein:
Klicken Sie im Suchergebnis auf den roten Pfeil nach rechts
den Details der URL-Calls zu gelangen.
um zu
Hinweis: rote Pfeile nach Rechts im Suchergebnis bedeuten, dass der Text
bei einem URL-Call vom Web Browser an den Server gesendet wurde.
Blaue Pfeile nach links bedeuten, dass der Text in einer URL-Antwort des
Servers gefunden (empfangen) wurde.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 40 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Nachdem Sie den URL-Call gefunden haben, welcher die Login-Daten übermittelt, können Sie die Variablen den entsprechenden FormularParametern zuweisen. Klicken Sie dazu auf die entsprechenden Icons
Optionen der Zuweisung:
Assign from Var: wählen Sie hier die Variable aus,
welche dem Formular-Parameter zugewiesen wird
Var value conversion:
none: der Wert der Variable wird unverändert
zugewiesen.
encode: der Wert der Variable wird zuerst URL-kodiert
und dann zugewiesen. Beispiel „Zürich HB“ ergibt
„Z%FCrich+HB“. Sie müssen bei Formular-Parametern
diese Option verwenden, wenn der Wert der Variable
Sondezeichen oder Leerzeichen enthalten kann.
decode: ist die Umkehroperation von encode. Diese
Option wird normalerweise niemals verwendet.
Assign var to all request parameters with same
recorded value: durch diese Option werden alle
Parameter aller URL-Calls der aufgezeichneten Web
Session untersucht, ob derselbe aufgezeichnete Wert des
Parameters ein weiters mal verwendet wurde. Werden bei
anderen URL-Calls solche Parameter gefunden, so wird
die Variable auch diesen zugewiesen (globales ersetzen
des Wertes)
Die vollständige Definition im Var Handler sieht danach so
aus:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 41 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.2.1 Weitere Hinweise zu Input Files
Das da extrahieren von Variablen getrennt von deren Zuweisung erfolgt, können Sie Input Files für viele weitere Zwecke nutzen. Beispielsweise:
o
Zum Testen von Suchmasken, wobei z.B. die erste Variable einer Zeile den Suchbegriff enthält und z.B. die zweite Variable derselben Zeile ein
Stichwort enthält, welches im Suchresultat gefunden werden muss.
o
Zum variablen Gestalten der User‟s Think Time pro Benutzer
o
Zum variablen Gestalten, wie viele Iterationen in einem Inner Loop ausgeführt werden
o
Als Eingabe der Artikelbezeichnung oder Warennummer bei einem Bestellvorgang
Sie können auch mehrere Input Files für eine Web-Session definieren.
6.3
User Input Fields
User Input Fields sind frei definierbare globale Variablen, deren Werte beim Starten eines Lasttest Programms jedes Mal neu abgefragt bzw.
eingegeben werden. Diese können auch mit einem Default-Wert versehen werden.
Im nachfolgenden Beispiel wird ein User Input Field verwendet, um den Hostnamen (der Name des Web-Servers) variabel zu gestalten, so dass z.B.
das gleiche Lasttest-Programm zum Testen eines Testsystems wie auch des produktiven Systems eingesetzt werden kann.
Optionen:
Var Name: Name der Variable. Dieser darf nur die Zeichen
A..Z, a..z, 0..9 sowie _ enthalten. Der Name darf nicht mit
einem _ beginnen.
Var Label Text: bezeichnet einen freien Text, mit welchem
das User Input Field auf dem GUI dargestellt wird (Stichwort,
Sinn).
Default Value: dies ist die Vorbelegung des Werts des User
Input Fields auf dem GUI.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 42 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Nachdem das User Input Field definiert wurde kann dieses dem Hostnamen zugewiesen werden. Dazu kann in der Regel ein beliebig aufgezeichneter
URL-Call verwendet werden:
Optionen:
Assign to: hier können Sie festlegen ob die Variable
dem Protokoll (http, https) oder dem Hostnamen oder
dem TCP/IP Port zugewiesen wird. Falls Sie zwei
oder alle drei Werte variabel gestalten möchten, so
müssen Sie zusätzliche User Input Fields definieren
und zuweisen.
Assign from Var: wählen Sie hier die Variable aus,
welche zugewiesen wird
Assign var to all requests with same protocol,
host and port: aktivieren Sie die Checkbox
(empfohlen), um die Variable allen aufgezeichneten
URL-Calls zuzuweisen. Beachten Sie jedoch, dass
eine solche automatische Zuweisung nur für URLCalls gilt, welche das gleiche Protokoll und den
gleichen Hostnamen und den gleichen Port
verwenden.
Wenn beispielsweise die aufgezeichnete WebSession sowohl http wie auch https Aufrufe enthält, so
müssen Sie diesen Vorgang einmal bei einem URLCall vornehmen, welcher mit http aufgezeichnet
wurde und noch einmal bei einem anderen URL-Call
vornehmen, welcher mit https aufgezeichnet wurde.
Zum setzen des Hostnamens recht dazu jedoch eine
Variable, d.h. Sie benötigen hier nur ein User Input
Field. Falls die Web-Session über mehrere
verschiedene Web-Server aufgezeichnet wurde, so
müssen Sie diese Option auf einem URL-Call
vornehmen, welcher den „richtigen“ Web Server
enthält.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 43 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Später, beim Starten des Lasttest-Programms wird das User Input Field angezeigt. Pro Web-Session können Sie bis zu 12 verschiedene User Input
Fields definieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 44 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.3.1 Weitere Hinweise zu User Input Fields
User Input Fields werden auch oft verwendet, um die User‟s Think Time variabel zu Gestalten oder auch um z.B. ein Buchungsdatum bei
Banküberweisungen vorzugeben (z.B. Zuweisung an Formular-Parameter, siehe Kapitel 6.6)
Falls Sie später einmal einen Lasttest nicht über das GUI starten sondern über ein Script, so müssen Sie beachten, dass das User Input Field im Script
als zusätzlicher Parameter angegeben werden muss, wobei der Name des Parameters dem Namen der Variable entspricht. Beispiel:
java PrxJob transmitClusterJob “Cluster 1“ Test01 -u 100 -d 300 -t 60 -nolog -hostname “testsys.ggjhkjg.com“
Beispiel:
Das folgende Beispiel zeigt wie Sie die User‟s Think Time für die Web-Pages mit Hilfe eines User Input Fields variabel gestalten können:
1. Erzeugen Sie zuerst ein User Input Field und legen Sie einen Default-Wert fest (bei diesem Fall in Sekunden).
2. Weisen Sie danach im Main Menü allen Page-Breaks dieselbe Variable für die User‟s Think Time zu, wobei dies auf dem ersten Page-Break der
Aufzeichnung geschehen sollte.
3. Danach können Sie beim Starten des Lasttests die User‟s Think Time der Web-Pages frei wählen. Im Detail-Resultat eines bereits ausgeführten
Lasttests können Sie auch nachträglich die (damals) gewählte User‟s Think Time betrachten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 45 / 138
Proxy Sniffer V4.1-C User‟s Guide
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Deutsche Ausgabe
Alle Rechte vorbehalten
Seite 46 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.4
Deutsche Ausgabe
Dynamisch ausgetauschte Session-Parameter
Das HTTP Protokoll selbst ist zustandslos – von URL-Call zu URL-Call. Darum werden üblicherweise Session-Cookies verwendet, um auf dem WebServer den dazu nötigen „roten Faden“ zu erhalten, in welchem Zustand sich ein Benutzer gerade befindet. Cookies werden automatisch unterstützt, so
dass dies auf den ersten Blick kein Problem zu sein scheint.
Nun ist es leider jedoch so, dass viele Web-Applikationen zusätzlich zu Cookies weitere dynamische ausgetauschte Session-Parameter verwenden,
deren Werte zur Laufzeit vom Web-Server zuvor in ausgegebenen HTML-Code eingesetzt werden, z.B. in „hidden“ Formular Feldern oder als
zusätzliche CGI-Parameter bei Hyperlinks. Der Web-Server erwartet nun, dass bei einem nachfolgenden URL-Call der von ihm gesetzte Wert wieder
zurückgesendet wird. Das Problem besteht nun darin, dass damals als die Web-Session aufgezeichnet wurde, der Wert wohl richtig war, später jedoch,
wenn der Lasttest ausgeführt wird, der Wert des Parameters veraltet ist oder nicht mehr zum aktuellen Session-Cookie des Benutzers passt, und Sie
darum fälschlicherweise anstelle der verlangten Web-Page während des Lasttests eine Fehlermeldung vom Web-Server erhalten (z.B. “es ist ein
interner Applikations-Fehler aufgetreten“). Ein typischer Fall ist der _VIEWSTATE Parameter, welcher vom Microsoft spezifischen Server-Applikationen
verwendet wird.
Die Lösung dieses Problem besteht darin, dass nun währen der Laufzeit des Lasttests die Werte solcher dynamisch ausgetauschten Session-Parameter
aus HTML-Seiten extrahiert werden müssen und den nachfolgenden URL-Calls übergeben werden müssen.
Damit Sie diese Aufgabe auch lösen können, ohne die Entwickler der Web-Applikation zu Fragen, stellt Ihnen Proxy Sniffer das Var Finder Menü zur
Seite. Sie könne den Var Finder vom Hauptmenü oder von Var Handler aus aufrufen:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 47 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.4.1 Automatische Behandlung von dynamisch ausgetauschten Session-Parametern (Var Finder)
Das Var Finder Menü zeigt – über die ganze Web-Session, über alle URL-Calls – eine Übersicht aller jemals verwendeten Request-Parameter und
deren Werte an. Dabei wird ein Request-Parameter welcher immer den gleichen Wert enthält nur ein Mal dargestellt, auch wenn dieser bei mehreren
URL-Calls verwendet wurde. Wurde jedoch derselbe Parameter (-Name) mit unterschiedlichen Werten gefunden, wird dieser pro unterschiedlichen Wert
mehrmals dargestellt.
Gehen Sie wie folgt vor:
1. Schätzen Sie als erstes anhand der ParameterWerte (Recorded Value) ab, welche Parameter als
Kandidaten für einen dynamischen Austausch in
Frage kommen. Enthält der Wert eine lange
Nummer oder eine kryptische Zeichenkombination,
so haben Sie einen potentiellen Kandidaten
gefunden
Im Beispiel links sind dies die potentiellen Parameter
levid, id und __VIEWSTATE. Jedoch nicht type und
Status1:ins_step22:txtPolicyNumber da deren
Werte währen der Aufzeichnung von Hand
eingegeben wurden.
2. Versuchen Sie als nächstes, eine automatische
Behandlung des dynamischen Parameters
durchzuführen. Dies gelingt in ca. 50% aller Fälle.
Klicken Sie dazu auf das Icon des Parameters:
Erhalten Sie danach eine Erfolgsmeldung, so müssen Sie nichts Weiteres mehr bezüglich dieses Parameters tun:
Die entsprechenden Definitionen zum extrahieren und
zuweisen des Parameters werden im Var Handler
automatisch vorgenommen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 48 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Erhalten Sie jedoch eine Fehlermeldung, so müssen Sie den Wert des Parameter von Hand extrahieren (siehe folgendes Unterkapitel).
Bei diesem Beispiel konnte auch der Parameter __VIEWSTATE automatisch behandelt werden. Es bleibt also nur noch der Parameter id übrig, welcher
von Hand extrahiert werden muss. Dieser ist jedoch zweimal aufgeführt (wegen unterschiedlicher Werte). D.h. dieser Parameter muss auch zweimal
extrahiert und zugewiesen werden.
Tipp: Sie können das Var Finder Menü auch als Checkliste
benutzen um zu sehen, welche Parameter bereits dynamisch
behandelt wurden. Überall dort, wo in den Spalten „First
Extract“ und „First Assign“ gleichzeitig blaue und rote Pfeile
vorhanden sind ist die dynamische Behandlung bereits
erfolgreich geschehen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 49 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.4.2 Manueller Extrakt von dynamisch ausgetauschten Session-Parametern
Gelingt die automatische Behandlung eines Parameters nicht, so müssen Sie auf das Lupen-Icon links in der Zeile des Var Finders klicken. Dadurch
wird die ganze Web-Session nach dem Wert des Parameters durchsucht:
Die blauen Peile nach links bedeuten, dass der
Parameter vom Web-Server empfangen wurde.
Die roten Pfeile nach rechts bedeuten, dass der
Parameter an den Web-Server gesendet wurde.
Sie müssen nun den Wert des Parameters extrahieren
bevor dieser gesendet wurde. Dazu bietet sich in
diesem Beispiel Item 19 (URL-Call 19) an.
Wichtig ist auch, ob der Wert aus dem HTTP Response
Header (bei einer Umleitung) oder aus dem HTTP
Response Content (Dateninhalt) extrahiert werden
kann. Bei diesem Beispiel steht neben dem blauen Pfeil
Found in Response Content, d.h. der Wert des
Parameters lässt sich aus dem empfangenen
Dateninhalt extrahieren.
Hinweis: die Zuweisung geschieht (später) automatisch.
Wie Sie jetzt schon sehen muss dieser dynamische
Parameter den URL-Calls 33, 35 und 38 zugewiesen
werden.
Klicken Sie nun auf den ersten blauen Pfeil nach links.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 50 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Es erscheint darauf hin in diesem Beispiel das URL Details Menü des
URL-Calls 19.
Klicken Sie auf search um den Dateninhalt nach dem Wert zu
durchsuchen. Der gefundene Wert wird rot markiert.
Da die automatische Behandlung fehlschlug, können Sie
wahrscheinlich den Wert nicht mittels des HTML Formular-Parsers
extrahieren (HTTP Response Content Forms Extract) und auch nicht
mittels des Hyperlink-Parsers (HTTP Response Content Unique
Hyperlinks Extract). In einem solchen Fall müssen Sie darum den frei
definierbaren Textmuster-Parser verwenden.
Gegen Sie wie folgt vor:
1. Scollen Sie zum Anfang der Zeile des gefundenen Werts und
merken Sie sich die Zeilennummer (hier 232):
2. Suchen Sie in der Nähe der Stelle, wo der Wert gefunden
wurde, ein eindeutiges Textmuster, welches im ganzen
empfangenen Inhalt nur einmal vorkommt. Dieses kann sich
auch einige Zeilen vor oder nach dem Wert befinden.
3. Markieren Sie dieses eindeutige Textmuster und klicken Sie auf
das Extrakt-Icon . Das markierte Textmuster darf den Wert selbst nicht umfassen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 51 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
4. Warten Sie 3 Sekunden bis das Textmuster in den Var Handler kopiert wurde (Feld: Search
Text) und klicken Sie danach auf Test Extract. Wenn sich das eindeutige Textmuster nicht
auf der Zeile des Werts befindet, so müssen Sie zuvor noch den relativen Zeilen-Offset im
Feld Extract Var on eingeben (Differenz zwischen diesen Zeilen).
5. Vergleichen Sie die Zeilennummer welche bei Extracted on Line im Var Handler
ausgegeben wird mit derjenigen Zeilennummer, auf welchem sich der Wert des zu
extrahierenden Parameters befindet (bei Schritt 1). Wenn die beiden Zeilennummern nicht
übereinstimmen so ist das Testmuster nicht eindeutig. Sie müssen in einem solchen Fall
ein anderes Textmuster wählen (zu Schritt 2 dieser Liste zurückkehren).
?
6. Schauen sie im Dateninhalt nach, durch welche Zeichen der rot markierte Wert umfasst wird.
In diesem Beispiel sind dies r und ’:
Geben Sie diese beiden Zeichen welchen den Wert umfassen im Feld Token Delimiters ein.
Klicken Sie danach wiederum auf Test Extract und danach auf das daneben stehende blaue
Fragezeichen ?.
7. Es wird nun ein Popup-Fenster angezeigt, welche alle Textfragmente der Zeile des Werts enthält. Geben Sie die Nummer des Textfragments
welches den Wert enthält im Feld Extract Token Nr. des Var Handlers ein und klicken sie wiederum auf Test Extract.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 52 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8. Kontrollieren Sie danach, ob der Wert genau – ohne weitere Zeichen am Anfang und Ende – unter
Recorded Value in blauer Farbe dargestellt wird.
9. Geben Sie zum Schluss einen frei wählbaren Variablen-Namen im Feld Map to Var Name ein (in
diesem Beispiel id_1 anstelle von nur id, da der Parameter zweimal extrahiert werden muss, wegen
unterschiedlicher Werte im Var Finder). Aktivieren Sie die Checkbox Assign var to all request
parameter with same recorded value um das automatischer Ersetzen des Werts zu gewährleisten
und lassen Sie die Checkbox Try Url Encoding aktiviert. Klicken Sie danach auf den Extract Button.
Die entsprechende Konfiguration im Var Handler für den
Variable id_1 zeigt nun, dass diese von URL 19
extrahiert und den URLs 33, 35 und 38 zugewiesen
wurde. Dies entspricht den Erwartungen welche Sie ganz
am Anfang sahen, all Sie auf das Lupen-Icon im Var
Finder geklickt haben.
?
Hinweis: bei diesem Beispiel müssten Sie den ganzen
Vorgang nochmals wiederholen, um den zweiten
gefundenen dynamischen Wert von „id“ auch variabel zu
gestalten.
Nach der Modifikation des Var Handlers sollte die WebSession wiederum abgespeichert werden, damit die
neuen Definitionen nicht verloren gehen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 53 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.4.3 Ersetzen von Textmustern
In seltenen Fällen kommt es vor, dass nicht der ganze Wert eines Parameters ersetzt werden soll, sondern nur ein Teil dessen. Weitere seltene Fälle
sind, wenn der Parameter-Name selbst variabel ist (anstelle oder zusätzlich zum Wert) oder ein File-Pfad eines URL-Calls einen variablen Wert enthält.
Gehen sie in einem solchen Fall wie folgt vor:
1. Benutzen Sie wie im Unterkaptitel zuvor beschrieben den frei definierbaren Text-Parser um den
Wert zu extrahieren.
2. Verwenden Sie nun anstelle der Option Assign var to all request parameter with same
recorded value die Option
Assign var to all matching request file and request content patterns with same recorded
value.
Hinweis: in weiteren seltenen Fällen kann ein Textmuster nicht aus dem Inhalt eines URL-Calls extrahiert
werden, weil eine HTTP Redirection (Umleitung) aufgetreten ist, aus welcher nun der Wert mit dem TextParser extrahiert werden muss. Auch dies wird unterstützt. Falls zwei Extraktor-Icons vorhanden sind, so
müssen Sie dazu das letztere verwenden:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 54 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
6.4.4 Extrahieren und Zuweisen von Werten von/an SOAP- und XML-Daten
Falls SOAP- und XML-Daten aufgezeichnet wurden so werden diese im GUI automatisch geparst. Um den Umgang mit solchen Daten zu erleichtern
steht Ihnen zusätzlich noch ein spezieller Variablen-Extractor und ein zusätzlicher Variablen-Assigner zur Verfügung. Dies wird dadurch angezeigt, dass
im Titel des entsprechenden Requests-Contents bzw. des Response-Contents ein zusätzliches XML-Icon dargestellt wird.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 55 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.5
Deutsche Ausgabe
HTTP File-Uploads
Falls eine aufgezeichnete Web-Browser Session HTTP File-Uploads enthält so können Sie die Files, welche zum Web-Server gesendet werden, auch
durch Variablen bestimmen. Oft werden solche Variablen aus Input-Files extrahiert, welche eine Liste von File-Namen (ohne Pfadangaben) enthalten.
Bevor Sie einen solchen Lasttest starten müssen Sie alle Files welche an den Web-Server gesendet werden in das Project-Navigator Directory
kopieren, welches auch Ihr Lasttest-Programm enthält. Danach müssen Sie das kompilierte Lasttest-Programm (*.class) zusammen mit allen Files
(Daten) und zusammen mit allen verwendeten Input-Files in einem ZIP-Archiv zusammenfassen. Danach können Sie den Lasttest dadurch starten
indem Sie auf das Icon des Zip-Archivs klicken.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 56 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.6
Deutsche Ausgabe
Zusammenfassung der am häufigsten verwendeten Extrakt- und Zuweisungs-Operationen
Das nachfolgende Bild zeigt eine Übersicht der am häufigsten verwendeten Extrakt- und Zuweisungs-Operationen von URL-Calls. Die vorliegende
Darstellung ist nicht abschliessend. Beachten Sie bitte, dass bei extrahieren von Variablen aus User Input Fields und aus Input Files keine automatische
Zuweisung erfolgt, d.h. dass Sie diese manuell durchführen müssen.
Wert einem CGIParameter zuweisen
Wert dem Protokoll, HostNamen oder Port zuweisen
Wert eines Textmusters eines
Formulars ersetzen.
Wert einem FormularParameter zuweisen
Wert eines Textmusters
dem URL-Pfad zuweisen
Wert aus einem FormularParameter extrahieren
Textmuster aus dem
empfangenen Inhalt extrahieren
Wert eines CGI-Parameters
aus einer Umleitung extrahieren
Textmuster aus einer
Umleitung extrahieren
CGI-Parameter aus einem
Hyperlink extrahieren
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 57 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.7
Deutsche Ausgabe
Direkte Definition von Variablen (stand-alone Variablen)
Üblicherweise werden Variablen implizit definiert, aufgrund von User Input Fields, Input Files, durch den Var
Finder oder beim manuellen extrahieren von Werten im Var Handler. Für spezielle Zwecke können Variablen
jedoch auch direkt definiert werden und je nach Sichtbarkeitslevel (Scope) mit verschiedenen Initialwerten
versehen werden. Unterstützte Kombinationen von Scope und Initialwerten sind:
Initial Value
G U L IL
fixed value
null
current user counter
loop counter
¹
² - inner loop counter
system time milliseconds
load source ip host name
³
³ load source ip address
³
³ G = [global var]
U = [user var]
L = [loop var]
IL = [inner loop var]
¹ = (äusserer) Loop Zähler über alle Benutzer
² = (äusserer) Loop Zähler des Benutzers
³ = unterstützt zusätzlich auch multihomed Systeme-Konfigurationen (Kapitel 11)
Initial-Werte:
-
text: (oberste Option rechts oben im Bild). Die Variable wird mit einem konstanten, frei definierbaren Wert initialisiert
null: der Wert der Variable wird (vorerst) als „ungültig“ markiert
current user counter: Laufnummer des aktuellen Benutzers (0, 1, 2 ..) während des Lasttests
loop counter: je nach Scope (global oder user) – (äusserer) Loop Zähler über alle Benutzer bzw. Loop Zähler des aktuellen Benutzers
inner loop counter: Iterations-Zähler des Inner Loops (0, 1, 2 ..)
system time milliseconds: aktuelle Systemzeit im Millisekunden seit 1970
load source ip host name: Rechnername des Exec Agents (Last-auslösender Rechner)
load source ip address: IP Adresse des Exec Agents (Last-auslösender Rechner)
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 58 / 138
Proxy Sniffer V4.1-C User‟s Guide
6.8
Deutsche Ausgabe
J2EE URL-Rewriting
Java Applikationsserver können so konfiguriert werden, dass diese anstelle von Web-Session-Cookies das Verfahren URL-Rewriting verwenden.
Dieses Verfahren funktioniert so, dass jedem vom Applikationsserver ausgegebenen HTML Formular und Hyperlink der Name und Wert des WebSessions-Parameters (anstelle des Cookies) zur Laufzeit hinzugefügt wird, bevor die Daten an den Web-Browser gesendet werden.
Beispiel eine Hyperlinks welcher vom Applikationsserver mit URL-Rewriting versehen wurde:
<A HREF="http://www.d-fischer.com:8080/prxtool/servlet/WebMainMenu;jsessionid=bu3fy0bbj1?currentDir=344">weiter</A>
Der URL-Rewriting Parameter wird noch vor den CGI-Parametern dem File-Pfad des URLs hinzugefügt. Als Trennzeichen wird ein Semikolon
(Strichpunkt) verwendet.
Üblicherweise unterstützt ein Java Applikationsserver gleichzeitig Session-Cookies wie auch URL-Rewriting, wobei pro Benutzer jedoch nur eines der
beiden Verfahren zur Anwendung kommt. Der Default-Algorithmus eines Applikationsservers läuft wie folgt ab:
1. Beim allerersten Aufruf des Benutzers auf eine beliebige Web-Seite des Applikationsservers weiss dieser noch nicht, ob der Web-Browser
Cookies unterstützt. Darum enthält die Antwort des Servers einerseits ein Session-Cookie und andererseits werden auch alle ausgegebenen
Formulare und Hyperlinks mit URL-Rewriting versehen.
2. Klickt nun der Benutzer auf einen Hyperlink – oder sendet dieser ein Formular ab – so wird das Session-Cookie an den Web-Server zurück
übertragen und der Applikationsserver erkennt daran, dass der Web-Browser Cookies unterstützt. Für alle nachfolgenden Web-Seiten führt der
Applikationsserver nun kein URL-Rewriting mehr durch.
3. Es kann jedoch auch sein, dass der Web-Browser keine Session-Cookies unterstützt oder dass der Applikationsserver so umkonfiguriert wurde,
dass dieser gar kein Session-Cookies sendet und nur auf Basis von URL-Rewriting arbeitet. In einem solchen Fall wird bei alle nachfolgenden
Web-Seiten wiederum URL-Rewriting vom Applikationsserver appliziert.
Üblicherweise müssen Sie nichts Spezielles konfigurieren, da der Java Applikationsserver Session-Cookies
unterstützt. Lässt dieser jedoch nur URL-Rewriting zu, so müssen Sie dessen Unterstützung zuerst im Var
Handler konfigurieren, damit später der Lasttest erfolgreich abläuft. Sie erkennen dies daran, dass bei mehr
als nur eine aufgezeichnete Web-Seite diese mit URL-Rewriting Parametern und Werten versehen wurde.
Gehen Sie wie folgt vor:
1. Klicken Sie bei einem beliebigen URL-Call auf das URL-Rewriting Icon
im Var Handler
2. Geben Sie den Namen des URL-Rewriting Parameters ein.
3. Geben Sie einen neuen, frei definierbaren Variablen-Namen ein
4. Übernehmen Sie den Default-Wert „automatically“ für die dynamische Behandlung des URLRewriting Parameters
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 59 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Nach der erfolgreichen Konfiguration des URL-Rewritings zeigt der Var Handler nur den ersten Extrakt des URL-Rewriting Parameters an, nicht jedoch
dessen Zuweisung an nachfolgende URL-Calls. Dies ist „normal“ d.h. Sie müssen nichts weiter konfigurieren, die Zuweisung erfolgt später automatisch
während des Lasttests.
Hinweis: der Name des URL-Rewriting Parameters heisst nicht zwingend jsessionid. Die Entwickler
können dessen Namen im Server frei konfigurieren. In einem solchen Fall müssen Sie die den aktuellen
Namen des Parameters im Feld Rewrite Parameter eingeben. Sie erkennen ein URL-Rwriting in jedem
Fall daran, das in den File-Pfaden der URL-Calls ein Semikolon vorhanden ist, gefolgt von einem
Parameter-Namen, einem Gleichheitszeichen und einem kryptischen Wert.
Je nach Programmierung der Applikation kommt es manchmal vor, dass der Wert des Parameters
während der Web-Session ändert, z.B. nach einem Login- oder Logout-Vorgang. Proxy Sniffer erkennt
und behandelt dies automatisch. In einem solchen Fall zeigt der Var Handler mehrere Extrakte des URLRewriting Parameters an.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 60 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
7 Erzeugen des Lasttest-Programms
Beachten Sie, dass nur diejenigen URL-Calls in das Lasttest-Programm übernommen werden, welche Sie im Hauptmenü auch sehen. D.h. Sie können
den Filter im Hauptmenü dazu benutzen um gewisse Arten von URL-Calls nicht in das Lasttest-Programm einfliessen zu lassen:
Filter Optionen:
-
No Binary Data (Images ...): filtert alle URL-Calls weg, deren empfangene Daten binär sind wie z.B. Bilder und Flash-Animationen.
-
No CSS, JS (Only HTML): filtert alle URL-Calls weg, deren empfangene Daten in lesbarem Textformat sind, jedoch nicht HTML-Code enthalten.
Z.B. JavaScript Dateien oder auch Style Sheets werden weggefiltert.
-
No Cached Data (304): aufgezeichnete URL-Calls mit dem HTTP Status-Code 304 sind auf ein „Missverständnis“ des Cache-Verhaltens
zwischen Web-Browser und Web-Server zurückzuführen. Diese Filter-Option sollte immer aktiv sein.
-
No Errors: werden fehlerhafte URL-Calls aufgezeichnet, so wird während des Lasttests geprüft, ob der Fehler auch immer noch vorhanden ist
(Erfolg = Fehler vorhanden). Sie können dieses Verhalten unterdrücken indem Sie fehlerhafte URL-Calls wegfiltern.
-
Host: wird ein Hostname angegeben, so werden alle URL-Calls, welche nicht diesen Host betreffen, weggefiltert. Alternativ kann ein
Ausrufzeichen (!) vor dem Hostnamen angegeben werden, was bedeutet, dass nur URL-Calls zu diesem Host weggefiltert werden. Mittels dieser
Option können Sie z.B. URL-Calls zu einem externen Web Session-Tracking Server (externe Zugriffstatistik) wegfiltern. Es können auch mehrere
Hostnamen eingegeben werden, getrennt durch Kommas (,) – mit oder ohne Ausrufezeichen vor dem Hostnamen.
Klicken Sie auf das Generate Load Test Icon im Hauptmenu oder im „URL-Detail / Var Handler“ Menü um das Lasttest-Programm zu erzeugen:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 61 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Üblicherweise geben Sie hier nur den Namen des LasttestProgramms sowie einen kurzen stichwortartigen Kommentar ein,
ohne weitere Optionen zu wählen.
Spezielle Optionen nur sind nötig wenn:
-
Sie eine Lasttest über einen abgehenden Proxy-Server
ausführen möchten (siehe auch Kapitel 4.6.2.1)
-
wenn Sie mehrere Benutzer-Accounts für Basic- oder Digest
Authentisierung verwenden möchten
-
Wenn eine NTLM Authentisierung erforderlich ist (siehe auch
Kapitel 4.6.2.3)
-
Wenn HTTPS/SSL Client-Zertifikate zur Authentisierung
erforderlich sind (siehe auch Kapitel 4.6.2.4)
Optionen:
-
Java ™ Code Model: bestimmt die innere Struktur des Java
Lasttest-Programms. Dieser Wert wird normalerweise
automatisch richtig gesetzt. Falls (später) die Kompilation mit
der Meldung fehlschlägt, dass eine Methode zu gross sei (zu
viele Bytes), so erzeugen Sie das Lasttests-Programm
nochmals, wobei Sie diesmal den Wert large wählen.
-
Content Test Algorithm: bestimmt, wie der Inhalt der empfangenen Daten während des Lasttests geprüft wird:
o [+] apply (heuristic) methods from recorded session to check received content: bedeutet, dass die Konfiguration der automatischen
Inhaltsüberprüfung sowie alle Änderungen welche Sie an dieser vorgenommen haben angewandt wird (siehe auch Kapitel 4.4.2).
Zusätzlich wird der HTTP Status-Code (200, 302 ..) sowie der MIME-Type (image/gif, text/html ..) jedes URL-Calls geprüft. Nur diese
Option garantiert, dass die Web-Seiten richtig geprüft werden.
o [±] compare received content of all URL calls with recorded size (+/- 5%): bedeutet, dass der empfangene Inhalt aller URL-Calls nur
bezüglich der Grösse geprüft wird wobei Abweichungen von ± 5% zulässig sind. Die automatische Inhaltsüberprüfung wird nicht
angewandt, jedoch wird der HTTP Status-Code sowie der MIME-Type während des Lasttests geprüft. Die Resultate solcher Lasttests
sind oft nicht gültig, da so Fehlermeldungen innerhalb von Web-Seiten nicht immer erkannt werden, oder bei dynamisch erzeugten WebSeiten irrtümlich Fehler aufgrund variierender Grösse des Inhalts gemessen werden.
o [–] none - response content test disabled: bedeutet, dass bei allen URL-Calls der empfangene Dateninhalt nicht geprüft wird; d.h. es
wird nur der HTTP Status-Code sowie der MIME-Type während des Lasttests geprüft. Die Resultate solcher Lasttests sind oft nicht gültig,
da Fehlermeldungen innerhalb von Web-Seiten so nicht erkannt werden.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 62 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
-
HTTP Protocol Version: 1.1 bedeutet, dass das normale Standard-Verhalten aller Web-Browser angewandt wird, indem (pro Benutzer) dieselbe
Netzwerk-Verbindung mehrmals für den Aufruf der URL-Calls wieder verwendet wird (HTTP Keep-Alive Unterstützung des Clients). Version 1.0
bedeutet, dass für jeden einzelnen URL-Call eine eigene Netzwerk-Verbindung aufgebaut und danach wieder geschlossen wird.
-
Allow Keep-Alive: die HTTP Keep-Alive Unterstützung des Clients kann für HTTP 1.1 optional deaktiviert werden. Dies ist jedoch nicht
empfohlen.
-
Strip Referer Header Field: das Referer Header Field enthält Zusatzinformationen bei einem URL-Call, welche beschreiben, von welcher WebSeite dieser initiiert wurde. Diese Information wird jedoch vom Web-Server nicht interpretiert. Viele lokale Security-Tools entfernen auch gezielt
diese Information, damit das Surf-Verhalten des Benutzers auf dem Web-Server nicht ausspioniert werden kann. Das Referer Header Field ist
nicht nötig und wird darum standardmässig nicht in das Lasttest-Programm übernommen.
-
Strip Accept Header Field to */*: Mit dem (historischen) Accept Header Field gibt (gab) der Web-Browser dem Web-Server bekannt, welche
Datentypen (MIME-Typen) zur Darstellung im Web-Browser unterstützt werden. Dies ist ein sehr langer Text, welcher von heutigen Web-Servern
nicht mehr interpretiert wird. Anstelle dessen wird als Default-Wert beim Lasttest */* übertragen was bedeutet, dass alle Datentypen vom Client
unterstützt werden.
-
Load Test over HTTP(S) Proxy: wählen Sie diese Option wenn das Lasttest-Programm einen abgehenden Proxy-Server verwenden soll. Die
Daten des Proxy-Servers werden aus der Proxy-Konfiguration des Personal Setting Menüs (Kapitel 4.6.2.1) direkt in das Lasttest-Programm
übernommen.
-
Basic Authentication: falls eine Basic Authentication während Aufzeichnung nötig war, so wird der Benutzername und das Passwort
automatisch in das Lasttest-Programm übernommen – ohne dass diese Option aktiviert werden muss. Soll jedoch während des Lasttests
jeder Benutzer einen unterschiedlichen Account zur Basic Authentication verwenden, so müssen Sie diese Option aktivieren und zusätzlich
folgende Schritte durchführen:
o Erstellen Sie vor oder nach dem Erzeugen des Lasttest-Programms ein File mit dem Namen basicauth.txt in demselben Project
Navigator Directory, in dem das Lasttest-Programm abgespeichert wird. Auf jeder Zeile dieses Files muss jeweils zuerst der Name des
Accounts und danach das Passwort des Accounts eingetragen werden – getrennt durch ein Semikolon (Strichpunkt).
o Nach dem kompilieren des Lasttest-Programms (*.java → *.class) müssen Sie das kompilierte Programm (*.class) im Projekt-Navigator
mit Hilfe der integrierten Zip-Funktion zusammen mit dem File basicauth.txt zu einem Archiv zippen, bevor Sie den Lasttest ausführen
(siehe Kapitel 7.1). Das Archiv selbst (*.zip) muss danach als Lasttest-Programm gestartet werden – anstelle des kompilierten *.class
Files.
-
Digest Authentication: falls eine Digest Authentication während der Aufzeichnung nötig war, so müssen Sie beim Erzeugen des LasttestProgramms diese Option aktivieren. Dabei stehen zwei Möglichkeiten zur Verfügung:
o use common Username: für alle Benutzer wird während des Lasttests derselbe Digest Account verwendet. Die Daten des Accounts
werden direkt in das Lasttest-Programm übernommen.
o Apply individual Digest Authentication per user from input file (digestauth.txt): jeder Benutzer verwendet während des Lasttests
einen eignen Digest Account. Erstellen Sie vor oder nach dem Erzeugen des Lasttest-Programms ein File mit dem Namen digestauth.txt
in demselben Project Navigator Directory, in dem das Lasttest-Programm abgespeichert wird. Auf jeder Zeile dieses Files muss jeweils
zuerst der Name des Accounts und danach das Passwort des Accounts eingetragen werden – jeweils getrennt durch ein Semikolon
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 63 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
(Strichpunkt). Nach dem kompilieren des Lasttest-Programms (*.java → *.class) müssen Sie das kompilierte Programm (*.class) im
Projekt-Navigator mit Hilfe der integrierten Zip-Funktion zusammen mit dem File digestauth.txt zu einem Archiv zippen, bevor Sie den
Lasttest ausführen (siehe Kapitel 7.1). Das Archiv selbst (*.zip) muss danach als Lasttest-Programm gestartet werden – anstelle des
kompilierten *.class Files.
-
NTLM Authentication: falls eine NTLM Authentication zur Aufzeichnung nötig war, so müssen Sie beim Erzeugen des Lasttest-Programms
diese Option aktivieren. Dabei stehen zwei Möglichkeiten zur Verfügung:
o use common NTLM account from personal settings: für alle Benutzer wird während des Lasttests derselbe NTLM Account verwendet,
welcher im Personal Settings Menü definiert wurde (Kapitel 4.6.2.3). Die Daten des Accounts werden direkt in das Lasttest-Programm
übernommen.
o apply individual NTLM account per user from input file (ntlmauth.txt): jeder Benutzer verwendet während des Lasttests einen eignen
NTLM Account. Erstellen Sie vor oder nach dem erzeugen des Lasttest-Programms ein File mit dem Namen ntlmauth.txt in demselben
Project Navigator Directory, in dem das Lasttest-Programm abgespeichert wird. Auf jeder Zeile dieses Files muss jeweils zuerst der
Domain-Name, danach Name des Accounts und danach das Passwort des Accounts eingetragen werden – jeweils getrennt durch ein
Semikolon (Strichpunkt). Nach dem kompilieren des Lasttest-Programms (*.java → *.class) müssen Sie das kompilierte Programm
(*.class) im Projekt-Navigator mit Hilfe der integrierten Zip-Funktion zusammen mit dem File ntlmauth.txt zu einem Archiv zippen, bevor
Sie den Lasttest ausführen (siehe Kapitel 7.1). Das Archiv selbst (*.zip) muss danach als Lasttest-Programm gestartet werden – anstelle
des kompilierten *.class Files.
-
HTTPS Client Certificates: falls ein PKCS#12 Client-Zertifikat zur Aufzeichnung nötig war, so müssen Sie beim Erzeugen des LasttestProgramms diese Option aktivieren. Dabei stehen zwei Möglichkeiten zur Verfügung:
o use common, active PKCS#12 certificate from personal settings: für alle Benutzer wird während des Lasttests dasselbe ClientZertifikat verwendet, welches im Personal Settings Menü geladen wurde (Kapitel 4.6.2.4). Die Daten des Zertifikats werden direkt in das
Lasttest-Programm übernommen.
o apply individual PKCS#12 certificate per user from input file (pkcs12auth.txt): jeder Benutzer verwendet während des Lasttests sein
eigenes Client-Zertifikat. Erstellen Sie vor oder nach dem erzeugen des Lasttest-Programms zwei Files: im ersten File pkcs12certs.zip
müssen die PKCS#12 Dateien aller Benutzer in einem eigenen ZIP-Archiv enthalten sein. Im zweiten File pkcs12auth.txt muss auf jeder
Zeile zuerst der Name einer PKCS#12 Datei eingetragen werden, gefolgt von dem Passwort des Zertifikats – getrennt durch ein
Semikolon (Strichpunkt). Nach dem kompilieren des Lasttest-Programms (*.java → *.class) müssen Sie das kompilierte Programm
(*.class) im Projekt-Navigator mit Hilfe der integrierten Zip-Funktion zusammen mit den beiden Files pkcs12certs.zip und File
pkcs12auth.txt zu einem Archiv zippen, bevor Sie den Lasttest ausführen (siehe Kapitel 7.1). Dieses Archiv selbst (*.zip) muss danach
als Lasttest-Programm gestartet werden – anstelle des kompilierten *.class Files.
Hinweis zur einfacheren Bedienung: anstelle auf den Continue Button zu klicken können Sie auch die Enter-Taste drücken. Sie gelangen dadurch
zum nächsten Dialog:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 64 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Links im Dialog können Sie das Project Navigator
Directory wählen, in welchem das LasttestProgramm abgespeichert wird. Das aktuelle
Directory ist blau markiert. Mittels des Icons
lassen sich neue Sub-Directories anlegen.
Rechts im Dialog können Sie mittels Display Load
Test Program den automatisch erzeugten JavaCode betrachten, bevor das Programm gespeichert
wird.
?
Gleich darunter wird unter Content Test Summary
eine Zusammenfassung der automatischen
Inhaltsüberprüfung dargestellt. Die
Zusammenfassung enthält nur URL-Calls
a) deren empfangener Inhalt mittels eines TextFragments geprüft wird. – oder –
b) deren Inhaltsüberprüfung manuell modifiziert
wurde (z.B. Prüfung der Inhaltsgrösse bei
einem bestimmten GIF-Bild manuell
deaktiviert, da es sich um wechselnde
Banner-Werbung handelt)
Sie habe hier nochmals die Möglichkeit, die
Inhaltsüberprüfung durchzusehen und falls nötig
anzupassen, indem Sie auf das entsprechende Lupen-Icon klicken. Speichern Sie die Web-Session nochmals mittels des
Icons, falls Sie
Anpassungen an der Inhaltsüberprüfung vorgenommen haben.
Klicken Sie auf den Save Load Test Program Button, um das automatisch erzeugte Lasttest-Programm zu speichern. Hinweis zur einfacheren
Bedienung: anstelle auf den Continue Button zu klicken können Sie auch die Enter-Taste drücken.
Es erscheint nun das Projekt Navigator Menü:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 65 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Das neu erzeugte Lasttest-Programm wird
mit dunkelblauem Hintergrund markiert.
Klicken Sie auf den Compile Button oder
drücken Sie die Enter-Taste um dieses
zu kompilieren.
Hinweis: Sie können ein LasttestProgramm auch kompilieren indem Sie
auf dessen Icon klicken.
Falls Sie später dasselbe Lasttest Programm ein weiteres Mal erzeugen, so müssen Sie zu zuerst im Projekt Navigator bestätigen, dass die alte Version
des Programms überschrieben werden soll:
Klicken sie dazu auf den yes Button.
Alternativ können Sie auch die EnterTaste drücken.
Durch das kompilieren des automatisch erzeugten Java-Programms (*.java) wird der direkt ausführbares Lasttest-Programm erzeugt
( *.class, kompilierter Code). Sie können nun den Lasttest starten indem Sie auf dessen
Icon klicken:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 66 / 138
Proxy Sniffer V4.1-C User‟s Guide
7.1
Deutsche Ausgabe
Lasttest-Programme mit Input Files
Lasttest-Programme, welche Input Files verwenden, müssen zuerst mit den Input Files zusammen gezippt werden. Danach muss ein solches Zip-Archiv
selbst als Lasttest-Programm gestartet werden. Proxy Sniffer kontrolliert beim starten eines „einfachen“ Lasttests-Programms ob dieses Input Files
enthält – Sie erhalten eine entsprechende Fehlermeldung wenn Sie in einem solchen Fall direkt auf das Icon des Programms klicken:
Gehen Sie wie folgt vor:
1. Selektieren Sie das kompilierte
Lasttest-Programm (*.class) und
die dazu nötigen Input Files
2. Klicken Sie auf das Zip
Projekt Navigator
Icon im
3. Klicken Sie danach auf den
Continue Button oder drücken Sie
die Enter-Taste.
Nachdem das Zip-Archiv erzeugt wurde können Sie dieses nun (selbst) als Lasttest starten:
Hintergrund: Lasttests lassen sich mittels
des GUIs auch remote auf anderen
Rechnern ausführen. Das Zip-Archiv an
sich bildet darum mit den Input Files einen
Kontext, welcher alle Daten umfasst, die
zur Lasttest-Ausführung nötig sind.
Hinweis: wenn eines der Files des ZipArchivs neuer ist als das Archiv selbst, so
wird dies beim Starten des Lasttests
erkannt. In einem entsprechenden Dialog
wird dabei zuvor automatisch ein Re-Zip
durchgeführt – d.h. Sie können später
Input-Files modifizieren und danach direkt
auf das Zip-Archiv des LasttestProgramms klicken.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 67 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8 Ausführen von Lasttest-Programmen
Nachdem das Lasttest-Programm mittels des Projekt Navigators aufgerufen wurde können Sie verschiedene Optionen wählen.
Die wichtigsten Optionen sind Number of Concurrent Users sowie Load Test Duration. Unter Annotation sollten Sie einen kurzen Kommentar zum
Test-Lauf eingeben.
Liste aller Optionen:
-
Execute Test Form: steuert von welchem Rechner
oder Cluster der Lasttests durchgeführt wird. Falls Sie
keine remote Exec Agents bzw. keinen Exec Agent
Cluster definiert haben (siehe Kapitel 10), so steht
Ihnen vorerst nur die Auswahl „Host: Local Exec Agent“
zur Verfügung, was bedeutet, dass der Lasttest vom
eigenen Rechner durchgeführt wird.
-
Number of Concurrent Users: Anzahl gleichzeitige
Benutzer während des Lasttests.
-
Load Test Duration: geplante Zeitdauer des Lasttests.
Nachdem diese Zeit erreicht wurde beendet jeder
Benutzer noch seine aktuellen Loop (Repetition der
Web-Session). Darum dauert der Lasttest etwas länger
als die geplante Zeitdauer. Falls die weitere Option
Max. Loops per User nicht auf unlimited steht kann es
sein, dass der Lasttest vor der geplanten Zeitdauer
beendet wird, weil alle Benutzer schon die maximale
Anzahl Loops erreicht haben.
-
Max. Loops per User: maximale Anzahl der WebSession Repetitionen pro Benutzer. Falls die weitere
Option Load Test Duration nicht auf unlimited steht
kann es sein, dass der Lasttest beendet wird, bevor alle
Benutzer ihre Anzahl Loops ausgeführt haben, weil die maximale Zeitdauer des Tests überschritten wurde.
-
Startup Delay per User: beim Starten des Lasttests werden üblicherweise nicht alle Benutzer sofort gestartet, sondern einer nach dem anderen,
wobei jeweils eine kurze Zeitdauer dazwischen liegt. Diese Zeitdauer (startup ramp of load) können Sie hier festlegen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 68 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
-
Max. Network Bandwidth per User: erlaubt die maximale Netzwerkbandbreite pro Benutzer künstlich zu reduzieren, um so den Zugriff der
Benutzer über langsame DSL- oder Modem-Leitungen zu simulieren. Die Downlink- und Uplink-Bandbreite kann separat eingestellt werden um
asymmetrische Bandbreiten zu simulieren.
-
Request Timeout per URL: legt fest, wie lange ein einzelner URL-Call währen des Lasttests dauern darf, bevor dieser abgebrochen und als
Fehler behandelt wird (z.B. weil keine Antwort von Web-Server erhalten wurde).
-
Max. Error-Snapshots per URL: tritt ein Fehler während des Lasttests auf, so wird nebst den inkrementieren des Fehler-Zählers auch ein so
genannter Error-Snapshot angelegt, welche die ganze Fehlersituation ausführlich protokolliert und auch alle aktuell ausgetauschten Daten des
fehlgeschlagenen URL-Calls enthält (siehe Kapitel 9.2). Ein einziger solcher Error-Snapshot kann bis zu einem Megabyte gross sein. Darum ist
die Anzahl Error-Snapshots pro URL-Call limitiert, welche sich jedoch hier in gewissen Grenzen einstellen lassen. Wird diese Grenze
überschritten, so werden keine weiteren Error-Snapshots mehr für den entsprechenden URL-Call erstellt; der Fehler-Zähler wird jedoch nach wie
vor erhöht.
-
Statistic Sampling Interval: bestimmt das Zeitintervall in dem während des Lasttests Stützpunkte für Diagramme bezüglich des zeitlichen
Verlaufs einiger Messgrössen gewonnen werden (Anzahl Benutzer über die Zeit, Anzahl Fehler über die Zeit, usw.). Dieser Wert sollte in etwa
einem Zehntel bis einem Hundertstel der gesamten Zeitdauer des Lasttests entsprechen.
-
Additional Sampling Rate per Page Call: sammelt zusätzlich zum periodischen Sampling noch weitere Daten (Antwortzeiten) – jedes Mal
wenn eine Web-Page vollständig von einem beliebigen Benutzer erfolgreich ausgeführt wurde. 100% bedeuten, dass jede Ausführung
protokolliert wird. 1% bedeutet dass nur jede hundertste Ausführung protokolliert wird. Es müssen mindesten 5 Messwerte während des Tests
gesammelt werden, damit nach dem Abschluss des Tests die Percentile-Diagramme sowie Diagramme über den Verlauf der Antwortzeiten der
Web-Pages über die Dauer des Tests dargestellte werden können (Kapitel 9.1.5).
-
Additional Sampling Rate per URL Call: sammelt zusätzlich zum periodischen Sampling noch weitere Daten – jedes Mal wenn ein URL-Aufruf
von einem beliebigen Benutzer erfolgreich ausgeführt wurde. 100% bedeuten, dass jede Ausführung protokolliert wird. 1% bedeutet dass nur
jede hundertste Ausführung protokolliert wird. Es müssen mindesten 5 Messwerte während des Tests gesammelt werden, damit nach dem
Abschluss des Tests die Percentile-Diagramme sowie die Diagramme über den Verlauf der Antwortzeiten der URL-Aufrufe über die Dauer des
Tests dargestellte werden können (Kapitel 9.1.5). Für Dauertests über mehrere Stunden sollte diese Option nicht verwendet werden. Weitere
Optionen, Add:
o
--- recommended: es wird nur die Antwortzeiten der URL-Aufrufe protokolliert (empfohlene Option). Falls Sie eine andere,
untenstehende Option verwenden ist der Lasttest bei 100% URL Sampling Rate auf ca. 10 Minuten Dauer limitiert, da sonst zu viele
Daten im Speicher gesammelt werden und deshalb ein interner Fehler während des Lasttests auftritt.
o
o
Performance Details per Call: es werden folgende internen Zeiten der URL-Aufrufen zusätzlich protokolliert: Netzwerk VerbindungsAufbauzeit, Request Übertragungszeit, Response Header Wartezeit, Response Header Empfangszeit, Response Content Empfangszeit.
Request Headers: zusätzlich wird der Request Header jedes URL-Aufrufs protokolliert.
o
o
Request Content (Form Data): zusätzlich wird der Request Content (HTML Formulardaten) jedes URL-Aufrufs protokolliert.
Req. Headers & Content: zusätzlich wird der Request Header und der Request Content jedes URL-Aufrufs protokolliert.
o
Response Headers: zusätzlich wird der Response Header jedes URL-Aufrufs protokolliert.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 69 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
o
Resp. Headers & Content: zusätzlich wird der Response Header und der Response Content jedes URL-Aufrufs protokolliert.
o
All - without Resp. Content: zusätzlich wird der Request Header, der Request Content und der Response Header jedes URL-Aufrufs
protokolliert.
All - full URL Snapshots: zusätzlich wird der Request Header, der Request Content, der Response Header und der Response Content
jedes URL-Aufrufs protokolliert.
o
Hinweis: die gesammelten Daten können nach der Testausführung dargestellt und auch in Form von HTML-Tabellen exportiert werden.
-
Debug Options: nebst den statistischen Daten (*.prxres File) wird während des Lasttests zusätzlich noch ein Log-File geschrieben (*.out File).
Die Debug-Optionen legen fest, welche Daten in das Log-File einfliessen. Beachten Sie, dass üblicherweise das Log-File niemals zur Analyse
der Messergebnisse benötigt wird, sondern gewöhnlich nur zur aufspüren von Produkt-Fehlern dient:
o none – recommended: ist der Standard-Wert, was bedeutet, das im Wesentlichen nur die Start-Parameter sowie das eine kurze
Zusammenfassung der Statistik in das Log-File geschrieben wird. Sie sollten üblicherweise diesen Standard-Wert verwenden.
o debug loops (including var handler): schreibt zusätzlich eine kurze Information jedes einzelnen URL-Calls sowie die Werte der
extrahierten Variablen in das Log-File. Erlaubt das Debuggen der Var Handler Definitionen.
o debug headers & loops: enthält die Option „debug loops“ und schreibt zusätzlich die gesendeten und empfangenen HTTP-Header aller
URL-Calls in das Log-File.
o debug content & loops: enthält die Option „debug loops“ und schreibt zusätzlich die gesendeten und empfangenen HTTP Inhalts-Daten
aller URL-Calls in das Log-File, sofern diese ASCII Text enthalten (z.B. gesendete Formular-Daten und empfangene HTML-Daten).
o debug cookies & loops: enthält die Option „debug loops“ und schreibt zusätzlich den Inhalt aller empfangenen und gesendeten Cookies
in das Log-File.
o debug keep-alive & loops: enthält die Option „debug loops“ und schreibt zusätzlich Daten über wieder verwendete
Netzwerkverbindungen in das Log-File.
o debug SSL handshake & loops: enthält die Option „debug loops“ und schreibt zusätzlich ein Protokoll jedes ausgeführten SSLHandshakes in das Log-File
-
Additional Options: hier können weitere Optionen eingegeben werden. Alle diese Optionen anhalten ein Minuszeichen, unmittelbar gefolgt von
dem Text. Mehrere Optionen könne durch Leerschläge getrennt werden:
o -multihomed bedeutet, dass die Last-auslösenden Rechner mehrere IP-Adressen während des Lasttests verwenden. Die entsprechende
Exec Agenten müssen jedoch entsprechend konfiguriert sein, damit diese Option wirksam wird (siehe Kapitel 11).
o -collect <measuring agent host>[:port][,<measuring agent host>[:port]]…
Beispiel: -collect measuringhost1,measuringhost2
Weist das Lasttest-Programm an, zusätzliche Daten von externen Messagenten während des Test zu sammeln, wie z.B. Daten über die
CPU-Belastung von Routern, Firewalls und Unix-ähnlichen Betriebssystemen.
o
-sslcache <Sekunden> setzt die Zeitlimite des SSL Client-Caches, d.h. die maximale Zeitdauer innerhalb welcher eine SSL-Verbindung
nach dem Abbruch der entsprechenden TCP/IP Verbindung regeneriert werden kann, ohne dass ein neuer SSL-Handshake nötig ist. Der
Default-Wert ist 300 Sekunden.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 70 / 138
Proxy Sniffer V4.1-C User‟s Guide
o
o
o
-
-
Deutsche Ausgabe
-sslcreset: die simulierten Benutzer behalten nach der Ende eines Loops den SSL Client-Cache und verwenden diesen beim nächsten
Loop erneut. Dies kann mit dieser Option beim Starten eines Lasttests übersteuert werden was bewirkt, dass am Anfang eines Loops ein
neuer (leerer) SSL Client Cache für den entsprechenden Benutzer erzeugt wird.
-sslcmode erhöht die Toleranz bei fehlerhaftem SSL-Verhalten von Web-Servern, welche Teile des SSL-Protokolls falsch handhaben.
-tz <Zeitzone> erlaubt das setzen einer anderen Zeitzone während des Lasttests. Eine Übersicht aller Zeitzonen-Werte ist im Application
Reference Manual beschrieben (Kapitel 6).
SSL: beeinflusst, welche Verschlüsselungs-Protokoll-Variante bei HTTPS verwendet wird:
o v2/v3/TLS: dies ist das normale Verfahren, welche die meisten modernen Web-Browser applizieren. Zuerst wird versucht, eine
verschlüsselte Verbindung mittels TLS zum Server aufzubauen. Gelingt dies nicht, so wird SSL v3 verwendet. Gelingt dies auch nicht, so
wird SSL v2 verwendet.
o TLS: es wird nur TLS verwendet.
o
v3: es wird nur SSL v3 verwendet.
o
v2: es wird nur SSL v2 verwendet.
Annotation: hier können Sie einen kurzen Kommentar zum Testlauf eingeben. Dies erleichtert später ganz erheblich die Übersicht, wenn Sie
mehrere Testläufe mit demselben Lasttest-Programm ausführen, und dient Ihnen auch als Gedankenstütze bezüglich der Server-Konfiguration
welche Sie getestet haben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 71 / 138
Proxy Sniffer V4.1-C User‟s Guide
8.1
Deutsche Ausgabe
Exec Agent Jobs
Nachdem Sie beim Aufruf des Lasttest-Programms dessen Optionen gewählt haben und der Test mittels eines einzelnen Last-auslösenden Rechners
durchgeführt werden soll (lokal oder remote, jedoch nicht bei einem Last-auslösenden Cluster), so wird der Lasttest in einem ersten Schritt in den
lokalen oder remote Exec Agent Prozess übertragen. Es wird dabei im Exec Agent Prozess ein Lasttest-Job erzeugt, welcher eine Job-Nummer hat und
zunächst im Zustand „konfiguriert“ ist, d.h. noch nicht läuft:
Mittels der Option Display Real-Time Statistic können Sie wählen, ob
Sie direkt nach dem Starten des Jobs dessen real-time Statistik
betrachten möchten.
Hinweis: der entsprechenden Exec Agents Prozesses führt alle LasttestJobs immer im Hintergrund durch, wobei auch mehrere Jobs gleichzeitig
ausgeführt werden können. Die Option Display Real-Time Statistic
bedeutet in diesem Zusammenhang nur, dass das Web Admin GUI über
den Exec Agent direkt auf die real-time Daten des Jobs bzw. dessen
laufendes Lasttest-Programms Zugriff nimmt.
Klicken Sie nun auf den Start Load Test Job Button um den Lasttest zu
starten.
Falls Sie die Option Display Real-Time Statistic deaktiviert haben, so
wird dieser Dialog nach wenigen Augenblicken geschlossen. Sie können
danach jedoch jederzeit über das Jobs Menü des Project Navigators auf
den Job zugreifen und dessen real-time Statistik betrachten bzw. dessen
finale Messergebnisse laden (siehe Kapitel 8.1.3).
Hinweis: wenn Sie dieses Fenster schliessen, ohne dabei auf den Start Load Test Button zu klicken, so verbleibt der Lasttest Job im Exec Agent im
Zustand configured (bereit zum Start). Sie können später über das Jobs Menü (Kapitel 8.1.3) einen solchen Job starten oder auch löschen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 72 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.1.1 Real-Time Job Statistik
Die real-time Statistik eines Jobs enthält nur einen Auszug der wichtigsten Messdaten und wird ca. alle 5 Sekunden neu berechnet. Sie erhalten bereits
jetzt Zugriff auf gemessene Fehler (Error Snapshots), so dass Sie mit der Fehleranalyse beginnen können, während der Lasttest noch läuft.
Hinweis: Das schliessen dieses Dialogs/Fensters stoppt den Lasttest
nicht. Sie können bei einem schliessen des Fensters (später) das Jobs Menü
im Project Navigator aufrufen und zur real-time Statistik des Jobs
zurückkehren bzw. nach dem Ende des Jobs dessen Statistik-File (*.prxres)
laden.
Ganz oben im dunkelgrau hinterlegten Text wird des Exec Agent angezeigt,
der den Job ausführt, sowie dessen Job-Nummer.
Darunter werden die Job-Parameter angezeigt (siehe Application Reference
Manual, Kapitel 3.7).
Noch etwas darunter sehen Sie, wann der Job gestartet wurde, wie lange
dieser dauern soll, und wie viel Zeit bereits verstrichen ist.
Statistiken:
-
Web Transaction Rate: die Anzahl erfolgreich durchgeführter URL-Calls
pro Sekunde – gemessen über alle Benutzer. Dies entspricht dem
Durchsatz bzw. der Leistungsfähigkeit des Web-Servers.
-
Session Failures: die Anzahl Fehler welche aufgetreten sind
-
Concurrent Active Users: die Anzahl gleichzeitiger Benutzer
Messwerte:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
-
Total Passed URL Calls: Total der erfolgreich durchgeführten URL-Calls
-
Total Failed URL Calls: Total der fehlgeschlagenen URL-Calls
-
Keep-Alive Efficiency (%): Prozentsatz der wieder verwendeten
Netzwerk-Verbindungen
-
Web Transaction Rate: Mittelwert der erfolgreich durchgeführten URLCalls pro Sekunde (Server-Durchsatz)
Alle Rechte vorbehalten
Seite 73 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
-
Total Passed Loops: Total der erfolgreich durchgeführten Loops (Repetitionen der Surf-Session)
-
Total Failed Loops: Total der fehlgeschlagenen Loops
-
User's Think Time (Sec): kumulierte User‟s Think Time eines Benutzers pro Loop
-
Average Session Time (Sec): gesamte Zeitdauer eines Loops pro Benutzer
-
Total Transmitted Bytes: Total der Anzahl Bytes welche vom Lasttest gesendet und empfangen wurden
-
Net. Connect Time (Millisec): mittlere Zeit welche benötigt wurde, um eine Netzwerk-Verbindung zum Web-Server zu öffnen (bevor die Daten des
URL-Calls gesendet werden)
-
Net. Thr. per User: mittlerer Netzwerkdurchsatz eines Benutzers im kiloBytes pro Sekunde
-
Total Net. Throughput (Mbit/s): mittlerer Netzwerkdurchsatz des Lasttests in kiloBit pro Sekunde
Während der Test-Ausführung können Sie
auch real-time Kommentare eingeben.
Diese werden nach dem Test-Ende in den
Diagrammen der Detail-Resultate
dargestellt.
Durch einen Klick auf den Abort Job Button können Sie den Job vorzeitig abbrechen, wobei die bereits gesammelten Daten erhalten bleiben. Es wird
ein Abort-Befehl an das Lasttest-Programm gesendet, welches dann das Statistik-File (*.prxres) schreibt uns sich selbst beendet. Dies kann darum
einige Sekunden dauern.
Durch einen Klick auf den Detailed Statistic Button können Sie weitere Messdaten einblenden, welche die Antwortzeiten der Web-Seiten und der URLCalls enthalten und auch Zugang zu den Error-Snapshots erlauben. Ganz links sehen Sie blau markiert, wie viele Benutzer gerade eine bestimmte WebSeite bzw. einen bestimmten URL-Call ausführen. Die Statistik der URL-Calls enthält nur die Calls einer einzigen Web-Seite (Default: der ersten WebSeite). Durch einen Klick auf das Lupen-Icon einer anderen Web-Seite erhalten Sie deren entsprechende Statistik der URL-Calls. Ist der Wert in der
Spalte Failed grösser 0 (Anzahl Fehler), so wird diese rosa hinterlegt und Sie erhalten durch einen Klick auf das Lupen-Icon Zugang zu den
entsprechenden Error-Snapshots (Kapitel 9.2).
Die real-time Statistiken werden direkt aus dem laufenden Lasttest-Programm in das GUI übertragen und sind nicht mehr verfügbar wenn der Job
beendet wurde. Das Statistik-File des Jobs (*.prxres) hält alle diese Daten jedoch auch fest – inklusive der Error-Snapshots. Diese können Sie nach
dem Ende des Jobs in Menu Analyse Load Test betrachten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 74 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.1.2 Laden des Statistik-Files
Nachdem das Lasttest-Programm beendet wurde liegt dessen Statistik-File (*.prxres) im Job-Directory des lokalen oder remote Exec Agent vor. D.h. Sie
müssen das Statistik-File zuerst laden, bzw. auf den lokale Rechner zurück-transferieren, bevor die Statistiken angezeigt werden können:
Das Menu zeigt alle Files des lokalen bzw. remote Jobs an, wobei in
der Regel jedoch nur das Statistik-File benötigt wird – dieses ist bereits
vorselektiert. Das Log-File des Jobs hat die Dateierweiterung *.out in
welche gegebenenfalls Debug-Information vorhanden sind. Das *.err
File ist üblicherweise leer und enthält Fehler bei Programm-Abstürzen.
Durch einen Klick auf den Acquire Selected Files Button werden die
Files in den (lokalen) Project Navigator übertragen. Ist die Option Load
*.prxres File on Analyse Load Test Menu aktiv (Default), so wird das
Statistik-File zusätzlich in den (flüchtigen) Speicher des Analyse Load
Test Menüs geladen, in welchem die Messresultate betrachtet und
auch mit den Resultaten anderer Testläufe verglichen werden können.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 75 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.1.3 Jobs Menü (Exec Agents)
Mittels des Jobs Menüs, welches vom Project Navigator aus aufgerufen werden kann, können Sie jederzeit auf einzelnen Jobs zugreifen.
Durch die Option Display Exec Agen Jobs of kann der entsprechende
Exec Agent selektiert werden, dessen Jobs angezeigt werden. Zum
betrachten von Cluster-Jobs (Kapitel 8.2.3) müssen Sie die Option
Display Cluster Jobs wählen.
Jeder Job hat eine eindeutige Nummer, welche lokal vom
entsprechenden Exec Agent vergeben wird. In der Spalte
Status wird der aktuelle Zustand der Jobs angezeigt.
Mögliche Zustände sind:
-
running: der Job ist zur Zeit aktiv, d.h. das
Lasttest-Programm läuft noch. Durch einen Klick
auf das Lupen-Icon können Sie zu der real-time
Statistik des Jobs zurückkehren mittels der Sie
gegebenenfalls auch den Job vorzeitig abbrechen
können.
-
completed: der Job wurde bereits durchgeführt
und ist beendet. Durch einen Klick auf das LupenIcon können Sie das Statistik-File laden.
- configured: der Job ist bereit, wurde jedoch noch
nicht gestartet (siehe Kapitel 8.1). Durch einen Klick auf das Lupen-Icon können Sie diesen starten.
-
???: der Job ist in einem undefinierten Zustand da dessen Daten korrupt sind. Einen solchen Job können sie nur löschen
In der Spalte Date wird das Start- bzw. Definitions-Datum des Jobs angezeigt. Die Spalte Test enthält den Namen des Lasttest-Programms sowie
dessen Parameter (siehe Architecture Reference Manual, Kapitel 3.7).
Durch einen Klick auf das
Icon kann ein Job gelöscht werden (ohne weiteren Dialog!).
Hinweis: rufen Sie dieses Menü ab und zu auf, um alte Jobs zu löschen deren Statistik-Files Sie bereits geladen haben. Sie können dazu auch den
Button Clean Up: Delete Old Completed Jobs benutzen, welcher alle durchgeführten Jobs mit Ausnahme des Letzten löscht. Jobs welche im Zustand
??? sind sollten Sie sofort löschen, da diesen den Aufbau des Fensters erheblich verzögern.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 76 / 138
Proxy Sniffer V4.1-C User‟s Guide
8.2
Deutsche Ausgabe
Cluster-Jobs
Nachdem Sie beim Aufruf des Lasttest-Programms dessen Optionen gewählt haben und der Test mittels eines Last-auslösenden Clusters
durchgeführt werden soll (siehe auch Kapitel 10.2), so wird der Lasttest in einem ersten Schritt in den lokalen Cluster Job Controller übertragen, welcher
selbstständig die entsprechenden Cluster-Member (Exec Agents) koordiniert. Es wird dabei ein Cluster-Job erzeugt, welcher eine Cluster-Job-Nummer
hat und zunächst im Zustand „konfiguriert“ ist, d.h. noch nicht läuft:
Dabei wird der Cluster-Job – bzw. die Anzahl emulierte Benutzer –
automatisch auf die Cluster-Member verteilt, abhängig davon,
welche Leistungsfähigkeit (Load Factor) einem Cluster-Member
zugewiesen wurde.
Enthält des Lasttest-Programm Input Files, so wird pro Input File ein
zusätzlicher Dialog angezeigt (Split File ?), mittels dessen sich der
Inhalt des Files auf die Cluster-Member aufteilen lässt. Dies ist z.B.
dann sinnvoll, wenn das Input File Daten von Benutzer-Accounts
enthält, jedoch die Web-Applikation keine doppelten
Logins/Anmelden desselben Benutzer-Accounts erlaubt. Mittels des
entsprechenden Lupen-Icons kann eingesehen werden, wie der
Inhalt des Input-Files auf die Cluster-Member aufgeteilt wird. Wird
die Split-Funktion nicht verwendet, so erhalten alle Cluster-Member
eine vollständige Kopie des Input Files.
Die Verteilung der Benutzer kann auch von Hand angepasst
werden. Dies ist nur dann sinnvoll, wenn ein Exec Agent / ClusterMember momentan nicht erreichbar ist (rosa hinterlegt) und sich der Cluster-Job darum nicht starten lässt. Durch eine Korrektur der Anzahl Benutzer
dieses nicht-verfügbaren Cluster-Members auf 0 und der Zuweisung dessen Benutzer an andere Cluster-Member kann der Job dann dennoch gestartet
werden. Sie müssen in einem solchen Fall etwas Geduld haben; die temporäre, Job-bezogene Konfigurationsänderung des Clusters kann einige Zeit
dauern.
Ansonsten entspricht die Funktionalität dieses Menüs analog derselben wie bei „einfachen“ Exec Agent Jobs (Kapitel 8.1).
Hinweis: eine Konfigurationsänderung des Clusters hat nach dem starten des Tests keinen Einfluss mehr auf den Cluster-Job, da eine Kopie der
Cluster-Definition im entsprechenden Job des Cluster Job Controllers angelegt wird und nur diese während des Lasttests zur Anwendung kommt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 77 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.2.1 Real-Time Cluster-Job Statistik
Die real-time Statistik eines Cluster-Jobs enthält nur die wichtigsten Messergebnisse. Der Cluster-Job selbst enthält wiederum Exec Agent Jobs, welche
vom Cluster Job Controller erzeugt wurden. Durch einen Klick auf das Lupen-Icon eines der beteiligten Exec Agent Jobs gelangen Sie (zusätzlich) in die
real-time Statistik eines Exec Agent Jobs. Nur in dieser erhalten Sie Zugriff auf Error-Snapshots während des Lasttests.
Hinweis: falls Sie einen Cluster-Job abbrechen möchten, so sollten Sie das auf
dieser Ebene tun, was zum Abbruch aller beteiligten Exec Agent Jobs führt.
Das Abbrechen eines korrespondierenden Exec Agent Jobs in dessen realtime Statistik stoppt nur diesen, jedoch nicht den ganzen Cluster-Job.
Dasselbe gilt auch das Laden des Statistik-Files wenn der Cluster-Job
beendet wurde – auch dies muss auf dieser Ebene erfolgen.
Die dargestellten Statistiken im oberen Bereich des Fensters enthalten eine
gemeinsame Sicht über alle Cluster-Member.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 78 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.2.2 Laden des Statistik-Files von Cluster-Jobs
Das Statistik-File eines Cluster-Jobs enthält die vereinigten (verschmolzenen) Messergebnisse aller Cluster-Member. Die dazu nötigen Berechnungen
sind relativ aufwändig, so dass es bis zu 30 Sekunden dauern kann, bis dieser Dialog erscheint. Zusätzlich zu den vereinigten Messergebnissen sind in
demselben Statistik-File auch separat nochmals die Statistiken der einzelnen Exec Agents enthalten (eingebettet).
Das Statistik-File ist blau markiert und bereits vorselektiert. Das Laden
geschieht analog wie bei „einfachen“ Exec Agent Jobs.
Durch einen Klick auf das Lupen-Icon eines Exec Agent erhalten Sie
Zugang zu den *.out und *.err Files des entsprechenden Exec Agents und
können so z.B. im Debug-Output nachvollziehen, wie dessen Teil-Test
genau abgelaufen ist.
Üblicherweise arbeiten Sie im Analyse Load Test Menü nur mit dem vereinigten
Messergebnissen; diese können jedoch auch expandiert werden, um so Zugriff auf die
Messergebnisse eines einzelnen Exec Agent Jobs zu erhalten:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 79 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Dies kann unter anderem dazu genutzt werden um zu Kontrollieren, ob von allen Exec Agents des Cluster-Jobs in etwa gleiche Antwortzeiten gemessen
wurden. Beachten Sie jedoch, dass Streuungen in einem Rahmen von ± 20% durchaus normal sein können:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 80 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.2.3 Jobs Menü (Cluster)
Mittels der Option Display Cluster Jobs gelangen Sie im Jobs Menü zur Ansicht der Cluster-Jobs. Dieses ist analog dem Menü für normale Jobs
aufgebaut (Kapitel 8.1.3). Wiederum können Sie zur real-time Statistik von laufenden Cluster-Jobs gelangen oder das vereinigte Statistik-File von bereits
beendeten Cluster-Jobs laden.
Hinweis: alte Cluster-Jobs sollten sie in diesem Menü
löschen. Dadurch werden auch die entsprechenden Exec
Agent Jobs gelöscht.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 81 / 138
Proxy Sniffer V4.1-C User‟s Guide
8.3
Deutsche Ausgabe
Scripting von Lasttest-Jobs
Mittels des Web Admin GUIs lassen sich mehrere Lasttest-Jobs gleichzeitig starten. Das GUI bietet jedoch keine direkte Unterstützung um Sequenzen
von mehreren Jobs automatisch durchzuführen – oder um die Ausführung verschiedene Jobs untereinander zu synchronisieren.
Um solche Anforderungen zu realisieren müssen Sie Lasttest-Scripts erstellen, welche in der natürlichen Script-Sprache Ihres Betriebssystems
geschrieben werden (*.bat bei Windows-Systemen, bzw. *.sh, *.csh, *.ksk .. etc. bei Unix-Systemen). Als Schnittstelle zur Nutzung der ProduktArchitektur steht Ihnen das leistungsfähige PrxJob Utility zur Verfügung, welches in solchen Scripts verwendet wird. Bei der Windows-Installation des
Produkts wird im Projekt Navigator automatisch das Directory ScriptExamples erstellt, welches entsprechende Beispiele enthält. Diese sind jedoch
(noch) nicht lauffähig, da die in den Scripts angesprochenen Lasttest-Programme fehlen.
Mittels des PrxJob Utility lassen sich analog dem GUI auch Lasttest-Programme auf entfernten Rechnern starten und kontrollieren, und auch ClusterJobs ausführen. Die erstellten Scripts können von Web Admin GUI / Project Navigator direkt aufgerufen werden – oder vom einer Konsole oder von
einem Scheduler-Programm (nicht im Produkt enthalten). Weitere Informationen zum PrxJob Utility sind im Application Reference Manual, Kapitel 4
enthalten.
8.4
Wiederholen von Lasttest-Jobs
Bei jedem interaktiven Start eines Lasttests wird zusätzlich (automatisch) noch eine Job-Vorlagen Datei im XML-Format erzeugt und im entsprechenden
Directory des Project-Navigators abgelegt. Eine solche XML-Datei enthält alle Konfigurationsdaten welche nötig sind um den genau gleichen LasttestJob ein weiteres Mal zu wiederholen. Durch einen Maus-Klick auf das entsprechende Icon des XML-Files wird der Job erneut erzeugt und an den
entsprechenden Exec Agenten bzw. Exec Agent Cluster übertragen. Danach ist dieser sofort startbereit.
Gewöhnlicher interaktiver Start – mit Konfiguration der Input-Daten
parameters
Wiederholen desselben Lasttests
Editieren der Job-Vorlage
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Umbenennen oder Kopieren der Job-Vorlage
Seite 82 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Zusätzlich können auch mehrere Job-Vorlagen in einem ZIP-Archiv zusammengefasst werden. Durch einen Maus-Klick auf ein solches Archiv werden
dann alle darin enthaltenen Jobs gleichzeitig Job erneut erzeugt:
XML-Attribute einer Job-Vorlagen Datei: (siehe auch Kapitel 8: Ausführen von Lasttest-Programmen):
Attribut Name
loadTestProgramPath
startFromExecAgentName
startFromClusterName
concurrentUsers
testDuration
loopsPerUser
startupDelayPerUser
downlinkBandwidth
uplinkBandwidth
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Beschreibung
Absoluter Datei-Pfad des kompilierten Lasttest-Programms (*.class) oder des Lasttest-Program-Archivs
(*.zip)
Name des Exec Agenten von welchem aus der Lasttest gestartet wird (bei Cluster-Jobs: Leerwert)
Name des Exec Agent Clusters von welchem aus der Lasttest gestartet wird (Leerwert falls kein
Cluster-Job)
Anzahl der gleichzeitige Benutzer
Geplante Testdauer in Sekunden (0 = unlimitiert)
Geplante Anzahl der Web-Session Repetitionen pro Benutzer (0 = unlimitiert)
Startup-Verzögerung pro Benutzer in Millisekunden
Reduzierte Downlink-Bandbreite pro Benutzer in Kilobits pro Sekunde (0 = nicht reduziert)
Reduzierte Uplink-Bandbreite pro Benutzer in Kilobits pro Sekunde (0 = nicht reduziert)
Alle Rechte vorbehalten
Seite 83 / 138
Proxy Sniffer V4.1-C User‟s Guide
requestTimeout
maxErrorSnapshots
statisticSamplingInterval
percentilePageSamplingPercent
percentileUrlSamplingPercent
percentileUrlSamplingPercentAddOption
debugOptions
additionalOptions
sslOptions
testRunAnnotation
userInputFields
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Deutsche Ausgabe
Timeout pro URL-Aufruf in Sekunden
Maximal Anzahl von Fehler-Schnappschüssen pro aufgezeichnetes URL (0 = unlimitiert)
Periodischer Zeitintervall in Sekunden zum Sammeln von Stützpunkten bei Diagrammen
Prozentwert der Web-Pages über welche zusätzliche statistische Daten gesammelt werden (0..100)
Prozentwert der URL-Aufrufe über welche zusätzliche statistische Daten gesammelt werden (0..100)
Weitere Optionen beim Sammeln von zusätzliche statistischen Daten pro URL-Aufruf:
0: -- recommended (keine weitere Option, empfohlener Wert)
1: Performace Details per Call (Netzwerk Verbindungs-Aufbauzeit, Request Übertragungszeit, …)
2: Request Headers (Kopie der Request-Header der URL-Aufrufe)
3: Request Content (Kopie des Request-Contents – Formulardaten – der URL-Aufrufe)
4: Request Headers & Content
5: Response Headers (Kopie der Response-Header der URL-Aufrufe)
6: Response Headers & Content (Kopie der Response-Header und des Contents der URL-Aufrufe)
7: All – without Response Content (Kopie aller URL-Daten, jedoch ohne Response-Content)
8: All – full URL Snapshot (vollständige Kopie aller URL-Daten)
Debug Optionen: (Text-Wert)
“”: (none – recommended)
“-dl”: debug loops (including var handler)
“-dh”: debug headers & loops
“-dc”: debug content & loops
“-dC”: debug cookies & loops
“-dK”: debug keep-alive & loops
“-dssl”: debug SSL handshake & loops
Weitere Optionen zur Programm-Ausführung (Text-Wert)
SSL/HTTPS Optionen: (Text-Wert)
“all”: automatisch (beste) Erkennung der SSL Protokoll-Version (TLS bevorzugt)
“tls”: SSL Protokoll-Version auf TLS festgelegt
“v3”: SSL Protokoll-Version auf V3 festgelegt
“v2”: SSL Protokoll-Version auf V2 festgelegt
Kommentar zum Testlauf (Text-Wert)
Label, Variablen-Name und Default-Wert bei User-Input Fields
Alle Rechte vorbehalten
Seite 84 / 138
Proxy Sniffer V4.1-C User‟s Guide
8.5
Deutsche Ausgabe
Project Navigator
Das Project Navigator Menü (kurz der „Project Navigator“ genannt) bietet nebst dem Starten und Verwalten von Lastest-Programmen noch weitere
hilfreiche Funktionalitäten, welche in diesem Teil-Kapitel kurz erklärt werden.
Als erstes möchten wir Ihnen empfehlen, eine möglichst leicht
fassbare Directory-Struktur anzulegen, welche einen Bezug zu
Ihren Projekten hat. Dabei ist es zur Übersicht oft sinnvoll, wenn
Sie für einzelne getestete Releases oder sogar für einzelne TestTage eigene Sub-Directories anlegen.
Zum Anlegen eines neuen Sub- Directories müssen Sie zuerst
(links) ein bestehendes Directory selektieren und danach auf das
„Create Directory“ Icon klicken.
Hinweis: alternativ können Sie neue Directories auch über das
Betriebssystem anlegen (z. B. von einem File-Explorer oder von
einem System-Terminal aus). Das Project Navigator Menü wurde
bewusst so realisiert, das keine Divergenzen mit Vorgängen auf
Betriebssystem-Ebene auftreten können.
Nach dem Anlegen eines neuen Sub- Directories können Sie
auch bereits bestehende Lasttest-Programme inkl. deren WebBrowser Session und Input-Files in das neue Sub-Directory
kopieren, indem Sie diese mittels der entsprechenden Checkbox
markieren, und dann auf das „Copy Selected Files“ Icon klicken.
Danach können Sie im Project Navigator links das (neue) ZielSub-Directory mit einem Klick auswählen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 85 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Einzelne Java-Lasttest Programmen können auch umbenannt
werden (oder mit neuen Namen kopiert werden). Dies kann
jedoch nur über den Project-Navigator erfolgen, d.h. nicht über
das Betriebssystem, da Java-Programme im Source-Code
Referenzen auf den eigenen Namen enthalten und darum nach
einem „gewöhnlichen“ umbenennen nicht mehr kompilierbar oder
lauffähig sind. Der Project Navigator unterstützt das umbenennen
von Java-Programmen indem die entsprechenden Referenzen im
Source-Code automatisch korrigiert werden.
Hinweis: kompilierte Java-Programme (*.class) können niemals
umbenannt werden. Nur Source-Code Dateien (*.java) lassen
sich umbenennen.
Beachten Sie bitte, dass der Project-Navigator z.B. beim
überschreiben oder löschen von Dateien mittels einer rosa
hinterlegten Status-Zeile eine Bestätigung anfordert, ob die
Aktion wirklich durchgeführt werden soll. Sobald die die rosa
hinterlegte Status-Zeile erscheint sollten Sie deren Inhalt kurz
durchlesen und gegebenfalls den Vorgang bestätigen. Beispiel
im Bild links: löschen von Files.
Durch einen Klick das
Icon im Projekt Navigator wird im
Directory-Listing zusätzlich eine Vorschau der Messdaten der
Statistik-Files angezeigt, inklusive dem Kommentar des
entsprechenden Testlaufs. Zusätzlich werden auch die
Kommentare zu den aufgezeichneten Web-Browser Sessions
und der Lasttest-Programmen ausgegeben (falls vorhanden).
Diese Funktionalität erlaubt Ihnen u.a. einzelne Statistik-Files von
anderen zu unterscheiden, auch wenn der entsprechende
Lasttest mit genau den gleichen Input-Parametern gestartet
wurde. Voraussetzung hierzu ist jedoch, dass Sie beim jedem
Start eines Lasttest-Programms einen unterschiedlichen
Kommentar eingegeben haben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 86 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
8.5.1 Konfiguration des Project Navigator Haupt-Directories
Sie können Proxy Sniffer so konfigurieren, dass das Project Navigator Haupt-Directory „MyTests“ auf eine gemeinsame Datei-Ablage zeigt (shared Disk
oder shared Directory), so dass z.B. alle Mitglieder desselben Teams dieselbe Ansicht haben. Bei Windows-Systemen muss dazu ein sog. “Share”
vorhanden sein. Bei Unix-Systemen muss dazu das gemeinsame Haupt-Directory zuvor über NFS oder Samba gemountet werden. Gehen Sie dazu wie
folgt vor:
Bei Windows-Systemen müssen Sie die Proxy Sniffer Konfigurations-Datei mytests.dat mit einem Text-Editor wie z.B. Notepad editieren, so
dass deren Inhalt (welcher nur aus einer einzigen Text-Zeile besteht) auf die Disk bzw. das Directory der gemeinsamen Ablage zeigt.
Gegebenfalls müssen Sie das Directory in der gemeinsamen Ablage zuvor manuell über das Betriebssystem erzeugen. Die Proxy Sniffer
Konfigurations-Datei mytests.dat befindet sich im Installations-Directory des Proxy Sniffer Produkts (üblicherweise in
C:\Programme\ProxySniffer).
Bei Unix-Systemen müssen Sie das File mytests.dat zuerst manuell in Proxy Sniffer Installations-Directory z.B. mittel vi erzeugen, und in
diesem als einzige Text-Zeile den Pfad des neuen Haupt-Directories eingeben. Die Proxy Sniffer Konfigurations-Datei mytests.dat muss im
Installations-Directory des Proxy Sniffer Produkts angelegt werden (üblicherweise in /usr/local/prxsniff). Hinweis: bei Unix-Systemen auf denen
nur ein sog. Exec Agent gestartet wurde ist dies nicht nötig.
Nachdem Sie das neue Project Navigator Haupt-Directory gesetzt haben müssen Sie zuerst Proxy Sniffer beenden. Danach müssen Sie unbedingt alle
Cookies in Ihrem Web-Browser löschen, da das (alte) Haupt-Directory zusätzlich auch als Cookie im Web-Browser gesetzt wurde. Danach können
Sie Proxy Sniffer erneut starten.
Informationen zu weiteren Proxy Sniffer Konfigurationsfiles finden Sie im „Application Reference Manual“, Kapitel 7.
.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 87 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9 Auswerten der Messergebnisse
Das Auswerten der Messergebnisse geschieht im Analyse Load Test Menü, in welches die Statistik-Files (*.prxres) geladen werden. Das Laden eines
Files geschieht durch einen Klick auf das Icon eines Statistik-Files im Projekt Navigator oder auch implizit, wenn Sie ein Statistik-File eines gerade
beendeten Testlaufs laden (zusätzlich wird dieses dabei im Projekt Navigator abgelegt).
Das Menü arbeitet mit einem flüchtigen Speicher, d.h. wenn Sie ein geladenes File hier löschen, so wird dieses nur aus dem Speicher entfernt – dabei
bleibt jedoch das eigentliche File im Projekt Navigator erhalten.
Sie können dieses Menü auch vom Hauptmenü oder vom Projekt Navigator aus aufrufen, ohne Statistik-Files zu laden.
Spalten:
Load Test: Name des
Lasttest-Programms
Start Date: Start-Datum und
-Zeit des Testlaufs
Users: Anzahl Benutzer
Test Duration: Zeitdauer des
Testlaufs
Detailergebnisse
der Testläufe
Web. Trans.: Anzahl
erfolgreiche URL-Aufrufe pro
Sekunde (Durchsatz des
Web-Servers)
Sess. Failures: Prozentsatz
der fehlgeschlagenen Loops
Net. Throughput: mittlerer
Netzwerkdurchsatz des
Testlaufs
Lastkurven und Vergleichsdiagramme –
Vergleich über mehrere Testläufe
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Annotation: Kommentar des
Testlaufs bei dessen Start
Alle Rechte vorbehalten
Seite 88 / 138
Proxy Sniffer V4.1-C User‟s Guide
9.1
Deutsche Ausgabe
Detailergebnisse
Pro Testlauf können viele verschiedene Detailergebnisse dargestellt werden.
Rechts oben im Titel des Fensters ist das ReportIcon, welches das erstellen eines PDF-Reports
erlaubt. Danach folgen, gelb hinterlegt, die
Eckdaten der Programmausführung.
Darunter werden weitere, allgemeine Daten des
Testlaufs angezeigt:
Advanced Test Parameter:
Dies ist ein Auszug der Test Input-Parameter.
Measured Results per Single User – per Loop:
Diese Messergebnisse beziehen sich die
Mittelwerte eines Loops, gemessen pro Benutzer:
-
AV Session Time per Loop: mittlere
Zeitdauer einer Surf-Session Repetition
-
AV Response Time per Page: mittlere
Antwortzeit einer Web-Seite (über alle WebSeiten).
-
Network Throughput per User: mittlerer
Netzwerkdurchsatz, pro Benutzer
Overall Test Results:
-
Web Transaction Rate: Mittelwert der
Anzahl erfolgreich durchgeführten URLCalls pro Sekunde, über alle Benutzer und
über die ganze Zeitdauer des Testlaufs gemessen. Dies entspricht dem Durchsatz des Web-Servers
-
Session Failure Rate: der Prozentsatz der fehlgeschlagenen Loops (Fehlerrate), über alle Benutzer gemessen. Durch einen Klick auf den
Prozentsatz gelangen Sie zu den Error-Snapshots (Kapitel 9.2)
-
Total Network Throughput: mittlerer Netzwerkdurchsatz des gesamten Testlaufs
Falls mehrere Resultate geladen wurden, so können Sie in der rechten oberen Ecke unter Load Test zwischen diesen navigieren. Weitere Details des
Testlaufs lassen sich abrufen, indem Sie auf einen Titel im rot umrahmten Bereich klicken. In den nachfolgenden Unterkapiteln werden diese kurz
erklärt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 89 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.1 Test Scenario
Gibt einen Überblick über die Testumgebung, die Input-Parameter des Testlaufs und die aufgezeichnete Web-Session.
9.1.2 Diagram: Response Time per Page
Zeit die mittlere Antwortzeit der Web-Seiten an.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 90 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.3 Results per URL Call (Overview)
Zeigt die eine Statistik über alle URL-Calls an.
Spalten:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
-
Test: fortlaufende Nummerierung. Durch einen Klick auf
die Test-Nummer gelangen Sie in das URL Detail Menu.
-
# Passed: Anzahl erfolgreiche Aufrufe
-
# Failed: Anzahl fehlgeschlagene Aufrufe, ist dieser
grösser 0, so führt ein Klick zu den entsprechenden ErrorSnapshots des URL-Calls (Kapitel 9.2)
-
AV Time: mittlere Zeitdauer des URL-Calls
-
<= 90 %: maximale Zeitdauer des URL-Calls, ohne die
10% der langsamsten Messungen (90% Percentile Wert).
Die Percentile Werte sind nur verfügbar, wenn beim
starten des Tests eine Percentile Sampling Rate gesetzt
wurde, und mindesten 5 Einzel-Messungen gesammelt
wurden. Durch einen Klick auf den Wert gelangen Sie in
das entsprechende Percentile Diagramm.
-
AV Size: mittlere Grösse der gesendeten und
empfangenen Daten pro URL-Call
-
URL: Bezeichnung des URLs
Alle Rechte vorbehalten
Seite 91 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.4 Results per URL Call (Details)
Zeigt Messdetails pro URL-Call an. Wenn der Aufruf von einer Test-Nummer der Statistik über alle URL-Calls kam (vorhergehendes Unterkapitel), so ist
der entsprechende URL-Call blau hinterlegt und mit einem kleinen roten Pfeil markiert.
Spalten:
Test: fortlaufende Nummerierung
Av Net Con: mittlere Zeitdauer zum Aufbau einer TCP/IP
Netzwerkverbindung zum Web-Server – bevor Daten
ausgetauscht werden (socket connect time). Falls Keep-Alive vom
Server unterstützt wird enthalten einige URL-Calls keine solche
Zeit, da kein Verbindungs-Aufbau mehr nötig war.
Av Req Trm: mittlere Zeitdauer zum senden der URL-Anfrage an
den Web-Server, nachdem die Netzwerkverbindung steht.
Av Wait: mittlere Wartezeit des URL-Calls, nachdem die Anfrage
übermittelt wurde, bis das erste Byte der Antwort des Servers
eintrifft.
Av Header Rcv: mittlere Zeitdauer zum Empfang des HTTP Response-Headers vom Server, nachdem das erste Byte eingetroffen ist.
Av Content Rcv: mittlere Zeitdauer zum Empfang der Content-Daten (HTML, Gif-Bild etc.), nachdem der HTTP Response-Header empfangen wurde
Min Time: kleinste jemals gemessene Zeitdauer des URL-Calls
Av Time: mittlere Zeitdauer des URL-Calls
Max Time: grösste jemals gemessene Zeitdauer des URL-Calls
Av Throughput: mittlerer Netzwerkdurchsatz des URL-Calls
Hinweis: durch einen Klick auf die Test-Nummerierung gelangen Sie wieder zurück in die Statistik über alle URL-Calls.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 92 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.5 Diagram: Response Time Percentiles
Zeigt pro Web-Seite und pro URL-Call die kumulierte statistische Verteilung der Antwortzeiten an, falls beim Starten des Testlaufs (Kapitel 8) eine
Additional Sampling Rate per Page Call und/oder eine Additional Sampling Rate per URL Call gewählt wurde und mindesten 5 Einzel-Messungen
während des Testlaufs gesammelt wurden.
Mittels der Auswahl-Optionen lässt sich die Web-Seite und
innerhalb dieser ein URL-Call auswählen. --- fur URL-Calls
bedeutet, dass das Percentile Diagramm bezüglich der
Antwortzeit für die gesamte Web-Seite gilt.
Es wird eine kumulierte Verteilung der Antwortzeiten
angezeigt. 90% bedeutet, die Antwortzeit des langsamsten
je gemessenen URL-Calls innerhalb aller 90% der
schnellsten URL-Calls (d.h. ohne die 10% Ausreisser).
Durch einen Klick auf den Apply Button werden zusätzlich
alle gesammelten Einzelmessungen unterhalb des
Diagramms dargestellt, welche sich auch in Form einer
HTML-Tabelle exportieren lassen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 93 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.6 Diagram: Top Time-Consuming URLs
Zeigt eine Zusammenstellung der langsamsten URL-Calls der Web-Session an. Die einzelnen Zeiten sind Mittelwerte.
9.1.7 Diagram: Concurrent Users
Zeigt die Anzahl der Benutzer über die Zeitdauer des Testlaufs an. Die Stützpunkte werden durch die Statistic Sampling Rate beim Starten des
Testlaufs bestimmt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 94 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.8 Diagram: Average Session Time
Zeigt die Zeitdauer eines Loops an (aufgezeichnete Web-Session pro Benutzer) über die Zeitdauer des Testlaufs an. Die Stützpunkte werden durch die
Statistic Sampling Rate beim Starten des Tests bestimmt.
Die kumulierte User‟s Think Time über die Web-Session (Loop) wird rot
dargestellt – keiner als diese Zeit kann die Zeitdauer eines Loops nicht
werden. Die Differenz zur blauen Kurve ist die kumulierte Wartezeit auf die
Antworten des Web-Servers während eines Loops.
9.1.9 Diagram: Web Transaction Rate
Zeigt die Anzahl erfolgreiche URL-Calls pro Sekunde über die Zeitdauer des Testlaufs an. Die Stützpunkte werden durch die Statistic Sampling Rate
beim Starten des Testlaufs bestimmt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 95 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.10 Diagram: Completed Loops
Zeigt die Anzahl Loops (Web Surf-Sessions) an, welche pro Minute erfolgreich durchgeführt wurden – über alle Benutzer gemessen.
9.1.11 Diagram: Average Network Connect Time
Zeigt die Mittlere Zeitdauer zum Aufbau einer TCP/IP Netzwerkverbindung zum Web-Server über die Zeitdauer des Testlaufs an – bevor Daten
ausgetauscht werden (socket connect time). Die Stützpunkte werden durch die Statistic Sampling Rate beim Starten des Testlaufs bestimmt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 96 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.12 Diagram: Total Network Throughput
Zeigt den Netzwerkdurchsatz über die Zeitdauer des Testlaufs an (Netzwerkbelastung). Die Stützpunkte werden durch die Statistic Sampling Rate
beim Starten des Testlaufs bestimmt.
9.1.13 Diagram: HTTP Keep-Alive Efficiency
Zeigt die HTTP Keep-Alive Effektivität des gesamten Testlaufs an (Prozentsatz der wieder verwendeten Netzwerkverbindungen).
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 97 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.14 Diagram: SSL Cache Efficiency
Zeigt die Effektivität des SSL Session Client-Caches an – gemessen über alle Benutzer. D.h. wie oft bestehende Client-seitige SSL-Sessions wieder
verwendet werden konnten (dieser Wert wird durch die SSL-Konfiguration des Web-Servers massgeblich beeinflusst). Das Diagramm steht nur zur
Verfügung wenn jeder Benutzer mindestens 5 Loops ausgeführt hat und verschlüsselte HTTPS-Verbindungen verwendet wurden.
9.1.15 Diagram: Session Failures
Zeigt die Anzahl der aufgetretenen Fehler über die Zeitdauer des Testlaufs an. Die Stützpunkte werden durch die Statistic Sampling Rate beim Starten
des Testlaufs bestimmt.
Hinweis: im nebenstehenden Diagramm sind einige Stützpunkte etwas
verwischt. Dies kommt daher, dass der Testlauf ein Cluster-Job war, welcher
das vereinigte Resultat alle Daten der Cluster-Member aggregiert. Da jedoch
aus Stabilitäts- und Performance-Gründen während des Testlaufs keine
Synchronisation der Cluster-Member geschieht, ergeben sich kleine
Laufzeitunterschiede bezüglich der Stützpunkte. Die entsprechenden
Hüllkurven der Cluster-Member werden korrekt vereinigt, dabei fallen jedoch
während eines Sampling-Intervalls nicht alle Stützpunkte auf den genau
gleichen Zeitpunkt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 98 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.16 Diagram: Top Error Types
Zeigt die häufigsten Fehler-Ursachen an (Fehler-Typen)
9.1.17 Diagram: Number of Errors per Page
Zeigt die Web-Seiten an, bei welchen am häufigsten ein Fehler aufgetreten ist.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 99 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.1.18 Diagram: Number of Errors per URL
Zeigt die URL-Calls an, bei welchen am häufigsten ein Fehler aufgetreten ist.
Die Nummern der URL-Calls (in eckigen Klammern) entsprechen den TestNummern der Statistik über alle URL-Calls
9.2
Error-Snapshots
Tritt während des Testlaufs ein Fehler auf, so wird der entsprechende Fehler-Zähler des URL-Calls erhöht, und gleichzeitig ein Error-Snapshot angelegt,
falls die maximale Anzahl Error-Snapshots des URL-Calls noch nicht überschritten wurde (maximale Anzahl = Konfiguration beim Starten des Testlaufs).
Ein solcher Error-Snapshot enthält im übertragenen Sinn die umfassenden, gefrorenen Daten des URL-Calls, zu genau dem Zeitpunkt, an dem der
Fehler aufgetreten ist. Das erstellen eines Error-Snapshots während eines Lasttests beansprucht Ressource und eventuell sehr viel Speicher. Aus
diesem Grund ist deren Anzahl pro URL-Call limitiert.
Ein Error-Snapshot enthält folgende Daten:
1. Eine Übersicht des aufgetretenen Fehlers, inkl. eine Tipp, warum der Fehler aufgetreten ist.
2. Die vollständigen gefrorenen Daten des fehlgeschlagenen URL-Calls, inklusive des HTTP Request-Headers, des Request-Contents, des
Response-Headers und des Respons-Contents (falls vorhanden)
3. Den Log/Debug-Output des aktuellen Loops – auch wenn keine Debug-Option beim Starten des Testlaufs gewählt wurde
4. Einen Schnappschuss der Aktivitäten aller Benutzer, zum Zeitpunkt als der Fehler auftrat.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 100 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Der obere Teil des Fensters enthält eine Liste von ErrorSnapshots; je nach aufgerufenem Kontext über den
gesamten Testlauf / oder pro Web Page / oder pro URLCall. Die Liste lässt sich nach URL-Calls oder nach dem
Zeitpunkt der Fehler sortieren. Durch einen Klick auf das
Lupen-Icon wird im unteren Teil des Fensters der
eigentliche Error-Snapshot darggestellt:
In fetter schwarzer Schrift wird die Nummer des URLCalls, eine fortlaufende relative Fehlernummer, und eine
kurze Begründung des Fehlers (Fehler-Type) dargestellt.
Unmittelbar rechts daneben kann ein entsprechender Tipp
aufgerufen werden, welcher erklärt weshalb der Fehler
aufgetreten ist (Error Explanation).
Darunter erfolgt rosa hinterlegt eine Übersicht des Fehlers:
-
Page: die Web-Seite auf welcher der Fehler
aufgetreten ist
-
Error Date: Datum und Zeitpunkt des Fehlers; und
in runden Klammern der relative Zeitpunkt nach
dem Starten des Testlaufs.
-
Currrent Thread: aktuelle Benutzer-Nummer (0, 1,
2 ..)
-
URL [Testnummer]: fehlgeschlagener URL-Call,
HTTP Status-Code, Fehler-Typ
-
URL Exec Step: aktueller innerer Zustand, bzw.
Ablaufschritt des URL-Calls, als der Fehler auftrat. Mögliche Werte sind:
o
No Step / not Initialized: der URL-Call wurde noch nicht gestartet
o
Open Network Connection to Proxy: es wird eine Netzwerk-Verbindung zu einem abgehenden Proxy-Server aufgebaut
o
Open Network Connection: es wird eine Netzwerk-Verbindung zum Web-Server aufgebaut
o
Transmit HTTP Request: der HTTP Request-Header und (gegebenenfalls) -Content wird gesendet (URL-.Anfrage)
o
Wait for Server Response: es wird auf eine Antwort des Web-Servers gewartet (noch kein erstes Byte eingetroffen)
o
Receive HTTP Header: der HTTP Response-Header der Server-Antwort wird empfangen
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 101 / 138
Proxy Sniffer V4.1-C User‟s Guide
-
Deutsche Ausgabe
o
Receive Content: der HTTP Response-Content der Server-Antwort wird empfangen (Nutzdaten: HTML, GIF-Bild, etc.)
o
Close Network Connection: die Netzwerk-Verbindung zum Web-Server wird geschlossen
o
All Done: der URL-Aufruf wurde bezüglich des HTTP-Protokolls erfolgreich abgeschlossen, jedoch ist der empfangene HTTP StatusCode, oder der empfangene MIME-Type oder der empfangene Dateninhalt falsch.
Error-Log: Link auf den Log-Output des Loops und ausführliche Fehlermeldung
Danach erfolgt die Darstellung des HTTP Request-Header, des Request-Contents, des Response-Headers und des Respons-Contents (falls jeweils
vorhanden). Falls der Response-Content im HTML-Format vorliegt, so kann dieser nachträglich im Web-Browser dargestellt werden (jedoch ohne
Bilder). Dabei werden die Daten aus dem Statistik-File gewonnen, d.h. dies ist auch dann noch möglich, wenn der Web-Server nicht mehr verfügbar /
offline ist.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 102 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Anschliessend erfolgt die Ausgabe des Debug-Outputs des Loops. Dabei können auch die (damals) aktuellen Werte von Variablen des Var Handlers
betrachtet werden:
Ganz zum Schluss erfolgt eine die Darstellung der Aktivität aller Benutzer zum Zeitpunkt des Fehlers. Der fehlgeschlagene URL-Call ist rosa hinterlegt.
Diese Statistik ist während des real-time Monitoring (noch) nicht verfügbar. In der Spalte Threads wird die Anzahl der Benutzer angezeigt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 103 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
9.2.1 Pseudo-Fehlercodes
Ein URL-Call liefert in der Regel einen HTTP Status-Code zurück (200, 302, 404 ..) welche vom Web-Server gesetzt wird. Es können jedoch Fehlerfälle
auftreten, bei denen es gar nicht dazu kommt, dass der Web-Server einen Status-Code setzen kann, oder bei denen der Status-Code wohl richtig war,
jedoch etwas mit dem Inhalt der empfangenen Daten nicht stimmt. In solchen Fällen wird ein „Pseudo-Fehlercode“ anstelle des HTTP Status-Codes
verwendet, welcher immer einen negativen Wert hat. Mögliche Werte sind:
Pseudo-Fehlercode
Bedeutung
-100
Es stehen nicht genug Daten zur Verfügung, um den URL-Call durchzuführen (interner Fehler)
-99
Der URL-Call wurde niemals ausgeführt
-98
Es ist ein interner Netzwerk-Fehler beim Last-auslösenden Exec Agent aufgetreten. Es stehen auf Client-Seite nicht genug Netzwerk-Ressourcen zur
Verfügung um den URL-Call zu initiieren.
-11
Es konnte keine SSL-Netzwerkverbindung zu einem abgehenden Proxy-Server aufgebaut werden
-10
Der Name des Web-Servers konnte nicht in eine IP-Adresse übersetzt werden (DNS Problem oder falscher Name)
-9
Der Web-Server hat den Aufbau der Netzwerkverbindung verweigert (zurückgewiesen)
-8
Der Web-Server hat die Netzwerkverbindung akzeptiert, danach jedoch diese mitten währen des laufenden Datentransfers geschlossen (abgebrochen)
-7
Der Web-Server lieferte eine Antwort, welche im HTTP-Protokoll nicht vorgesehen ist (Protokollverletzung)
-2
Der Web-Server lieferte keine Antwort. Der URL-Call wurde wegen Zeitüberschreitung abgebrochen
-1
Es ist ein allgemeiner Fehler aufgetreten
9.2.2 Übersetzen der URL Test-Nummerierung
Falls Sie den Filter im Hauptmenü beim Erzeugen des Lasttest-Programms eingesetzt haben, so sind die URL-Calls des Testlaufs nun anders
durchnummeriert als die der aufgezeichneten Web-Session. Eine Gegenüberstellung der beiden Nummerierungen erhalten Sie dadurch, dass Sie im
Hauptmenü auf das View Icon klicken. Die Spalte Item enthält die Nummerierung der Web-Session. Die Spalte Test enthält die entsprechende
Nummerierung der URL-Calls des Testlaufs.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 104 / 138
Proxy Sniffer V4.1-C User‟s Guide
9.3
Deutsche Ausgabe
Lastkurven-Diagramme
Um die maximale Leistungsfähigkeit des Web-Servers bzw. der Web-Applikation zu erfahren müssen Sie denselben Test mehrere Male nacheinander
durchführen, jedoch bei jedem Testlauf eine unterschiedliche Anzahl Benutzer verwenden. Wir empfehlen Ihnen die Last bei jedem Testlauf
logarithmisch zu steigern, um so schnell einen Überblick zu erhalten (z.B. Testläufe mit 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000 .. Benutzer). Sie erhalten
dadurch die Lastkurven, d.h. das Antwortzeitverhalten, den Server-Durchsatz und die Server-Stabilität in Abhängigkeit von der Anzahl
Benutzer.
Bei geringer Last sind die
Antwortzeiten unabhängig von der
Anzahl Benutzer konstant. Wird nun
die Last gesteigert und der
maximale Durchsatz des Servers
erreicht (gemessen in URL-Calls pro
Sekunde – Web Transaction Rate),
so steigen ab dieser Belastung die
Antwortzeiten mindesten Linear mit
der Last an, da die Leistungsgrenze
des Servers erreicht wurde.
Web-Seiten bzw. URLs, bei denen
die Antwortzeiten unter Last stärker
steigen als bei anderen sind
potentielle Tuning-Kandidaten. D.h.
es sollte untersucht werden, wieso
deren Antwortzeiten plötzlich stark
steigen.
Im Leitfaden zum erfolgreichen
Durchführen von Lasttests,
welchen Sie auf der ProduktHomepage finden, erhalten Sie
mehr Informationen zu dieser
Thematik.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 105 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Selektieren Sie im Analyse Load Test Menü mehrere Testläufe des gleichen Lasttest-Programms mit jeweils einer unterschiedlichen Anzahl Benutzer
und wählen Sie die Option Load Curve um die Lastkurven darzustellen:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 106 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Rechts oben, im Titel des Fensters, könne Sie einen PDF-Report erzeugen und die Messdaten auch exportieren.
Die rot markierten Rhomben der Diagrame
sowie deren Legenden können Sie anklicken,
und gelangen so zu den Detailergebnissen der
entsprechenden Testläufe.
Alle 4 dargestellten Diagramme sind
voneinander unabhängig. Sie können mittels
der Auswahllisten wählen, welche Messwerte
dargestellt werden:
-
Average Session Time per User - per
Loop: kumulierte Zeit eines Loops pro
Benutzer. Diese ist das
Antwortzeitverhalten des Web-Servers.
-
Web Transaction Rate: Anzahl URLCalls pro Sekunde. Dies ist der
Durchsatz des Web-Servers.
-
Session Failure Rate: Prozentsatz der
fehlgeschlagenen Loops. Dies ist die
Stabilität des Web-Servers.
-
Average Network Connect Time:
Aufbauzeit der Netzwerkverbindungen
(Stabilität des Netzwerks und des
TCP/IP Stacks des Servers)
-
Total Network Throughput: Dies ist
der Netzwerkdurchsatz (Netzlast)
Bytes: Netzwerkdurchsatz des schnellsten URL-Calls mit mindesten 4096 Bytes empfangenen Daten.
Highest URL Throughput >= 4096
-
URL: Antwortzeit eines URL-Calls: In den beiden unteren Diagrammen können Sie auch mehrere URL-Calls gleichzeitig selektieren.
-
Page: Antwortzeit einer Web-Seite. In den beiden unteren Diagrammen können Sie auch mehrere Web-Seiten gleichzeitig selektieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 107 / 138
Proxy Sniffer V4.1-C User‟s Guide
9.4
Deutsche Ausgabe
Vergleichs-Diagramme
Mittels Vergleichs-Diagrammen können Sie die
Antwortzeiten verschiedener Testläufe direkt
miteinander Vergleichen. Dies wird vor allem zur
Visualisierung von Tuning-Fortschritten verwendet
(vorher / nachher Vergleich), wobei oft Testläufe mit
einer gleichen Anzahl von Benutzern verglichen
werden. Dies ist aber nicht zwingend – Sie können beliebige Testläufe miteinander vergleichen – solange diese dieselben Web-Seiten umfassen
(Kriterium: gleicher, übereinstimmender Seitenwechsel-Kommentar der verglichenen Lasttest-Programme):
Rechts oben, im Titel des Fensters, könne Sie einen PDF-Report
erzeugen.
Das obere Diagramm zeigt einen Vergleich der Antwortzeiten aller
Web-Seiten an.
Im unteren Diagramm wird ein Vergleich aller URL-Calls einer WebSeite dargestellt (Default: der Ersten). Durch einen Klick in einen
Balken oder in die Legende des obern Diagrams kann im unteren
Diagramm der Vergleich der URL-Calls für eine andere Web-Seite
dargestellt werden.
Durch einen Klick auf einen Balken im unteren Diagramm werden die
Detailergebnissen des entsprechenden Testlaufs angezeigt.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 108 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
10 Konfiguration und Architektur bei verteilten Lasttests
Lasttests lassen sich nicht nur vom lokalen Rechner aus starten, sondern können auch auf Remote-Rechner übertragen werden. Ebenso kann ein
einziger Lasttest auch auf mehrere Rechner aufgeteilt werden, indem die Last-auslösenden Rechner zu einem „virtuellen“ Applikations-Cluster
kombiniert werden. Die Konfiguration geschieht sehr einfach und elegant und setzt nur voraus, dass auf den beteiligten Last-auslösenden Systemen ein
Exec Agent Prozess installiert ist. Dies ist z.B. implizit der Fall, wenn das Produkt auf mehreren Windows- oder Unix-Systemen installiert und gestartet
wurde (jedes System enthält dabei bereits einen Exec Agent). Alternativ können einzelne Exec Agent Prozesse auch separat als Windows-Service bzw.
Unix-Daemon installiert werden. Weitere Informationen hierzu sind im Application Reference Manual enthalten.
Die Kommunikation zwischem dem Web Admin GUI und den remote Exec Agent Prozessen geschieht üblicherweise mittels „roher“
Netzwerkverbindungen auf dem TCP/IP Port 7993. Die Nummer des Ports lässt sich jedoch frei konfigurieren. Die Kommunikation kann alternativ auch
über HTTP oder HTTPS erfolgen (tunneling), wobei dabei der Datenverkehr auch (optional) über einen zwischengeschalteten (abgehenden) HTTP/S
Proxy-Server erfolgen kann. Die Unterstützung von Proxy-Servern bedeutet in diesem Zusammenhang, das auch Lasttests von Arbeitsplätzen in
geschützten Firmen-Netzwerken gestartet werden können, welche danach irgendwo im Internet laufen – ohne dass dabei abgehende Firewall-Rules
geschaltet werden müssen.
Die Rechner eines Last-auslösenden Clusters können auch heterogen sein, d.h. es lassen sich Windows- und Unix-Systeme im gleichen Cluster
mischen. Die einzelnen Rechner eines Cluster können sich auch an verschiedenen Standorten befinden und über unterschiedliche Protokolle mit dem
Web Admin GUI bzw. dem Cluster Job Controller kommunizieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 109 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
10.1 Konfiguration von weiteren Last-auslösenden Rechnern
Weitere Last-auslösende Rechner können mittels des Network Menüs hinzugefügt werden, welches vom Project Navigator aus zugänglich ist:
Im oberen, linken Bereich des Fensters wird eine
Liste aller bereits definierten Exec Agenten
angezeigt. Im unteren Bereich des Fensters kann ein
neuer Exec Agent erfasst oder die Konfiguration
eines bestehenden Exec Agents modifiziert werden
(durch einen Klick auf das Lupen-Icon in der Liste).
Eingabefelder zur Erfassung oder Modifikation:
-
Description: frei wählbare Bezeichnung des
Exec Agents
-
Host: TCP/IP Adresse oder Hostname des
Rechners
-
Port: TCP/IP Port
-
Protokoll: Kommunikationsprotokoll
-
Username / Passwort: nur bei beim HTTP
bzw. HTTPS Protokoll kann der Aufruf des
Exec Agents optional mit einem
Benutzernamen und einem Passwort
geschützt werden
-
Die weiteren Felder bezüglich der Proxy
Konfiguration kommen nur zur Anwendung
falls die Kommunikation bei HTTP/S über
einen abgehenden Proxy-Server erfolgt.
Die Erreichbarkeit bzw. die richtige Konfiguration eines Exec Agents kann durch einen Klick auf das entsprechende
Agenten geprüft werden.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Icon in der Liste der Exec
Seite 110 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
10.2 Konfiguration von Last-auslösenden Clustern
Nachdem mehrere Exec Agenten definiert wurden, können diese zusätzlich zu einem Last-auslösenden Cluster aggregiert werden. Es können auch
mehrere Cluster konfiguriert werden, welche ganz oder teilweise dieselben Exec Agenten umfassen.
Nachdem der frei definierbare Name des Clusters
eingegeben wurde, lassen sich die Cluster-Member
unter Available Exec Agents hinzufügen, indem auf
den entsprechenden blauen Pfeil geklickt wird.
Durch einen Klick auf das Lupen-Icon kann der LastFaktor (Load Factor) eines Cluster-Members
modifiziert werden. Der Last-Faktor bestimmt, wie die
Benutzer während des Lasttests auf die
entsprechenden Cluster-Member aufgeteilt werden
(entsprechend der Leistungsfähigkeit der Exec
Agents).
Es ist nicht erforderlich, dass die einzelnen ClusterMember dieselbe Systemzeit haben. Beim Starten
eines Cluster-Jobs nimmt der Cluster Job Controller
automatisch eine Zeit-Differenzmessung vor, deren
Resultate währen der Vereinigung der Statistik-Daten
mitberücksichtigt werden.
Der Last-Faktor eines Exec Agents kann auch automatisch bestimmt werden, indem auf das Icon eines Exec Agents geklickt wird und der
(unverbindliche) Vorschlag in die Cluster-Konfiguration übernommen wird. Eventuell müssen Sie jedoch mehrmals auf das Icon klicken um einen
stabilen Wert zu erhalten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 111 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
10.3 Starten von verteilten Lasttests
Nachdem weitere Last-auslösende Rechner oder Cluster definiert wurden kann beim Starten eines Testlaufs gewählt werden, von welchem Rechner
oder von welchem Cluster aus der Lasttest durchgeführt wird. Die Behandlung des Testlaufs erfolgt dabei durch das GUI absolute transparent – genau
gleich, als würde dieser nur lokal durchgeführt:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 112 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
11 Konfiguration vom mehreren IP Adressen pro Last-auslösenden Rechner
Manchmal kann es erforderlich sein, dass Sie während eines Lasttests Clients mit unterschiedlichen IP Adressen von (nur) einem Rechner aus
simulieren. Dies ist dann z.B. der Fall, wenn einem Web-Server-Cluster ein Load-Balancer vorgeschaltet ist, welcher pro Client-IP Adresse nur einen Ast
bzw. nur einen Rechner des Web-Server-Clusters bedient (sog. Sticky-Bit des Load-Balances zum Schutz von Session-Cookies). Gehen Sie wie folgt
vor:
1. Damit Sie mehrere IP Adressen auf demselben Rechner verwenden können müssen Sie dessen Betriebssystem zuerst so konfigurieren, das
einem physikalischem Netzwerk-Interface mehrere IP Adressen zugewiesen werde. Dies ist sowohl bei Windows- wie auch bei Unix-Systemen
möglich.
2. Danach müssen Sie die Konfiguration des Exec Agents so anpassen, dass dieser auch mehrere IP Adressen für das Ausführen der Lasttests
verwendet. Falls auf demselben Rechner ein Web Amin Prozess gestartet wurde, so können Sie dies im Setup Menü des Projekt Navigators tun.
Anderenfalls müssen Sie das Konfigurations-File des Exec Agenten javaSetup.dat manuell mit einem Texteditor anpassen. Fügen Sie dazu
dem Eintrag javaVirtualIpAddresses alle IP Adressen des Rechners hinzu (getrennt durch Kommas) .
3. Nun können Sie den Lasttest starten, bei welchem Sie im Input-Feld Additional Options von Hand noch den Wert -multihomed eintragen.
Jeder Benutzer erhält nun eine eigene IP Adresse während des Lasttests; bzw. wenn mehr Benutzer gefahren werden als IP Adressen zur
Verfügung stehen so werden die IP Adressen gleichmässig auf die Benutzer verteilt. Diese Option wird auch von Cluster-Jobs unterstützt, wobei
Sie die IP Adressen der entsprechenden Cluster-Member (Exec Agents) konfigurieren müssen.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 113 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
11.1 Schritt 1: Konfiguration des Betriebsystems
11.1.1 Windows
11.1.2 Unix-ähnliche Betriebssysteme
Um mehrere IP Adressen zu konfigurieren müssen Sie den System-Befehl ifconfig verwenden. Je nach Ausprägung des Unix-System (Solaris, Linux ..)
sind dessen Argumente etwas verschieden. Bitte konsultieren Sie die man pages bezüglich der genauen Syntax.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 114 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
11.2 Schritt 2 und 3: Konfiguration des Exec Agents und Starten des Testlaufs
Bei der Konfiguration des lokalen Exec Agents über das Setup Menü des Projekt Navigators steht Ihnen zusätzlich eine Auto Detect Option zur
Verfügung, welche alle konfigurierten IP Adressen des Betriebsystems automatisch erkennt:
Bei externen Exec Agenten ohne Web Admin GUI müssen Sie
das File javaSetup.dat mit einem Texteditor anpassen. Dieses
befindet sich im Installations-Directory:
...
javaOptions=
javaVirtualIpAddresses= 192.16.4.5, 192.16.4.6, 192.16.4.7
javaEditor=
Nach der Konfigurationsänderung muss das Produkt gestoppt
neu gestartet werden.
Wichtig: Sie müssen die Option -multihomed beim Starten
des Tests eingeben damit während des Testlaufs mehrere IP
Adressen verwendet werden:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 115 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
12 Lasttest Plug-Ins
Lasttest Plug-Ins sind selbst erstellte Funktionserweiterungen des Proxy Sniffer Produkts welche im „Var Handler“ GUI konfiguriert und während eines
Lasttests ausgeführt werden. Nur – für diese spezielle Funktionalität – können wir unser Versprechen nicht halten, dass keine Programmierkenntnisse
nötig sind. Die Kernfunktion eines Plug-Ins muss von jemanden erstellt werden welcher bereits Erfahrung mit Java-Programmierung hat. Nachdem ein
Plug-in erstellt wurde kann es in jedem beliebigen Lasttest-Programm verwendet werden. Die Verwendung und die Konfiguration eines Plug-Ins selbst
benötigen keine Programmierkenntnisse.
12.1 Plug-In Template Generator
Um den Prozess zum Erstellen eines eigenen Plug-Ins zu vereinfachen steht ein “Plug-In Template Generator” zur Verfügung welche den gesamten
Java-Code, welcher zur Integration des Plug-Ins in das Proxy Sniffer Produkt nötig ist, automatisch erzeugt – so dann nur noch die eigentliche
Kernfunktion des Plug-ins von Hand programmiert werden muss.
Die nachfolgenden Illustrationen zeigen anhand eines Beispiels das Erstellen und die Konfiguration eines Plug-Ins welches dazu verwendet wird um ein
Buchungsdatum zu berechnen, wobei dem aktuellen Datum zwei Tage hinzugefügt werden. Das Resultat wird als drei Variablen ausgegeben welche
das Jahr, den Monat und den Tage des Buchungsdatums enthalten. Diese Variablen können danach den entsprechenden Formular-Parametern der
Buchungsanfrage zugewiesen werden.
Gehen Sie wie folgt vor:
1. Navigierten Sie im Project Navigator zum “Plugins” Directory und rufen Sie den “Plug-In Template Generator” auf.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 116 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
2. Geben Sie den Namen und Beschreibung des Plug-Ins ein und konfigurieren Sie den Initialisierungs- und Ausführungs-Scope des Plug-Ins.
Geben Sie auch alle Input- und Output-Parameter des Plug-Ins ein welche zur Interaktion mit dem Var Handler GUI dienen:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 117 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
3. Speichern Sie Ihre Eingaben ab und generieren Sie danach den Java-Code des Plug-Ins. Nachdem der Code erzeugt wurde müssen Sie den
Kern Ihres Plug-Ins in der Methode “public void execute(Object context)” programmieren – mit Hilfe eines Text-Editors oder einer IDE. Entfernen
Sie allen unnötigen Beispiel-Code und setzen Sie dort Ihren Code ein:
4. Kompilieren Sie das Plug-In und navigieren Sie danach im Projekt-Navigator zu dem Directory zurück in welchem sich Ihre Aufzeichnung der
Web-Session befindet:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 118 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
5. Sie können nun das Plug-In im Var Handler konfigurieren. Danach können Sie die neu erzeugten Variablen dem Formular zuweisen:
Hinweis: Das Laufzeitverhalten eines Plug-Ins lässt sich debuggen indem beim Starten eines Job in der Auswahlliste “Debug Options” eine der Optionen
gewählt wird welche “debug loops” enthält. Der Debug-Output wird in die entsprechende *.out Datei des Jobs geschrieben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 119 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
13 Manuelle Anpassungen an Java Lasttest-Programmen / Java API
Proxy Sniffer verfolgt die Philosophie, dass möglichst alle Funktionalitäten zum Ausführen von Lasttests mittels des GUI vorgenommen werden – ohne
dass dabei Programmierkenntnisse nötig sind. Dennoch ist es möglich, auch die automatisch erzeugten Lasttest-Programme manuell anzupassen um
so Effekte zu erzielen, welche mittels des GUI nicht zugänglich sind. D.h. Sie können auf dieser „zweiten Ebene“ die Programme ganz nach Ihren
Wünschen modifizieren. Bedenken Sie jedoch, dass Ihre Anpassungen am Programmcode nicht geschützt sind. D.h. wenn Sie dasselbe Programm
wiederum automatisch erzeugen, so werden Ihre Änderungen überschrieben. Stellen Sie darum sicher, dass alle Var Handler Definitionen bereits
vorgenommen wurden, bevor Sie das Programm erzeugen und danach modifizieren.
Sämtliche Klassen und Methoden welche nicht zum Standard-Sprachumfang von Java gehören sind ausführlich in der Proxy Sniffer Java API
Dokumentation beschrieben, so dass Sie genau nachvollziehen können wie das Lasttest-Programm abläuft. Die innere Struktur eines LasttestProgramms ist wie folgt aufgebaut:
Das Hauptmethode main, ganz unten im Bild blau hinterlegt, liest zuerst
die Input-Daten des Testlaufs ein und erzeugt danach so viele Instanzen
der eigenen Klasse, wie parallele Benutzer erzeugt werden sollen. Dabei
wird für jeden Benutzer der Konstruktor der Klasse aufgerufen. Danach
wird in der Hauptmethode nun jede Instanz als unabhängiger Thread
gestartet was dazu führt, dass pro Benutzer die Methode run ausgeführt
wird (d.h. die Hauptmethode des entsprechenden Threads). Die Methode
run ruft danach für jeden Loop eines Benutzers wiederholt die Methode
execute auf, welche die aufgezeichnete Web-Session enthält. Dies so
oft, bis die maximale Zeitdauer des Lasttest verstrichen ist. Die
Hauptmethode main wartet in der Zwischenzeit, bis die Aktivität aller
Threads bzw. Benutzer beendet wurde. Danach wird das Statistik-File
geschrieben und das Programm wird beendet.
Dieses Konzept hat direkten Einfluss darauf wie Variablen im Programm
definiert werden:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
-
globale, bzw. static Variablen gelten für alle Benutzer gemeinsam,
d.h. der Zugriff auf solche Variablen muss synchronisiert werden,
wenn es sich nicht um einzelne primitive Datentypen handelt.
-
Gewöhnliche Variablen gelten hingegen pro Benutzer, d.h. jeder
Benutzer sieht seinen eigenen Wert.
Alle Rechte vorbehalten
Seite 120 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Falls Sie zu Debug-Zwecken eine Ausgabe in die Log-Datei (*.out) vornehmen möchten, so sollten Sie nicht System.out.println() verwenden, da dadurch
der Output aller gleichzeitigen Benutzer wild durcheinander gewürfelt wird. Wir empfehlen Ihnen anstelle dessen die Methode log zu verwenden, welche
den Output eines Benutzers während eines Loops sammelt und danach diesen am Ende jeden Loops synchronisiert schreibt. Verwenden Sie beim
Starten des Programms/Testlaufs im Web Admin GUI darum die Option debug loops um den Output zu erhalten.
Hinweis: Sie können ein Lasttest-Programm auch ohne Exec Agent direkt von der Kommandozeile des Betriebssystems starten (siehe auch
Application Reference Manual, Kapitel 3.7) Bei Windows-Systemen ist unter Start  Programme  ProxySniffer  Compile and Run Proxy
Sniffer Load Tests bereits eine entsprechende Konsole zugänglich, welche die Umgebungsvariablen PATH und CLASSPATH korrekt setzt. Dies
geschieht über das File setenv.bat welches im Project Navigator Haupt-Directory abgelegt ist. Um den Debug-Output zu erhalten müssen das
Programm mit dem Argument -dl (debug loops) starten.
Nebst den spezifischen Methoden zum Ausführen von Lasttest-Programmen enthält das Proxy Sniffer Java API noch zusätzliche Klassen und
Methoden, mit denen Sie direkt auf Statistik-Files zugreifen können und so prinzipiell eigene Statistiken erstellen können. Die Haupt-Methode um ein
Statistik-File nach dem Ende eines Testlaufs zu laden ist PerformanceData.readObjectFromFile(<Filename>).
13.1 Externe Klassen und Jar-Libraries
Falls Sie eigene Klassen oder Jar-Libraries dem Lasttest-Programm hinzufügen und dieses über das Web Admin GUI oder das PrxJob Utility starten
möchten, so müssen Sie das Lasttest-Programm zusammen mit den Klassen und Libraries zu einem Archiv zippen, und danach das Zip-Archiv als
Lasttest starten (analog dem Umgang mit Input Files).
Auf den entsprechenden (remote) Exec Agenten müssen Sie nichts installieren und nichts konfigurieren. Lokal müssen Sie jedoch bei WindowsSystemen den CLASSPATH des Web Admin ergänzen, indem Sie den Eintrag lax.class.path im File Proxy Sniffer Server.lax erweitern, sowie
gegebenenfalls auch Ergänzungen im Setup Menü des Projekt Navigators für den Java-Compiler vornehmen. Die Datei Proxy Sniffer Server.lax
finden Sie im Installationsdirectory des Produkts.
Für das direkte Ausführen von Lasttest-Programmen über eine Betriebssystem-Konsole sind die vorgenannten Modifikationen sowie das Zippen nicht
nötig. Sie müssen bei Windows-Systemen hier nur den CLASSPATH im File setenv.bat ergänzen, welches im Hauptdirectory des Projekt Navigators
liegt. Bei Unix-Systemen müssen Sie die Umgebungsvariable CLASSPATH direkt modifizieren.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 121 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
13.2 Direkter Zugriff auf Messergebnisse
Das Proxy Sniffer Java API erlaubt auch die Messergebnisse aus den Statistik-Files (*.prxres) direktes auszulesen. Dadurch können eigene
Zusammenstellungen der gemessenen Resultate gemacht werden. Zusätzlich lassen sich auch einige Messwerte auslesen welche im Web Admin GUI
nicht dargestellt werden. Das nachfolgende Programm-Beispiel extrahiert alle Web-Pages aus den Error-Snapshots (missgebildete Web-Pages) und
speichert diese als HTML-Dateien ab, welche danach eigenständig im Web Browser dargestellt werden können. Die Hauptmethode um auf ein StatistikFile zuzugreifen ist PerformanceData.readObjectFromFile(<result file name>).
import
import
import
import
import
java.io.FileOutputStream;
dfischer.utils.PerformanceData;
dfischer.utils.PerformanceDataRecord;
dfischer.utils.PerformanceDataRecordFailureInfo;
dfischer.utils.HttpTestURL;
/**
* Writes the response content of all error snapshots to files if they contain ASCII (HTML,XML) data.
* Program Argument: name of the result file (*.prxres).
*/
public class ExtractErrors
{
public static void main(String[] args)
{
try
{
// read result file from disk
PerformanceData performanceData = new PerformanceData();
performanceData.readObjectFromFile(args[0]);
// loop over all measured url calls and page breaks
PerformanceDataRecord[] performanceDataRecord = performanceData.getPerformanceDataRecord();
for (int x = 0; x < performanceDataRecord.length; x++)
{
switch (performanceDataRecord[x].getDataType())
{
case PerformanceDataRecord.TYPE_PERFORMANCE_DATA:
// loop over all error snapshots per url call
PerformanceDataRecordFailureInfo[] failureInfo = performanceDataRecord[x].getFailureInfo();
for (int y = 0; y < failureInfo.length; y++)
{
// get data of failed url call
HttpTestURL testURL = performanceDataRecord[x].getFailedUrl(failureInfo[y]);
if (testURL != null)
{
// now we have access to all frozen url data
String fileStartName = "url_" + x + "_error_" + (y + 1);
// write response content to file - no binary data are written
if (testURL.isAsciiContent())
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 122 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
{
FileOutputStream fout = new FileOutputStream(fileStartName + "_response_content.html");
fout.write(testURL.getDecompressedContent());
fout.close();
}
}
}
break;
case PerformanceDataRecord.TYPE_PAGE_BREAK:
break;
default:
break;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 123 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
14 Web Tools
Aus dem Hauptmenü lässt sich das Web Tools Menü aufrufen welches 4 kleinere Utilities enthält, die Ihnen gegebenenfalls zur Untersuchung der
Kommunikation zwischen Web-Browser und Web-Server nützlich sind. Darüber kann über das Web Tools Menü auch das Page Scanner Tool
aufgerufen werden, mit welchem sich alle Web-Pages einer Web-Site automatisch erfassen lassen.
Die 4 kleineren Utilities bestehen aus:
-
Base64 Text Transformation: führt eine Base64 Transformation bzw.
deren Umkehroperation aus. Der Base64 Algorithmus wird oft
verwendet um CGI Parameter-Werte zu „verschleiern“
-
Escape/Unescape URL/CGI Text Value: führt eine URL-Encoding
Transformation bzw. deren
Umkehroperation aus. Dieser
Algorithmus wird oft dazu
verwendet um Sonderzeichen in
CGI Parameter-Werten zu
maskieren. Auch HTML
Formulare verwenden dies bei
dem Senden der FormularParameter an den Web-Server
-
Examine SSL Configuration of
HTTPS Server - Encryption
Protocols and Algorithms:
untersucht die SSL-Konfiguration
eines HTTPS Web-Servers „von
Aussen“ und gibt Hinweise zu
SSL-Fehlkonfigurationen des
Web-Servers.
-
Test HTTP(S) Request: führt
einen URL-Aufruf aus, dessen
Input „von Hand“ eingegeben
wird. Dient zur Untersuchung des
HTTP Protokoll-Verhaltens des
Web-Servers.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 124 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
14.1 Page Scanner
Das Page Scanner Tool (kurz „Page Scanner“ genannt) erlaubt das Einlesen bzw. das automatische Scannen von ganzen Web-Sites inkl. aller darin
enthaltenen Web-Pages auf rekursive Art, analog einem „Web-Spider“ oder „Web-Crawler“ (Suchmaschine).
1. Primärer Anwendungszweck: das Scan-Resultat kann in eine „normale“ Web-Browser Session konvertiert werden aus welcher (wiederum) wie
gewohnt ein Lasttest-Programm erzeugt werden kann (Kapitel 7). Dadurch können für einfache Web-Sites, welche hauptsächliche statischen
Content enthalten, Lasttest-Programme mit einer breiten Abdeckung aller Web-Pages schnell und einfach erzeugt werden – ohne dass eine
manuell vorgenommene Aufzeichnung einer Web-Browser Session Seite-für-Seite durchgeführt werden muss. Das Page Scanner Tool folgt
jedoch nur „gewöhnlichen“ Hyperlinks der eingelesenen Web-Pages und führt keine Formulareingaben durch. D.h. dieses Tool bietet keinen
Ersatz zur Aufzeichnung von Web-Browser Sessions für eigentliche Web-Applikationen.
2. Sekundärer Anwendungszweck: das Tool erstellt eine grafische Statistik über die grössten und auch über die langsamsten Web-Pages der
gesamten Web-Site. Weiterhin werden sog. „Broken Links“, d.h. Hyperlinks ohne gültiges Ziel, automatisch erkannt und rapportiert. Zudem
lassen sich alle eingelesenen Web-Pages nach einem Stichwort-Text durchsuchen.
Das Page Scanner Tool führt keinen JavaScript Code der eingelesenen Web-Pages aus, unterstützt jedoch sämtliche Authentisierungs-Verfahren
welche nicht HTML Formular-basierend sind, wie „Basic Autorisation“, NTLM Authentisierung und SSL Client Zertifikate (im PKCS#12 File-Format). Dies
bedeutet, dass auch zugriffsgeschützte Web-Sites eingelesen werden können. Ebenso werden Cookies automatisch unterstützt.
Hinweis 1: beachten Sie bitte, dass das Page Scanner Tool während eines
Scans sämtliche eingescannte Daten, d.h. alle Web-Pages inklusive deren
Inhalte, in komprimierter Form im temporären Speicherbereich des Programs
hält. Aufgrund der Komprimierung können auch grosse Web-Sites gescannt
werden, jedoch ist der temporäre Speicher nicht unerschöpflich. Falls Sie
während eines Scans die Fehlermeldung "java.lang.OutOfMemoryError" in der
Proxy Sniffer Konsole erhalten, so sollten Sie Proxy Sniffer stoppen und danach
mit 1024 MB temporärem Speicher erneut starten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 125 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Hinweis 2: Beachten Sie bitte, dass das Page Scanner Tool aufgrund mangelhaft realisierter Web-Pages (des Web Servers) oder aufgrund der
Verwendung von unüblichen oder veralteten HTML-Optionen in Web-Pags gegebenfalls nur unvollständige oder gar keine Resultate liefert. Obwohl
das Tool zuvor ausführlichen Tests unterzogen wurde ist dessen fehlerfreie Funktionalität nicht garantiert. Eventuell aufgetretene, Web-Site oder
Web-Page spezifische Fehler können aufgrund von wiedersprechenden Anforderungen oder aufgrund der Komplexität oft nicht behoben werden.
Das Tool verhält sich im Wesentlichen wie andere Suchmaschinen, welche auch solchen Einschränkungen unterworfen sind.
14.1.1 Eingabe-Parameter, Fortschritts-Anzeige und Abspeichern des Scan-Resultats
Das Page Scanner Fenster besteht aus zwei Teilen. Der obere Teil des Fensters zeigt den aktuellen Fortschritt des
Scans an, bzw. eine kurze Übersicht des Scan-Resultats nach dem Ende des Scans. Im unteren Teil des Fensters
können die Eingabe-Parameter eines Scans gesetzt werden. Von hier aus kann auch ein Scan gestartet werden.
Eingabe-Parameter:
Starting Web Page: URL von welchem aus der Scan gestartet wird. Wird ein
tieferliegendes URL einer Web-Site eingegeben, so werden nur diejenigen
Web-Pages gescannt, welche sich auf der gleichen Ebene oder unterhalb der
Ebene des eingegebenen URLs befinden. Auf diese Weise können auch nur
Teilbereiche einer Web-Site gescannt werden. Beispiel.
http://www.<domain>/sales/customers.html
Char Encoding: erlaubt das Übersteuern der automatischen Erkennung des
auf den Web-Pages verwendenden Zeichensatzes. Bei falsch erstellten WebPages kann es vorkommen, dass der im HTML Header der Web-Pages
spezifizierte Zeichensatz mit dem eigentlichen verwendeten Zeichensatz in den
Web-Pages nicht übereinstimmt. Eventuell kann darum das Page Scanner
Tools den Inhalt solcher Web-Pages nicht auswerten. Sie können in einem
solchen Fall versuchen, die Option “ISO-8859-1” oder “UTF-8” anstelle der
Default-Option “Auto Detect” anzuwenden um dennoch ein Scan-Resultat zu
erhalten.
Exclude Path Patterns: erlaubt gewisse URL-Pfade vom Scan
auszuschliessen, indem ein oder mehrere Ausschluss-Pfad-Fragmente
eingegeben werden. Die Trennung von mehreren Ausschluss-Pfad-Fragmenten
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 126 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
erfolgt mittels Kommas.
Follow Web Servers: erlaubt den Einbezug von Inhalten weiterer Web-Server in das Scan-Resultat. Diese kann z.B. dann verwendet werden,
wenn alle Bilder einer Web-Site von einem eigenen, separaten Web-Server geliefert werden. Sie können hier eine Liste von zusätzlichen WebServern eingeben, wobei die einzelnen Web-Server durch Kommas getrennt werden.
Beispiel: http://www.<domain1>, https://imgsrv.<domain2>:444. Das Protokoll (http oder https), der Server-Name (üblicherweise “www”) und der
Domain-Name, sowie der TCP/IP Port der zusätzlichen Web-Server werden dabei berücksichtigt. URL-Pfade werden jedoch ignoriert.
Verify External Links: erlaubt die Verifikation aller Hyperlinks zu allen anderen, von der Web-Site aus verlinkten (refernzierten) Web-Servern
bzw. „externen“ URLs. Diese Option wird üblicherweise dazu verwendet um nicht mehr gültige, externe Hyperlinks automatisch zu erkennen und
zu rapportieren (sog. „broken“ Links).
Include: bestimmt, welche zusätzlichen Elemente von Web-Pages nebst den HTML-Elementen in das Scan-Resultat einfliessen (z.B. Bilder und
Flash-Animationen). Um den Daten-Typ eines bestimmten Elements zu bestimmen verwendet Page Scanner ausser bei HTML-Elementen
immer nur die Datei-Erweiterung, welche im URL-Pfad eines Hyperlinks angegeben wurde. Dies erlaubt einen schnellen und effizienten ScanVorgang, birgt aber auch die Gefahr, dass URLs in das Scan-Resultat einfliessen, deren Daten-Typ unerwünscht ist, da dieser nicht
abschliessend zur Laufzeit bestimmt wurde. Sie können jedoch nach dem Ende eines Scan-Vorgangs solche unerwünschte Elemente mit Hilfe
eines Daten-Typ Filters entfernen (Kapitel 14.1.2.1, „remove URLs“ Formular). Folgende Gruppen von Elementen können in den Scan-Vorgang
einbezogen werden:
Element-Gruppe
Entsprechende Datei-Erweiterungen
Images, Flash, CSS, JS .img, .bmp, .gif, .pct, .pict, .png, .jpg, .jpeg, .tif, .tiff, .tga, .ico, .swf, .stream, .css, .stylesheet, .js, .javascript
PDF Documents
.pdf
Office Documents
.doc, docx, .ppt, .pps, .xls, .mdb, .wmf, .rtf, .wri, .vsd, .rtf, .rtx
ASCII Text Files
.txt, .text, .log, .asc, .ascii, .csv
Music and Movies
.mp2, .mp3, .mpg, .avi, .wav, .avi, .mov, .wm, .rm, .mpeg
Binary Files
.exe, .msi, .dll, .bat, .com, .pif, .dat, .bin, .vcd, .sav
Include Options: bestimmt, welche zusätzliche Datei-Erweiterungen von Web-Page Elementen auch in den Scan-Vorgang einbezogen, oder
von diesem ausgeschlossen werden. Dabei muss das Schlüsselwort „-add“ bzw. „-remove“, gefolgt von der Datei-Erweiterung inklusive eines
vorangehenden Punkt-Zeichens (.) eingegeben werden. Beispiel: -remove .gif -add .mp2. Hinweis: dieses Eingabefeld kann allein oder auch
ergänzend zu Include verwendet werden.
Max Scan Time: begrenzt die maximale Zeit eines Scan-Vorgangs.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 127 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Max Web Pages: begrenzt die maximale Anzahl der untersuchten Web-Pages. Bei einem Überschreiten dieser Anzahl wird der Scan-Vorgang
jedoch solange fortgesetzt, bis alle referenzierten „nicht HTML-Elemente“ der bereits eingelesenen Web-Pages auch untersucht wurden (wie z.B.
refernzierte Bilder). D.h. der Abbruch des Scans erfolgt bei einer Überschreitung nicht unmittelbar.
Max Received Bytes: begrenzt das Datenvolumen eines Scan-Vorgangs.
Max URL Calls: begrenzt die Anzahl von URL-Aufrufen (Web-Pages + deren Elemente, einzeln gezählt) eines Scan-Vorgangs.
URL Timeout: begrenzt die Antwortzeit eines einzelnen URL-Aufrufs währen des Scan-Vorgangs. Wird diese Zeit überschritten, so wird für die
entsprechende Web-Page bzw. deren Element der Fehler-Status “keine Antwort vom Web-Server erhalten” gesetzt.
Max Path Depth: begrenzt die maximale URL-Pfad-Tiefe der Web-Pages oder deren Elemente bei einem Scan-Vorgang. Beispiel:
http://www.<domain>/docs/content/about.html hat eine URL-Pfad-Tiefe von 3.
Follow Redirections: begrenzt die maximale Anzahl von (HTTP-) Umleitungen während eines Scan-Vorganges (indirekt referenzierte Elemente
und Web-Pages).
Follow Path Repetitions: begrenzt die Anzahl von URL-Pfad-Repetitionen welche innerhalb eines einzelnen URL-Aufrufes auftreten können.
Diese Option schützt das Page Scanner Tool vor Endlosschlaufen. Empfohlene Wertebereiche sind 1 oder 2. Beispiel: das URL
http://www.<domain>/docs/images/images/images/x.gif hat einen URL-Pfad-Repetitions-Wert von 3.
Follow CGI Parameters: diese (üblicherweise deaktivierte) Option schützt davor, dass eine Vielzahl von weitgehend ähnlichen URL-Aufrufen
vom Page Scanner Tool als jeweils separate URL-Aufrufe behandelt werden. Ist diese Option wie üblich deaktiviert, so wird von mehreren URLAufrufen, welche sich nur durch unterschiedliche CGI-Parameter unterscheiden, nur der erste URL-Aufruf berücksichtigt, jedoch werden alle
weitere, ähnlichen URL-Aufrufe ignoriert. Beispiel: der erstmals aufgetretene URL-Aufruf http://www.<domain>/showDoc?context=12 wird
berücksichtigt, jedoch nachfolgende, ähnliche URL-Aufrufe wie http://www.<domain>/showDoc?context=10 oder
http://www.<domain>/showDoc?context=13 werden nicht berücksichtigt.
Authentication: erlaubt das Scannen von zugriffsgeschützen Web-Sites. Folgende Authentisierungs-Methoden werden unterstützt:
Authentisierungs-Methode
Beschreibung
Basic
Verwendet zur Authentisierung “HTTP Basic Authorization” (Base64 Transformation des Benutzernamens:
Passworts). Geben sie dazu den Benutzernamen und das Passwort in die entsprechenden Eingabefelder ein.
NTLM
Verwendet zur Authentisierung das NTLM-Protokoll. Dabei wird die NTLM-Konfiguration des “Personal
Settings” Menus angewandt (Kapitel 4.6.2.3)
PKCS#12 Client Certificate
Verwendet zur Authentisierung ein HTTPS/SSL Client-Zertifikat. Dabei wird das zuvor geladene, aktive ClientZertifikat des „Personal Settings” Menus angewandt (Kapitel 4.6.2.4)
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 128 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Browser Language: diese Option kann beim Scannen von mehrsprachigen Web-Sites angewandt werden um die eine bevorzugte Sprache zu
setzen.
Use Proxy: diese Option erlaubt das Scannen von (externen) Web-Sites über einen abgehenden Proxy-Server (z.B. den Ihrer Firma). Dabei wird
die Proxy-Server Konfiguration des “Personal Settings” Menus angewandt (Kapitel 4.6.2.1).
SSL Version: erlaubt das Setzen der SSL Protokoll-Variante beim Scannen von verschlüsselt übertragenen HTTPS Web-Sites.
Annotation: geben Sie in diesem Eingabefeld einen kurzen Kommentar bezüglich des Scans ein. Diese Eingabe ist optional.
Ein laufender Scan-Vorgang lässt sich jederzeit durch einen Klick auf “Abort Scan” vorzeitig beenden.
Nachdem ein Scan-Vorgange beendet wurde sollten Sie dessen Resultat in
einer Datei abspeichern. Die Datei wird dabei im Project Navigator abgelegt.
Die Datei-Erweiterung ist immer *.prxscn.
Hinweis: ein abgespeichertes Scan-Resultat kann später wieder geladen werden, indem im Project Navigator auf das “Load Scan Icon” der
entsprechenden Datei geklickt wird:
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 129 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
14.1.2 Analyse des Scan-Resultats
Eine Übersticht der wichtigsten statistischen Daten des Scan-Resultats wird im orange hinterlegten Balken im ganz oben im Fenster dargestellt.
Unterhalb dieses orange hinterlegten Balkens können verschiedene Detail-Resultate ausgewählt werden (im Bild rot umrahmt).
Das Such-Formular, rechts neben der Auswahl der Detail-Resultate, erlaubt das durchsuchen aller gescannten Web-Pages inklusive deren Elemente
nach einem Such-Text. Dabei kann nicht nur über den Dateninhalt sondern auch über alle HTTP Request- und alle HTTP Response-Header gesucht
werden.
Das „remove URLs“ Formular, unterhalb der Auswahl der Detail-Resultate, erlaubt das entfernen von „Mengen“ von unerwünschten URLs aus dem
Scan-Resultat. Die „Menge“ der unerwünschten URLs kann über den Daten-Typ (MIME type) der URLs, sowie logisch verbunden mit einer UNDBedingung über den HTTP Status-Code (200, 302, …) bzw. über einen URL Fehler-Code wie z.B. „network connection failed“ ausgewählt werden.
Eingabefelder:
with content MIME type: bestimmt den gewählten Daten-Typ (MIME type, siehe auch http://www.iana.org/assignments/media-types). Das
Eingabefeld ist „case-insensitive“ (keine besondere Berücksichtigung von Gross- oder Kleinbuchstaben). any bedeutet, dass jeder beliebiger
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 130 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Daten-Type gewählt wird. none bedeutet, dass nur solche URLs gewählt werden, deren empfangenes Resultat keinen Daten-Typ enthält (HTTP
Antwort-Header ohne "Content-Type"-Parameter).
HTTP status code: bestimmt den gewählten HTTP Status-Code (200, 302, …) bzw. den URL Fehler-Code.
14.1.2.1
Analyse der Scan-Details
Scan Input Parameter: zeigt alle Input-Daten des ausgeführten Scans an (jedoch ohne Authentisierungs-Daten).
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 131 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Scan Statistic: zeigt weitere statistische Daten des Scans an. Similar Web Pages zeigt die Anzahl von gefundenen Web-Pages an, welche
zwar unterschiedliche URL-Pfade haben, jedoch den gleichen Dateninhalt enthalten (duplizierter Inhalt). Failed URL Calls zeigt die Anzahl der
fehlgeschlagenen URL-Aufrufe an, bei denen vom entsprechenden Web-Server gar keine Antwort erhalten wurde, oder deren HTTP StatusCode der Server-Antwort einem Server-seitig aufgetretenen Fehler entspricht (HTTP Status-Codes 400..599).
Non-Processed Web Servers: zeigt eine Liste aller (externen) Web-Server an, welche in Hyperlinks von gescannten Web-Pages zwar
referenziert wurden, jedoch vom Page Scanner Tool nicht weiter berücksichtigt wurden (verlinkte, jedoch nicht nachverfolgte Web Server). Die
Zahl am Anfang jeder Zeile zeigt an, wie oft ein solch (externer) Web-Server referenziert wurde – gezählt über alle gescannten Web-Pages.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 132 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Scan Result per Web Page: zeigt alle gescannte Web-Pages sowie deren Elemente an. Die einzelnen Elemente der Web-Pages wie z.B. Bilder
werden dabei so dargestellt, wie wenn diese von einem Web-Browser gecached würden. Dies bedeutet, dass z.B. ein bestimmtes, gleiches Bild
nur auf einer (der ersten) Web-Page aufgeführt wird, jedoch nicht mehr auf den nachfolgenden Web-Pages, auch wenn die nachfolgenden WebPages dieses (gleiche) Bild wiederum enthalten. Weitere Details zum entsprechenden URL-Aufruf bzw. Element einer Web-Page können durch
einen Klick auf dessen Hyperlink dargestellt werden.
Broken Links: zeigt eine Liste aller fehlgeschlagenen URL-Aufrufe an – sortiert nach Web-Pages.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 133 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Duplicated Content: zeigt eine Liste aller URLs an welche duplizierten (gleichen) Dateninhalt enthalten.
Largest Web Pages: zeigt eine Zusammenstellung der grössten Web-Pages an. Hinweis: Sie können im Diagramm in einen der roten Balken
klicken um die Elemente der entsprechenden Web-Page zu betrachten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 134 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Slowest Web Pages: zeigt eine Zusammenstellung der langsamsten Web-Pages an. Hinweis: Sie können im Diagramm in einen der roten
Balken klicken um die Elemente der entsprechenden Web-Page zu betrachten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 135 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
14.1.3 Konvertierung des Scan-Resultats in eine Web-Browser Session
Das Scan-Resultat kann in eine „normale“ Web-Browser Session konvertiert werden, aus welcher danach ein Lasttest-Programm erzeugt werden kann.
Eingabe-Felder:
Filename: Datei-Name der Web-Browser Session.
Geben Sie hier einen einfachen Datei-Namen an,
ohne Pfad und ohne Datei-Erweiterung. Die DateiErweiterung ist immer *.prxdat. Die Datei wird im
gewählten Directory des Project Navigators
abgespeichert.
Web Pages: erlaubt eine Auswahl derjenigen WebPages, welche in die Web-Browser Session
einfliessen. „All Pages“ bedeutet alle Web-Pages.
Alternativ dazu können Sie die Option „Page
Ranges“ verwenden, bei der Sie eine Liste von
ausgewählten Web-Pages eingeben können.
Beispiel: "1, 3-5, 7, 38-81"
Max. URL Calls: begrenzt die Anzahl von URLAufrufen welche in die Web-Browser Session
einfliessen. Hinweis: es wird empfohlen, dass Sie
nicht mehr als 1000 URL-Aufrufe in eine WebBrowser Session konvertieren.
Annotation: diese Eingabe ist optional. Wir empfehlen Ihnen jedoch, dass Sie hier eine paar Stichworte zur Beschreibung der Web-Browser
Session eingeben.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 136 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
Load Session into: Falls diese (Default-Option) gesetzt ist, wird die Web-Browser Session nach dem Abspeichern noch zusätzlich in das „MainMenü geladen, bzw. alternativ in eine Scratch-Area des Session Cutters.
Üblicherweise wird nach dem Abspeichern die Web-Browser
Session direkt in das „Main Menü“ geladen. Sie können
danach diese zuerst Nachbearbeiten (Kapitel 4.4, 5 und 6)
und dann das entsprechende Lasttest-Programm erzeugen
(Kapitel 7).
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 137 / 138
Proxy Sniffer V4.1-C User‟s Guide
Deutsche Ausgabe
15 Hersteller und Support
Ingenieurbüro David Fischer GmbH
Mühlemattstrasse 61
CH-3007 Bern
Switzerland
Produkt-Homepage:
E-Mail:
Tipp: Wir empfehlen Ihnen bei Unklarheiten auch dem
integrierten, Menü-spezifische Help-Text durchzusehen:
http://www.proxy-sniffer.com
[email protected]
Wir bitten Sie, zusätzlich auch das Application Reference Manual
kurz durchzusehen, um einen Überblick über weiteren ProduktEigenschaften und -Features zu erhalten.
© 2008 by Ingenieurbüro David Fischer GmbH, Switzerland
Alle Rechte vorbehalten
Seite 138 / 138

Documentos relacionados