Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Lasttests von Web-Anwendungen René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011 1
Agenda Wer sind wir? Was ist ein Lasttest? Simulation von Web-Nutzern Testplanung – Ausgewählte Aspekte Kurzvorstellung des Werkzeugs „Xceptance LoadTest - XLT“ Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 2
Wer sind wir? Xceptance GmbH 2004 in Jena gegründet seit 2006 Zweigniederlassung in Cambridge, MA, USA Beratungsleistungen und Produkte für die Software-Qualitätssicherung: • Testautomatisierung, Lasttests, manuelle Tests • Testberatung, Testmanagement • Einführung und Optimierung von QS-Prozessen • Produkt „Xceptance LoadTest – XLT“ Kunden: mittelständische und große Unternehmen in Europa und den USA 23 Mitarbeiter Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 3
Was ist ein Lasttest? Definition Kontrollierte Nutzung des zu testenden Systems unter Berücksichtigung von Benutzer- und Transaktionsmengen mit Beobachtung des Systemverhaltens. Ein Lasttest prüft mehrere Qualitätsmerkmale nach ISO 9126/25000 Funktionalität: Richtigkeit Zuverlässigkeit: Reife Effizienz: Zeitverhalten und Verbrauchsverhalten Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 4
Grundsätzliche Ziele von Lasttests 1. Aufdeckung funktionaler Fehler, die nur bei paralleler oder intensiver Nutzung des Systems auftreten Deadlocks Race Conditions Crashes Endlosschleifen Starvation 2. Prüfung des Zeit- und Verbrauchsverhaltens bei gegebener Last Antwortzeiten Verbrauch von Hauptspeicher Verbrauch von Rechenleistung Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 5
Web-Anwendungen – Big Picture Nutzer Webbrowser HTTP/HTTPS System Under Test (SUT) Browser Engine HTML (Hauptrequest) Web Server R JavaScript CSS Engine N Application e P e JavaScript Server n a t G d Bilder r z Database U e s w Server I r DOM e e i r AJAX-Requests r n Storage k g - Cache Requests zu Drittsystemen: - Cookies Dateisystem Requests zu Drittsystemen: - Bonitätsprüfung -… - Content Delivery Network - Zahlungssysteme - Web Tracking - Fulfillment-Backends - Einbindung von Werbung Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 6
Simulation von Web-Last Kontrollierte Nutzung einer Web-Anwendung… Verhalten von Nutzern und ihrer Webbrowser nachbilden …unter Berücksichtigung von Benutzer- und Transaktionsmengen für hohe parallele Nutzerzahl Browser ohne GUI nachbilden Verteilung auf mehrere Rechner unterschiedliches Verhalten einzelner Nutzergruppen (Szenarien) …mit Beobachtung des Systemverhaltens Validierung der Antwortseiten Sammeln umfassender Ergebnisdaten Auswertung und übersichtliches Reporting der Ergebnisse => Geeignete Werkzeuge benötigt! Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 7
Web-Anwendungen – Big Picture Nutzer Webbrowser HTTP/HTTPS System Under Test (SUT) Browser Engine HTML (Hauptrequest) Web Server R JavaScript CSS Engine N Application e P e JavaScript Server n a t G d … U e r z Bilder Database s w Server I r DOM e e i r AJAX-Requests r n Storage k g … - Cache Requests zu Drittsystemen: - Cookies - Bonitätsprüfung -… Dateisystem Requests zu Drittsystemen: - Content Delivery Network - Zahlungssysteme - Web Tracking - Fulfillment-Backends - Einbindung von Werbung Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 8
Simulation von Browserverhalten Laden der HTML-Hauptdatei paralleles Nachladen und Interpretieren von CSS, JavaScript, Bildern, ... Cookie-Behandlung innerhalb der simulierten Nutzer-Sessions Client-Caching AJAX-Requests HTTP Keep Alive Absenden von Formularen DOM-Ebene versus HTTP-Ebene Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 9
Simulation von Nutzerverhalten unterschiedliche Abläufe / Szenarien Wartezeiten zwischen Aktionen lesende Zugriffe (reines Browsing) schreibende Zugrife (Absenden von Formularen) Zufall (Datenvariation, zeitliche Variation) … Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 10
Simulation des Gesamtverhaltens (I) hohe Parallelität, zum Beispiel hohe Zahl simulierter Nutzer große Datenmengen geeigneter Mix von Nutzerszenarien eventuell geografische Verteilung Zufall (Datenvariation, zeitliche Variation) Lastprofil über längere Zeiträume Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 11
Simulation des Gesamtverhaltens (II) Aber: schwierige Prognose von Nutzeranzahl und Nutzerverhalten, vor allem bei neuen Anwendungen hohe Varianz des Nutzerverhaltens, viele unterschiedliche Clickstreams viele unterschiedliche Browserversionen Rückwirkung des Systemverhaltens auf Nutzer möglich (lange Antwortzeiten => Benutzer senden weitere Requests) Simulation nur so genau wie nötig! Statistische Annäherung an die Realität; nicht alle Einzelereignisse, sondern die Gesamtheit der Requests zählen. Generelle Grundfunktionen von Webbrowsern simulieren, keine Unterschiede im Detailverhalten! Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 12
Vorgehensweise bei Lasttests Phasen analog anderer Testarten: Testplanung / Konzeption Testvorbereitung Testdurchführung Testauswertung Besonderheiten: Lasttests erfordern meist höhere Voraussetzungen, als andere Testarten technische Herausforderungen bei der Entwicklung der Tests Fehlersuche und Tuning oft langwierig oft mehrere Iterationen nötig So früh wie möglich beginnen! Aber: Das System muss in einem funktional stabilen Zustand sein. Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 13
Testplanung Festlegung folgender Aspekte: genaue Testziele Testszenarien (zu simulierende Geschäftsfälle) Mengengerüste benötigte Testdaten Testumgebung (Hard- und Software) Organisatorische Festlegungen • Termine • Bezugsdokumente • Verantwortlichkeiten • Zugänge • Prozesse benötigte Reports Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 14
Testplanung – Ziele festlegen Lasttests können auf unterschiedliche Aspekte ausgerichtet sein Beispiele für Lasttest-Ziele: Finden lastbedingter Fehler, Prüfen der Stabilität Prüfung des Systemverhaltens unter einer gegebenen Last Ermitteln der möglichen Last unter Einhaltung gegebener Antwortzeiten Finden der am höchsten ausgelasteten Ressourcen oder Bottlenecks Tuning / Optimierung des Systems Ermittlung des Ressourcenbedarfs zur Erreichung bestimmter Performance Gewinnen von Betriebs- und Wartungserfahrungen unter Last Die Ziele beeinflussen: Lasttestarten Testszenarien Lastmodelle Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 15
Testplanung – Lasttest-Arten Stresstest: Last erhöhen, bis funktionale Fehler auftreten oder das Antwortverhalten bestimmte Grenzen überschreitet Dauerlasttest: Lasttest kontinuierlich über einen längeren Zeitraum Fail-Over-Test: unter Last werden Ausfall und Wiederanlauf redundanter Systemkomponenten provoziert und die Reaktionen des Systems geprüft Performance-Test: Test mit der maximal erwarteten Last auf Einhaltung der vorgegebenen Lastanforderungen und Finden von Bottlenecks Sizing-Test: ermittelt Grenzen unterschiedlicher HW/SW-Konfigurationen, um später bei gegebenen Lastanforderungen die voraussichtlich benötigte HA und SW abschätzen können Skalierbarkeitstest: prüft 1. Antwortverhalten und Ressourcenverbrauch bei steigender Last 2. verarbeitbare Last bei Hinzunahme von HW- und SW-Komponenten Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 16
Testplanung – Szenarien (I) Testszenario (= ein zu simulierender Geschäftsfall) Abfolge von Schritten in der zu testenden Anwendung, die von echten oder virtuellen Nutzern ausgeführt wird, beispielsweise eine Online-Bestellung Begriffe: Testszenario = Nutzerszenario ≈ Geschäftsfall ≈ Nutzertyp Auswahl von Szenarien – welche sind eventuell wichtig? durch die Lasttest-Ziele bedingte Szenarien vertraglich zugesicherte Szenarien geschäftskritische Szenarien häufigste Szenarien besonders sichtbare Szenarien lastintensive Szenarien aus technischen Gründen zu prüfende Szenarien Szenarien mit Fehleingaben Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 17
Testplanung – Szenarien (II) Hinweise Beschränkung auf 3..10 Testszenarien, durchschnittlich etwa 5 Szenarien sollten möglichst die reale Nutzung des Systems widerspiegeln Nutzung zufälliger Daten, u.a., um Caching-Effekte auszuschließen Szenarien durch Aufteilung in isolierte Features/Qualitäten flexibel halten • Feature nicht verfügbar => Nutzertyp bei Ausführung weglassen • Probleme unter Last => Eingrenzen durch Test von Einzelszenarien • Lastprofile einfacher justierbar („weniger Suche, mehr Bestellungen“) Beispiele: • Szenarien mit HTTPS / ohne HTTPS • Szenarien mit Nutzung eines bestimmten Backends / ohne Backend • Szenarien, die Daten in die DB schreiben / nicht schreiben auch Batchprozesse berücksichtigen Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 18
Testplanung – Validierung (I) Die vom zu testenden System gelieferten Antworten müssen auf Korrektheit geprüft werden: „Als wir die Last noch weiter erhöht haben, wurde das System wieder schneller und stabiler!“ Die Fehlerseiten wurden tatsächlich sehr schnell ausgeliefert! Beispiele für Überprüfungen: Richtige Seite? Richtiger Content? Formular vorhanden? Aktion erfolgreich, liegt zum Beispiel das richtige Produkt im Warenkorb? Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 19
Testplanung – Validierung (II) Pre-Validation Prüfung der aktuellen Seite VOR Ausführung einer Aktion Vorhandensein aller erforderlichen Daten und Elemente? Beispiel: Eingabefeld für Suchbegriff und „Search“-Button vorhanden? Post-Validation Prüfung der geladenen Seite NACH Ausführung der Aktion Vorhandensein und Korrektheit der erwarteten Antwort Beispiel: Wird das erwartete Suchergebnis dargestellt? Variationen in der Validierung berücksichtigen, z. B. bei der Suche genau ein Ergebnis => Ergebnisseite direkt angezeigt Liste mit Ergebnissen => zusätzlicher Request zur Ergebnisseite nötig mehrseitige Ergebnisliste => ev. erst blättern, dann Ergebnisseite wählen Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 20
Testplanung – Lastmodelle (I) Simulation einer festen Nutzerzahl klar definierte Last durch konstante Anzahl virtueller Nutzer je Szenario häufig ohne simulierte Denkzeiten angewendet einfacher vergleichbar, aber weniger realistisch Anzahl der ausgeführten Testszenarien hängt vom Verhalten des SUT ab ein vorgegebenes Verhältnis der auszuführenden Testszenarien untereinander erfordert • Probeläufe • Anpassung der Anzahlen der einzelnen Nutzertypen Einsatzbeispiele: • Simulation einzelner Testszenarien, z.B. für Durchsatztests • Vergleiche bei Tuning-Maßnahmen oder Fehlersuche Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 21
Testplanung – Lastmodelle (II) Simulation einer kontrolliert steigenden Nutzerzahl (Ramp-Up) Ramp-Up-Phase auf eine maximale Nutzerzahl sonstige Eigenschaften wie bei Simulation einer festen Nutzerzahl Anstieg erfolgt • relativ kontinuierlich in sehr kleinen Schritten (Gerade) • in größeren Schritten mit längeren, konstanten Plateaus (Treppe) Anstieg langsam genug wählen: • das System kann sich jeweils auf die neue Last einschwingen • zur besseren Vergleichbarkeit sollten mehrere Testszenarien auf jeder Laststufe vollständig durchlaufen werden Grenzen des zu testenden Systems leicht ermittelbar, beispielsweise für Stresstests Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 22
Testplanung – Lastmodelle (III) Simulation einer konstanten Ankunftsrate von Nutzern die Anzahl der pro Zeiteinheit eintreffenden neuen Nutzer ist gegeben die Anzahl paralleler Nutzer/paralleler Sessions hängt ab • vom Antwortverhalten des getesteten Systems • von den konfigurierten Denkzeiten • von der Anzahl der Schritte pro Testszenario oft mit einem Mix aus Nutzerszenarien und mit Denkzeiten angewendet Einsatzbeispiele: • Test auf Erfüllung vorgegebener Performance-Erwartungen • Dauerlasttest realistischer, aber schwerer vergleichbar und interpretierbar Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 23
Testplanung – Szenarien, Beispiel Beispiel für Nutzer-Mix: Online-Shop, 5 Testszenarien Browsing von Katalog- und Produktseiten: 60% der Sessions Warenkorb (Produkte zufügen entfernen): 10% der Sessions Warenkorb mit Bestellung: 5% der Sessions Suche und Browsing im Suchergebnis: 20% der Sessions Newsletter-Registrierung: 5% der Sessions Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 24
Testplanung – Mengengerüste Last-Festlegung für jedes relevante Testszenario Transaktionen je Zeiteinheit oder Anzahl paralleler Nutzer Denkzeiten zwischen den Aktionen (Dauer und Verteilung) gelesene und geschriebene Datenmengen Mengen- und zeitliches Verhalten in Summe gleichzeitig offene Sessions Nutzungsprofil über alle Geschäftsprozesse über 24h/7d geforderte Spitzenwerte berücksichtigen Welche Performance-Vorgaben sind dabei zu erfüllen? Antwortzeiten (eventuell je Geschäftsprozess-Schritt) Durchsätze Verfügbarkeiten Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 25
Testplanung – Testdaten Definition der benötigten Testdaten je Testszenario Benötigte Datenmengen • initial • simulierte Situation nach einer Laufzeit, z.B. nach einem Jahr Quelle der Testdaten • Sind reale Daten verfügbar? Ist Anonymisierung nötig? • Tools zur Datengenerierung notwendig? • Generierung durch Lasttests selbst, zum Beispiel Nutzerregistrierung? • Abhängigkeiten zu anderen Systemen? Wie können die Daten in das System gebracht werden? Rücksetzbarkeit für vergleichbare Ausgangszustände? Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 26
Testplanung – Testumgebung (I) Zu testendes System Struktur und Größe möglichst ähnlich der Produktionsumgebung im Idealfall alle HW- und SW-Komponenten vorhanden Netzwerkzugänge und Freischaltungen planen Bei Testfenstern auf der Produktionsumgebung Isolation und Rücksetzen des Zustands beachten (Test auf Produktionsumgebung grundsätzlich besser vermeiden)! Angeschlossene Systeme alle relevanten Systeme (Backends) angeschlossen und verfügbar eventuell Simulatoren nutzen Datenkonsistenz zwischen allen Systemen beachten Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 27
Testplanung – Testumgebung (II) Lasterzeugung oft signifikanter Ressourcenbedarf der Lastgeneratoren Einflüsse auf den Ressourcenbedarf: • simulierte Denkzeiten • Modus der Lasterzeugung, z.B. Ausführung von JavaScript on/off • Antwortverhalten des zu testenden Systems • Komplexität der Testskripte • eingesetztes Lasttestwerkzeug genügend Rechner für Lasterzeugung einplanen realen Bedarf im Zweifelsfall durch Probeläufe ermitteln Cloud Computing Services dafür gut nutzbar, zum Beispiel Amazon EC2 Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 28
Testplanung – Testumgebung (III) Monitoring aller Aspekte Monitoring • des zu testenden Systems • der Lastgeneratoren • der Netzwerke Monitoringdaten und Testergebnis gemeinsam auswerten Auslastungen, Ressourcenbedarf Fehlerlogs Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 29
Testdurchführung - Iterationen Baseline- Ziel festlegen Messung Ergebnisse Ziel erreicht Stopp auswerten Anfangszustand herstellen, eine Änderung Verbesserung, Änderung Messung Ziel noch nicht verwerfen erreicht Ergebnisse keine Verbesserung auswerten Ziel erreicht Stopp Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 30
Xceptance LoadTest – XLT (I) verteiltes Werkzeug für automatisierte Regressions- und Lasttests hauptsächlich für Web-basierte Anwendungen Script Developer (Firefox -Erweiterung): • Aufzeichnung • Entwicklung • Ausführung von Testfällen unterstützt Ausführung von JavaScript & Ajax durch virtuelle Nutzer plattformunabhängig - pure Java; Scripting in Java oder Ruby volle Unterstützung von JUnit 4 einfach integrierbar und anpassbar durch Nutzung offener Standards kostenlose Basislizenz und On-Demand-Lizenzierung skalierbar über beliebig viele Lastmaschinen und Standorte unterstützt HTML(DOM)- und HTTP-basiertes Testen Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 31
Xceptance LoadTest – XLT (II) Script Developer (in Firefox) System Under Test Web Server Agent Controller Application + Agents Master Server Controller Load … Java IDE Database • Test Suite Server • Data Agent Results Controller • Configuration + Agents Storage Report Generator Reports Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 32
Vielen Dank für Ihre Aufmerksamkeit! Haben Sie Fragen? Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 33
Kontakt Xceptance Software Technologies GmbH Rathausgasse 4 07743 Jena Germany Telefon: +49 3641 376300 Telefax: +49 3641 376122 E-Mail: kontakt@xceptance.de Web: http://www.xceptance.de Lasttests von Web-Anwendungen, René Schwietzke, Ronny Vogel, 2011 34
Sie können auch lesen