Was ist LoadRunner?
LoadRunner ist ein Leistungstest-Tool, das 1999 von Mercury entwickelt wurde. LoadRunner wurde später 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 von Protokollen zur Durchführung von Leistungstests unterstützt. Von der LoadRunner-Software erstellte Leistungstestergebnisse werden als Benchmark für andere Tools verwendet
In diesem Tutorial lernen Sie:
- Warum LoadRunner?
- Warum benötigen Sie Leistungstests?
- Was ist LoadRunner-Architektur?
- Roadmap für Leistungstests: Detaillierte Schritte
- FAQ
Warum LoadRunner?
LoadRunner ist nicht nur ein Pionier im Bereich Leistungstests, sondern auch weiterhin Marktführer im Bereich Leistungstests. In einer kürzlich durchgeführten Bewertung hat LoadRunner einen Marktanteil von etwa 85% in der Branche für Leistungstests.
Im Allgemeinen unterstützt das LoadRunner-Tool RIA (Rich Internet Applications), Web 2.0 (HTTP / HTML, Ajax, Flex und Silverlight usw.), Mobile, SAP, Oracle, MS SQL Server, Citrix, RTE, Mail und vor allem Windows Socket. Es gibt kein Konkurrenz-Tool auf dem Markt, das eine so große Vielfalt von Protokollen anbieten könnte, die in einem einzigen Tool enthalten sind.
Was bei der Auswahl von LoadRunner beim Testen von Software überzeugender ist, ist die Glaubwürdigkeit dieses Tools. Das LoadRunner-Tool hat sich seit langem einen Namen gemacht, da Kunden häufig Ihre Leistungsbenchmarks mit LoadRunner überprüfen. 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 arbeitet nach einem Prinzip der Simulation virtueller Benutzer in der betreffenden Anwendung. Diese virtuellen Benutzer werden auch als VUs bezeichnet, replizieren Clientanforderungen und erwarten eine entsprechende Antwort auf das Übergeben einer Transaktion.
Warum benötigen Sie Leistungstests?
Aufgrund der schlechten Webleistung wird jährlich ein geschätzter Umsatzverlust von 4,4 Milliarden Euro verzeichnet.
Im heutigen Zeitalter von Web 2.0 klicken Benutzer weg, wenn eine Website nicht innerhalb von 8 Sekunden antwortet. Stellen Sie sich vor, Sie warten 5 Sekunden, wenn Sie nach Google suchen oder eine Freundschaftsanfrage auf Facebook stellen. Die Auswirkungen von Leistungsausfällen sind oft verheerender als je zuvor gedacht. Wir haben Beispiele wie die, die kürzlich das Online-Banking der Bank of America, Amazon Web Services, Intuit oder Blackberry getroffen haben.
Laut Dunn & Bradstreet haben 59% der Fortune 500-Unternehmen jede Woche geschätzte 1,6 Stunden Ausfallzeit. Wenn man bedenkt, 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 eine solche Organisation 896.000 US-Dollar pro Woche betragen, was mehr als 46 Millionen US-Dollar pro Jahr entspricht.
Nur eine 5-minütige Ausfallzeit von Google.com (19. August 13) kostet den Suchriesen schätzungsweise 545.000 US-Dollar.
Schätzungen zufolge haben Unternehmen aufgrund eines kürzlich aufgetretenen Ausfalls des Amazon Web Service einen Umsatzverlust von 1100 US-Dollar pro Sekunde erzielt.
Wenn ein Softwaresystem von einer Organisation bereitgestellt wird, kann es zu vielen Szenarien kommen, die möglicherweise zu einer Leistungsverzögerung führen. Eine Reihe von Faktoren führen zu einer Verlangsamung der Leistung. Einige Beispiele können sein:
- Erhöhte Anzahl von Datensätzen in der Datenbank
- Erhöhte Anzahl gleichzeitiger Anforderungen an das System
- Im Vergleich zur Vergangenheit hat eine größere Anzahl von Benutzern gleichzeitig Zugriff auf das System
Was ist LoadRunner-Architektur?
Im Großen und Ganzen ist die Architektur von HP LoadRunner komplex und dennoch leicht zu verstehen.

Angenommen, Sie sind beauftragt, die Leistung von Amazon.com für 5000 Benutzer zu überprüfen
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 Virtual User Generator ist eine IDE (Integrated Development Environment) oder ein umfangreicher Codierungseditor. VUGen wird verwendet, um das SUL-Verhalten (System Under Load) zu replizieren. VUGen bietet eine "Aufzeichnungs" -Funktion, die die Kommunikation zum und vom Client und Server in Form eines codierten Skripts aufzeichnet - auch als VUser-Skript bezeichnet.
In Anbetracht des obigen Beispiels kann VUGen folgende Geschäftsprozesse aufzeichnen, um sie zu simulieren:
- Surfen auf der Produktseite von Amazon.com
- Überprüfen
- Zahlungsabwicklung
- Überprüfen der MyAccount-Seite
Regler
Sobald ein VUser-Skript fertiggestellt ist, ist Controller eine der Hauptkomponenten von LoadRunner, die die Lastsimulation steuert, indem sie beispielsweise Folgendes verwaltet:
- Wie viele VUs müssen für jeden Geschäftsprozess oder jede VUser-Gruppe simuliert werden?
- Verhalten von VUsern (Hochfahren, Herunterfahren, gleichzeitige oder gleichzeitige Natur usw.)
- Art des Lastszenarios, z. B. reales Leben oder zielorientiert oder Überprüfung der SLA
- Welche Injektoren verwendet werden sollen, wie viele VUs gegen jeden Injektor
- Sammeln Sie die Ergebnisse regelmäßig
- IP-Spoofing
- Fehler melden
- Transaktionsberichterstattung usw.
Wenn Sie eine Analogie von unserem Beispiel-Controller verwenden, wird der folgende Parameter zum VUGen-Skript hinzugefügt
1) 3500 Benutzer surfen auf der Produktseite von Amazon.com
2) 750 Benutzer befinden sich in der Kasse
3) 500 Benutzer führen die Zahlungsabwicklung durch
4) 250 Benutzer überprüfen die MyAccount-Seite NUR, nachdem 500 Benutzer die Zahlungsabwicklung durchgeführt haben
Noch komplexere Szenarien sind möglich
- Initiieren Sie alle 2 Sekunden 5 VUs, bis eine Last von 3500 VUs (Surfen auf der Amazon-Produktseite) erreicht ist.
- 30 Minuten iterieren
- Unterbrechen Sie die Iteration für 25 VUs
- Starten Sie 20 VUSer neu
- Initiieren Sie jede Sekunde 2 Benutzer (in Checkout, Zahlungsabwicklung, MyAccounts-Seite).
- Auf Maschine A werden 2500 VUs generiert
- Auf Maschine B werden 2500 VUs generiert
Agenten Maschine / Lastgeneratoren / Injektoren
HP LoadRunner Controller ist dafür verantwortlich, Tausende von VUs zu simulieren - diese VUs verbrauchen Hardwareressourcen, z. B. Prozessor und Speicher - und begrenzen somit den Computer, der sie simuliert. Außerdem simuliert der Controller diese VUs von derselben Maschine (auf der sich der Controller befindet) und daher sind die Ergebnisse möglicherweise nicht präzise. Um dieses Problem zu lösen, sind alle VUs auf verschiedene Maschinen verteilt, die als Lastgeneratoren oder Lastinjektoren bezeichnet werden .
In der Regel befindet sich die Steuerung auf einer anderen Maschine und die Last wird von anderen Maschinen simuliert. Abhängig vom Protokoll der VUser-Skripte und den Maschinenspezifikationen ist möglicherweise eine Reihe von Load Injectors für die vollständige Simulation erforderlich. Beispielsweise benötigen VUs für ein HTTP-Skript 2-4 MB pro VUser für die Simulation. Daher sind 4 Computer mit jeweils 4 GB RAM erforderlich, um eine Last von 10.000 VUs zu simulieren.
Anhand der Analogie aus unserem Amazon-Beispiel wird die Ausgabe dieser Komponente sein
Analyse:
Sobald Lastszenarien ausgeführt wurden, kommt die Rolle der " Analyse " -Komponenten von LoadRunner ins Spiel.
Während der Ausführung erstellt Controller einen Dump mit Ergebnissen in Rohform und enthält Informationen wie, welche Version von LoadRunner diesen Ergebnis-Dump erstellt hat und welche Konfigurationen vorhanden waren.
Alle Fehler und Ausnahmen werden in einer Microsoft-Zugriffsdatenbank mit dem Namen output.mdb protokolliert. Die Komponente "Analyse" liest diese Datenbankdatei, um verschiedene Analysetypen durchzuführen, und generiert Diagramme.
Diese Grafiken zeigen verschiedene Trends, um die Gründe für Fehler und Ausfälle unter Last zu verstehen. Auf diese Weise können Sie herausfinden, ob eine Optimierung in SUL, Server (z. B. JBoss, Oracle) oder in der Infrastruktur erforderlich ist.
Im Folgenden finden Sie ein Beispiel, bei dem die Bandbreite zu einem Engpass führen kann. Angenommen, der Webserver hat eine Kapazität von 1 GBit / s, während der Datenverkehr diese Kapazität überschreitet, was dazu führt, dass nachfolgende Benutzer darunter leiden. Um festzustellen, ob das System diesen Anforderungen gerecht wird, muss Performance Engineer das Anwendungsverhalten mit einer abnormalen Last analysieren. Unten sehen Sie ein Diagramm, das LoadRunner generiert, um Bandbreite zu ermitteln.
Roadmap für Leistungstests: Detaillierte Schritte
Die Roadmap für Leistungstests kann grob in fünf Schritte unterteilt werden:
- Planung für Lasttest
- Erstellen Sie VUGen-Skripte
- Szenarioerstellung
- Szenarioausführung
- Ergebnisanalyse (gefolgt von Systemoptimierung)
Nachdem Sie LoadRunner installiert haben, lassen Sie uns die Schritte des Prozesses nacheinander verstehen.
Schritte im Leistungstestprozess
Planung für den Belastungstest
Das Planen von Leistungstests unterscheidet sich vom Planen eines SIT (System Integration Testing) oder UAT (User Acceptance Testing). Die Planung kann wie folgt weiter in kleine Phasen unterteilt werden:
Stellen Sie Ihr Team zusammen
Wenn Sie mit LoadRunner-Tests beginnen, dokumentieren Sie am besten, wer von jedem Team, das an dem Prozess beteiligt ist, an der Aktivität teilnimmt.
Projektmanager:
Nominieren Sie den Projektmanager, dem diese Aktivität gehört, und fungieren Sie als Ansprechpartner für die Eskalation.
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 Architekt:
Bietet eine Blaupause des SUL
Webentwickler und KMU:
- Pflegt die Website und bietet Überwachungsaspekte
- Entwickelt eine Website und behebt Fehler
Systemadministrator:
- Wartet die beteiligten Server während eines Testprojekts
Umreißen Sie die beteiligten Anwendungen und Geschäftsprozesse:
Für einen erfolgreichen Lasttest müssen Sie bestimmte Geschäftsprozesse ausführen. Ein Geschäftsprozess besteht aus klar definierten Schritten zur Einhaltung der gewünschten Geschäftstransaktionen, um Ihre Lasttestziele zu erreichen.
Eine Anforderungsmetrik kann erstellt werden, um die Benutzerlast auf dem System zu ermitteln. Nachfolgend finden Sie ein Beispiel für ein Anwesenheitssystem in einem Unternehmen:
Im obigen Beispiel wird in den Abbildungen die Anzahl der Benutzer angegeben, 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. Dies wird in den Spalten ganz rechts berechnet.
Ebenso können wir die Gesamtzahl der Benutzer, die mit der Anwendung (SUL) verbunden sind, zu jeder Tageszeit ermitteln. Dies wird in der letzten Zeile berechnet.
Die obigen 2 Fakten zusammen geben uns die Gesamtzahl der Benutzer an, mit denen wir das System auf Leistung testen müssen.
Definieren Sie Testdatenverwaltungsverfahren
Statistiken und Beobachtungen aus Leistungstests werden stark von zahlreichen Faktoren beeinflusst, wie bereits erläutert. 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 legt ihn zur Überprüfung vor.
- Ein anderer Benutzer 'B' genehmigt 200 Verträge pro Tag, die von Benutzer 'A' erstellt wurden.
- Ein anderer Benutzer 'C' zahlt ungefähr 150 Verträge pro Tag, die von Benutzer 'B' genehmigt wurden.
In dieser Situation müssen Benutzer B 200 Verträge im System "erstellt" haben. Außerdem benötigt Benutzer C 150 Verträge als "genehmigt", um eine Last von 150 Benutzern zu simulieren.
Dies bedeutet implizit, dass Sie mindestens 200 + 150 = 350 Verträge erstellen müssen.
Genehmigen Sie danach 150 Verträge als Testdaten für Benutzer C - die verbleibenden 200 Verträge dienen als Testdaten für Benutzer B.
Gliederungsmonitore
Spekulieren Sie jeden einzelnen Faktor, der möglicherweise die Leistung eines Systems beeinträchtigen könnte. Eine reduzierte Hardware hat beispielsweise potenzielle Auswirkungen auf die SUL-Leistung (System Under Load).
Tragen Sie alle Faktoren ein 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- und SGA-Größe bei Oracle und MSSQL Server, SPs usw.)
- Netzwerkbandbreitennutzung
- Interne und externe Netzwerkkarte bei Clustering
- Load Balancer (und dass es die Last gleichmäßig auf alle Knoten von Clustern verteilt)
- Datenfluss (Berechnen Sie, wie viele Daten von und zu Client und Server übertragen werden, und berechnen Sie dann, ob eine NIC-Kapazität ausreicht, um die X-Anzahl von Benutzern zu simulieren.)
Erstellen Sie VUGen-Skripte
Der nächste Schritt nach der Planung besteht darin, VUser-Skripte zu erstellen.
Szenarioerstellung
Der nächste Schritt besteht darin, Ihr Ladeszenario zu erstellen
Szenarioausführung
Bei der Szenarioausführung emulieren Sie die Benutzerlast auf dem Server, indem Sie mehrere VUs anweisen, Aufgaben gleichzeitig auszuführen.
Sie können die Laststufe festlegen, indem Sie die Anzahl der VUs erhöhen und verringern, die gleichzeitig Aufgaben ausführen.
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 gezogenen Ergebnisse werden dann zur detaillierten Analyse und Identifizierung der Grundursache verwendet.
Ergebnisanalyse (gefolgt von Systemoptimierung)
Während der Ausführung des Szenarios zeichnet LoadRunner die Leistung der Anwendung unter verschiedenen Lasten auf. Die aus der Testausführung gezogenen Statistiken werden gespeichert und eine Detailanalyse durchgeführt. Das Tool "HP Analysis" generiert verschiedene Diagramme, mit deren Hilfe die Hauptursachen für eine Verzögerung der Systemleistung sowie einen Systemausfall ermittelt werden können.
Einige der erhaltenen Grafiken umfassen:
- Zeit bis zum ersten Puffer
- Transaktionsantwortzeit
- Durchschnittliche Transaktionsantwortzeit
- Treffer pro Sekunde
- Windows-Ressourcen
- Fehlerstatistik
- Transaktions zusammenfassung
FAQ
Welche Anwendungen sollten wir auf Leistung testen?
Leistungstests werden immer nur für Client-Server-basierte Systeme durchgeführt. Dies bedeutet, dass für jede Anwendung, die keine Client-Server-basierte Architektur ist, keine Leistungstests erforderlich sind.
Beispielsweise ist Microsoft Calculator weder Client-Server-basiert noch führt es mehrere Benutzer aus. Daher ist es kein Kandidat für Leistungstests.
Was ist der Unterschied zwischen Leistungstests und Performance Engineering?
Es ist wichtig, den Unterschied zwischen Leistungstests und Leistungstechnik zu verstehen. Ein Verständnis wird unten geteilt:
Leistungstests sind eine Disziplin, die sich mit dem Testen und Berichten der aktuellen Leistung einer Softwareanwendung unter verschiedenen Parametern befasst.
Performance Engineering ist der Prozess, mit dem Software getestet und optimiert wird, um die erforderliche Leistung zu erzielen. Dieser Prozess zielt darauf ab, das wichtigste Merkmal der Anwendungsleistung, dh die Benutzererfahrung, zu optimieren.
In der Vergangenheit waren Testen und Optimieren deutlich voneinander getrennt und konkurrierten häufig miteinander. In den letzten Jahren haben jedoch mehrere Taschen von Testern und Entwicklern unabhängig voneinander zusammengearbeitet, um Tuning-Teams zu bilden. Da diese Teams erhebliche Erfolge erzielt haben, hat sich das Konzept der Kopplung von Leistungstests mit Leistungsoptimierung durchgesetzt, und jetzt nennen wir es Performance Engineering.