LoadRunner-Testtool – Komponenten & Architektur

Was ist LoadRunner?

LoadRunner ist ein Leistungstesttool, das 1999 von Mercury entwickelt wurde. LoadRunner war es later 2006 von HPE übernommen. 2016 wurde LoadRunner von MicroFocus übernommen.

LoadRunner unterstützt verschiedene Entwicklungstools, Technologien und Kommunikationsprotokolle. Tatsächlich ist dies das einzige Tool auf dem Markt, das eine so große Anzahl durchzuführender Protokolle unterstützt Performance Testing. Die von der LoadRunner-Software erstellten Leistungstestergebnisse werden als Benchmark für andere Tools verwendet

LoadRunner-Video

Warum LoadRunner?

LoadRunner ist nicht nur ein Pioniertool im Bereich Leistungstests, sondern auch immer noch Marktführer im Leistungstest-Paradigma. Laut einer aktuellen Bewertung hat LoadRunner einen Marktanteil von etwa 85 % in der Leistungstestbranche.

LoadRunner

Broadly, LoadRunner tool supports RIA (Rich Internet Applications), Web 2.0 (HTTP/HTML, Ajax, Flex and Silverlight etc.), Mobile, SAP, Oracle, MS SQL Server, Citrix, RTE, Mail und darüber hinaus, Windows Steckdose. Es gibt kein konkurrierendes Tool auf dem Markt, das eine so große Protokollvielfalt in einem einzigen Tool bieten könnte.

LoadRunner

Was die Wahl von LoadRunner beim Softwaretesten noch mehr überzeugt, ist die Glaubwürdigkeit dieses Tools. Wie Sie oft feststellen werden, hat sich das LoadRunner-Tool seit langem einen guten Ruf erworben Kunden überprüfen Ihre Leistungsbenchmarks mithilfe von LoadRunner. Sie werden Erleichterung finden, wenn Sie LoadRunner bereits für Ihre Leistungstestanforderungen verwenden.

Die LoadRunner-Software ist eng in andere HP-Tools wie Unified Functional Test (QTP) und ALM (Application Lifecycle Management) integriert und ermöglicht Ihnen die Durchführung Ihrer End-to-End-Testprozesse.

LoadRunner basiert auf dem Prinzip der Simulation virtueller Benutzer für die betreffende Anwendung. Diese virtuellen Benutzer, auch VUser genannt, replizieren die Anforderungen des Clients und erwarten eine entsprechende Antwort auf die Weiterleitung einer Transaktion.

Warum brauchen Sie Leistungstests?

Schätzungsweise Verlust von 4.4 billIon im Umsatz wird jährlich aufgrund schlechter Web-Performance erfasst.

Im heutigen Web 2.0-Zeitalter klicken Nutzer weg, wenn eine Website nicht innerhalb von 8 Sekunden antwortet. Stellen Sie sich vor, Sie würden 5 Sekunden warten, wenn Sie es tunarchiBei Google anmelden oder eine Freundschaftsanfrage auf Facebook stellen. Die Auswirkungen von Leistungsausfällen sind oft verheerender als je gedacht. Wir haben Beispiele wie die, die kürzlich im Online-Banking der Bank of America erschienen sind. Amazon Webdienste, Intuit oder Blackberry.

Laut Dunn & Bradstreet erleben 59 % der Fortune-500-Unternehmen jede Woche schätzungsweise 1.6 Stunden Ausfallzeit. Wenn man davon ausgeht, dass ein durchschnittliches Fortune-500-Unternehmen mit mindestens 10,000 Mitarbeitern 56 US-Dollar pro Stunde zahlt, würde der Arbeitsanteil der Ausfallkosten für ein solches Unternehmen 896,000 US-Dollar pro Woche betragen, was mehr als 46 Millionen US-Dollar pro Jahr entspricht.

Allein eine fünfminütige Ausfallzeit von Google.com (5. August 19) kostet den Suchriesen schätzungsweise bis zu 13 US-Dollar.

Es wird geschätzt, dass Unternehmen aufgrund einer kürzlichen Krise Umsätze in Höhe von 1100 US-Dollar pro Sekunde verloren haben Amazon Ausfall des Webdienstes.

Wenn ein Softwaresystem von einer Organisation bereitgestellt wird, kann es zu vielen Szenarien kommen, die möglicherweise zu Leistungslatenz führen. Eine Reihe von Faktoren führen zu einer Leistungsverlangsamung. Einige Beispiele hierfür sind:

  • Erhöhte Anzahl der in der Datenbank vorhandenen Datensätze
  • Erhöhte Anzahl gleichzeitigerneouns Anfragen an das System
  • Im Vergleich zur Vergangenheit greift eine größere Anzahl von Benutzern gleichzeitig auf das System zu

Was ist LoadRunner? ArchiStruktur?

Im Großen und Ganzen ist die archiDie Struktur von HP LoadRunner ist complex, aber dennoch leicht verständlich.

LoadRunner Architektur
LoadRunner ArchiStrukturdiagramm

Angenommen, Sie haben den Auftrag, die Leistung von zu überprüfen Amazon.com für 5000 Benutzer

In einer realen Situation befinden sich diese 5000 Benutzer nicht auf der Startseite, sondern in einem anderen Bereich der Websites. Wie können wir anders simulieren?

VUGen

VUGen oder virtueller Benutzer Generator ist eine IDE (Integrated Development Environment) oder ein Rich-Coding-Editor. VUGen wird verwendet, um das Verhalten von System Under Load (SUL) zu replizieren. VUGen bietet eine „Aufzeichnungs“-Funktion, die die Kommunikation zu und von Client und Server in Form eines codierten Skripts – auch VUser-Skript genannt – aufzeichnet.

Betrachtet man also das obige Beispiel, kann VUGen aufzeichnen, um Follo zu simulierenwing Arbeitsprozesse:

  1. Surfen auf der Produktseite von Amazon.com €XNUMX
  2. Kasse
  3. Payment Processing
  4. Überprüfen Sie die Seite „Mein Konto“.

Controller

Sobald ein VUser-Skript fertiggestellt ist, ist Controller eine der Hauptkomponenten von LoadRunner, die die Lastsimulation steuert, indem sie beispielsweise Folgendes verwaltet:

  • Wie viele VUser für jeden Geschäftsprozess oder jede VUser-Gruppe simuliert werden sollen
  • Verhalten von VUsern (ramp up, ramp unten, gleichzeitigneouns oder gleichzeitige Natur usw.)
  • Art des Lastszenarios, z. B. reales oder zielorientiertes oder überprüfendes SLA
  • Welche Injektoren verwendet werden sollen, wie viele VUser pro Injektor
  • Sammeln Sie die Ergebnisse regelmäßig
  • IP-Spoofing
  • Fehlermeldung
  • Transaktionsberichte usw.

Wenn wir eine Analogie zu unserem Beispiel-Controller nehmen, wird Folgendes hinzugefügtwing Parameter für das VUGen-Skript

1) 3500 Benutzer sind Surfen auf der Produktseite von Amazon.com €XNUMX

2) 750 Benutzer sind dabei Kasse

3) 500 Benutzer sind Durchführung der Zahlungsabwicklung

4) 250 Benutzer sind Überprüfen Sie die Seite „Mein Konto“ NUR, nachdem 500 Benutzer die Zahlungsabwicklung durchgeführt haben

Noch mehr complex Szenarien sind möglich

  1. Initiieren Sie alle 5 Sekunden 2 VUser, bis eine Auslastung von 3500 VUsern (Surfen) erreicht ist Amazon Produktseite) erreicht wird.
  2. 30 Minuten lang iterieren
  3. Unterbrechen Sie die Iteration für 25 VUser
  4. Starten Sie 20 VUSer neu
  5. Initiieren Sie jede Sekunde 2 Benutzer (in der Kasse, Zahlungsabwicklung, Seite „Meine Konten“).
  6. 2500 VUser werden auf Maschine A generiert
  7. 2500 VUser werden auf Maschine B generiert

Agenten Maschine/Last Generators/Injektoren

Der HP LoadRunner Controller ist dafür verantwortlich, Tausende von VUsern zu simulieren – diese VUser verbrauchen Hardwareressourcen, zum Beispiel Prozessor und Speicher – und setzen somit eine Grenze für die Maschine, die sie simuliert. Außerdem simuliert Controller diese VUser von derselben Maschine (auf der sich Controller befindet) und daher sind die Ergebnisse möglicherweise nicht präzise. Um dieses Problem zu lösen, werden alle VUser auf verschiedene Maschinen verteilt, sogenannte Laden Sie Generators oder Load Injectors.

Im Allgemeinen befindet sich der Controller auf einer anderen Maschine und die Last wird von anderen Maschinen simuliert. Abhängig vom Protokoll der VUser-Skripte und den Maschinenspezifikationen sind möglicherweise mehrere Load Injectors für eine vollständige Simulation erforderlich. Beispielsweise benötigen VUser für ein HTTP-Skript 2–4 MB pro VUser für die Simulation, daher sind 4 Maschinen mit jeweils 4 GB RAM erforderlich, um eine Last von 10,000 VUsern zu simulieren.

Eine Analogie aus unserem nehmen Amazon Beispiel: Die Ausgabe dieser Komponente wird sein

Analyse

Sobald Lastszenarien ausgeführt wurden, ist die Rolle von „Analyse„Komponenten von LoadRunner kommen ins Spiel.

Während der Ausführung erstellt der Controller einen Dump der Ergebnisse in Rohform und enthält Informationen wie etwa, welche Version von LoadRunner diesen Dump der Ergebnisse erstellt hat und welche Konfigurationen es gab.

Alle Fehler und Ausnahmen werden protokolliert Microsoft Access-Datenbank mit dem Namen „output.mdb“. Die Komponente „Analyse“ liest diese Datenbankdatei, um verschiedene Arten von Analysen durchzuführen und Diagramme zu erstellen.

These graphs show various trends to understand the reasoning behind errors and failure under load; thus help to figure whether optimization is required in SUL, Server (e.g. JBoss, Oracle) or infrastructure.

Unten sehen Sie ein Beispiel, bei dem die Bandbreite einen Engpass verursachen könnte. Nehmen wir an, der Webserver verfügt über eine Kapazität von 1 Gbit/s, während der Datenverkehr diese Kapazität übersteigt, wodurch nachfolgende Benutzer leiden. Um festzustellen, ob das System solche Anforderungen erfüllt, muss der Performance Engineer das Anwendungsverhalten bei abnormaler Auslastung analysieren. Unten sehen Sie ein Diagramm, das LoadRunner generiert, um die Bandbreite zu ermitteln.

Analyse

So führen Sie Leistungstests durch

Die Roadmap für Leistungstests kann grob in fünf Schritte unterteilt werden:

  • Planung für Lasttest
  • Erstellen Sie VUGen-Skripts
  • Szenarioerstellung
  • Szenarioausführung
  • Ergebnisanalyse (gefolgt von Systemoptimierung)

Nachdem Sie LoadRunner nun installiert haben, wollen wir uns die einzelnen Schritte des Prozesses näher ansehen.

Performance Testing

Schritte im Leistungstestprozess

Schritt 1) ​​Planung für den Lasttest

Die Planung von Leistungstests unterscheidet sich von der Planung von a SIT (Systemintegrationstests) or UAT (Benutzerakzeptanztest). Die Planung kann wie folgt weiter in kleine Phasen unterteilt werden:

Stellen Sie Ihr Team zusammen

Stellen Sie Ihr Team zusammen

Wenn Sie mit LoadRunner-Tests beginnen, ist es am besten, zu dokumentieren, wer von jedem am Prozess beteiligten Team an der Aktivität teilnehmen wird.

Projektmanager:

Ernennen Sie den Projektmanager, der für diese Aktivität zuständig ist und als Ansprechpartner für die Eskalation fungiert.

Funktionsexperte/Business-Analyst:

Bereitstellung einer Nutzungsanalyse von SUL und Bereitstellung von Fachwissen zur Geschäftsfunktionalität von Website/SUL

Experte für Leistungstests:

Erstellt die automatisierten Leistungstests und führt Lastszenarien aus

System integrieren Architect:

Bietet eine Blaupause des SUL

Webentwickler und KMU:

  • Pflegt die Website und stellt Überwachungsaspekte bereit
  • Entwickelt Website und behebt Fehler

Systemadministrator:

  • Verwaltet die beteiligten Server während eines Testprojekts

Skizzieren Sie die beteiligten Anwendungen und Geschäftsprozesse:

Erfolgreich Load Testing erfordert, dass Sie die Durchführung eines bestimmten Geschäftsprozesses planen. Ein Geschäftsprozess besteht aus klar definierten Schritten in Übereinstimmung mit gewünschten Geschäftstransaktionen – um Ihre Lasttestziele zu erreichen.

Es kann eine Anforderungsmetrik erstellt werden, um die Benutzerlast auf dem System zu ermitteln. Nachfolgend finden Sie ein Beispiel für ein Anwesenheitssystem in einem Unternehmen:

Beschreiben Sie die beteiligten Anwendungen und Geschäftsprozesse

Im obigen Beispiel geben die Zahlen die Anzahl der Benutzer an, die zu einer bestimmten Stunde mit der Anwendung (SUL) verbunden sind. Wir können die maximale Anzahl von Benutzern extrahieren, die zu jeder Tageszeit mit einem Geschäftsprozess verbunden sind und in den Spalten ganz rechts berechnet werden.

Ebenso können wir die Gesamtzahl der mit der Anwendung verbundenen Benutzer (SUL) zu jeder Tageszeit ermitteln. Dies wird in der letzten Zeile berechnet.

Die Kombination der beiden oben genannten Fakten ergibt die Gesamtzahl der Benutzer, mit denen wir das System auf Leistung testen müssen.

Definieren Sie Verfahren zur Testdatenverwaltung

Statistiken und Beobachtungen aus Leistungstests werden, wie bereits erwähnt, stark von zahlreichen Faktoren beeinflusst. Es ist von entscheidender Bedeutung, Testdaten für Leistungstests vorzubereiten. Manchmal verbraucht ein bestimmter Geschäftsprozess einen Datensatz und erzeugt einen anderen Datensatz. Nehmen Sie das folgende Beispiel:

  • Ein Benutzer „A“ erstellt einen Finanzvertrag und reicht ihn zur Überprüfung ein.
  • Ein anderer Benutzer „B“ genehmigt 200 Verträge pro Tag, die von Benutzer „A“ erstellt wurden.
  • Ein anderer Benutzer „C“ zahlt etwa 150 Verträge pro Tag, die von Benutzer „B“ genehmigt wurden.

In dieser Situation müssen für Benutzer B 200 Verträge im System „erstellt“ sein. Außerdem benötigt Benutzer C 150 Verträge als „genehmigt“, um eine Auslastung von 150 Benutzern zu simulieren.

Dies bedeutet implizit, dass Sie mindestens 200+150=350 Verträge erstellen müssen.

Danach genehmigen Sie 150 Verträge als Testdaten für Benutzer C – die restlichen 200 Verträge dienen als Testdaten für Benutzer B.

Umrissmonitore

Spekulieren Sie über jeden einzelnen Faktor, der möglicherweise die Leistung eines Systems beeinflussen könnte. Beispielsweise kann eine reduzierte Hardware potenzielle Auswirkungen auf die SUL-Leistung (System Under Load) haben.

Erfassen Sie alle Faktoren und richten Sie Monitore ein, damit Sie sie messen können. Hier einige Beispiele:

  • Prozessor (für Webserver, Anwendungsserver, Datenbankserver und Injektoren)
  • RAM (für Webserver, Anwendungsserver, Datenbankserver und Injektoren)
  • Web-/App-Server (zum Beispiel IIS, JBoss, Jaguar Server, Tomcat usw.)
  • DB Server (PGA and SGA size in case of Oracle and MSSQL Server, SPs etc.)
  • Auslastung der Netzwerkbandbreite
  • Interne und externe NIC im Falle von Clustering
  • Load Balancer (und dass er die Last gleichmäßig auf alle Knoten des Clusters verteilt)
  • Datenfluss (berechnet, wie viele Daten von und zu Client und Server übertragen werden – und berechnet dann, ob die Kapazität der NIC ausreicht, um eine X-Anzahl von Benutzern zu simulieren)

Schritt 2) Erstellen Sie VUGen-Skripte

Der nächste Schritt nach der Planung ist das Erstellen VUser-Skripte.

Schritt 3) Szenarioerstellung

Der nächste Schritt besteht darin, Ihr Lastszenario zu erstellen

Schritt 4) Szenarioausführung

Bei der Szenarioausführung emulieren Sie die Benutzerlast auf dem Server, indem Sie mehrere VUser anweisen, Aufgaben gleichzeitig auszuführenneogewöhnlich.

Sie können den Grad einer Auslastung festlegen, indem Sie die Anzahl der VUser, die gleichzeitig Aufgaben ausführen, erhöhen oder verringern.

Diese Ausführung kann dazu führen, dass der Server unter Stress gerät und sich abnormal verhält. Dies ist der eigentliche Zweck des Leistungstests. Die ermittelten Ergebnisse dienen dann der detaillierten Analyse und Ursachenermittlung.

Schritt 5) Ergebnisanalyse (gefolgt von Systemoptimierung)

Während der Szenarioausführung zeichnet LoadRunner die Leistung der Anwendung unter verschiedenen Lasten auf. Die aus der Testausführung erstellten Statistiken werden gespeichert und details Analyse durchgeführt wird. Das Tool „HP Analysis“ generiert verschiedene Diagramme, die dabei helfen, die Grundursachen für eine Verzögerung der Systemleistung sowie einen Systemausfall zu identifizieren.

Einige der erhaltenen Grafiken umfassen:

  • Zeit zum Ersten buffer
  • Transaktionsreaktionszeit
  • Durchschnittliche Transaktionsreaktionszeit
  • Treffer pro Sekunde
  • Windows Ressourcen
  • Fehlerstatistik
  • Transaktions zusammenfassung

FAQ

Leistungstests werden immer nur für Client-Server-basierte Systeme durchgeführt. Damit ist jede Anwendung gemeint, die nicht auf einem Client-Server basiert archiDie Struktur darf keine Leistungstests erfordern.

Zum Beispiel, Microsoft Der Rechner ist weder Client-Server-basiert noch läuft er für mehrere Benutzer. Daher ist es kein Kandidat für Leistungstests.

Performance Testing

Es ist wichtig, den Unterschied zwischen Leistungstests und Leistungstechnik zu verstehen. Im Folgenden wird ein Verständnis geteilt:

Performance Testing ist eine Disziplin, die sich mit beschäftigt Testen und Berichten die aktuelle Leistung einer Softwareanwendung unter verschiedenen Parametern.

Performance Engineering ist der Prozess, bei dem Software getestet und optimiert wird, um die erforderliche Leistung zu erzielen. Dieser Prozess zielt darauf ab, das wichtigste Leistungsmerkmal der Anwendung, nämlich die Benutzererfahrung, zu optimieren.

Historisch gesehen waren Testen und Tuning deutlich getrennte und oft konkurrierende Bereiche. In den letzten Jahren haben jedoch mehrere Gruppen von Testern und Entwicklern unabhängig voneinander zusammengearbeitet, um Tuning-Teams zu bilden. Da diese Teams erhebliche Erfolge erzielten, hat sich das Konzept der Kopplung von Leistungstests und Leistungsoptimierung durchgesetzt, und wir nennen es jetzt Leistungstechnik.