Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011

Die Seite wird erstellt Stephan Martens
 
WEITER LESEN
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
Lasttests von Web-Anwendungen

René Schwietzke, Ronny Vogel
Xceptance Software Technologies GmbH, 2011

                                             1
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
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
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
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
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
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
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
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
Lasttests von Web-Anwendungen - René Schwietzke, Ronny Vogel Xceptance Software Technologies GmbH, 2011
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