Parametrierung, Funktionen, Transaktionen in LoadRunner

Inhaltsverzeichnis:

Anonim

Ein aufgezeichnetes Skript kann einen virtuellen Benutzer simulieren. Eine bloße Aufzeichnung reicht jedoch möglicherweise nicht aus, um das „echte Benutzerverhalten“ zu replizieren.

Wenn ein Skript aufgezeichnet wird, deckt es den einzelnen und direkten Ablauf der betreffenden Anwendung ab. Während ein realer Benutzer mehrere Iterationen eines Prozesses ausführen kann, bevor er sich abmeldet. Die Verzögerung zwischen dem Klicken auf Schaltflächen (Denkzeit) variiert von Person zu Person. Es besteht die Möglichkeit, dass einige echte Benutzer über DSL auf Ihre Anwendung zugreifen und andere über eine Einwahl darauf. Um das echte Gefühl des Endbenutzers zu bekommen, müssen wir unsere Skripte so verbessern, dass sie genau übereinstimmen oder zumindest dem Verhalten der echten Benutzer sehr nahe kommen.

Das Obige ist die wichtigste Überlegung bei der Durchführung von „Leistungstests“, aber ein VU-Skript bietet noch mehr. Wie können Sie die genaue Zeit messen, die ein VUser benötigt, wenn SUL einem Leistungstest unterzogen wird? Wie würden Sie wissen, ob der VUser einen bestimmten Punkt durchlaufen hat oder fehlgeschlagen ist? Was ist die Ursache für den Fehler, ob ein Backend-Prozess fehlgeschlagen ist oder die Serverressourcen begrenzt waren?

Wir müssen unser Skript verbessern, um alle oben genannten Fragen beantworten zu können.

  • Transaktionen verwenden
  • Denkzeit, Rendezvous-Punkte und Kommentare verstehen
  • Einfügen von Funktionen über das Menü
  • Was ist Parametrierung?
  • Laufzeiteinstellungen und ihre Auswirkungen auf die VU-Simulation
    • Führen Sie Logic aus
    • Tempo
    • Log
  • Denk mal nach
  • Geschwindigkeitssimulation
  • Browser-Emulation
  • Proxy

Transaktionen verwenden

Transaktionen sind Mechanismen zum Messen der Serverantwortzeit für jede Operation. Mit einfachen Worten, die Verwendung von „Transaktion“ hilft dabei, die Zeit zu messen, die das System für eine bestimmte Anforderung benötigt. Es kann so klein wie ein Klick auf eine Schaltfläche oder ein AJAX-Aufruf sein, wenn der Fokus aus dem Textfeld verloren geht.

Das Anwenden von Transaktionen ist unkompliziert. Schreiben Sie einfach eine Codezeile, bevor eine Anfrage an den Server gesendet wird, und schließen Sie die Transaktion, wenn die Anfrage endet. LoadRunner benötigt nur eine Zeichenfolge als Transaktionsname.

Verwenden Sie diese Codezeile, um eine Transaktion zu öffnen:

lr_start_transaction ("Transaktionsname");

Verwenden Sie diese Codezeile, um die Transaktion abzuschließen:

lr_end_transaction ("Transaktionsname", );

Der teilt LoadRunner mit, ob diese bestimmte Transaktion erfolgreich oder nicht erfolgreich war. Die möglichen Parameter könnten sein:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Beispiel:

lr_end_transaction ("My_Login", LR_AUTO);

lr_end_transaction ("001_Opening_Dashboard Name", LR_PASS);
lr_end_transaction ("Business_Workflow_Transaction Name", LR_FAIL);

Zu beachtende Punkte:

  • Vergessen Sie nicht, Sie arbeiten mit "C" und das ist eine Sprache, bei der zwischen Groß- und Kleinschreibung unterschieden wird.
  • Das Punktzeichen (.) Ist im Transaktionsnamen nicht zulässig, obwohl Sie Leerzeichen und Unterstriche verwenden können.
  • Wenn Sie Ihren Code gut verzweigt und Prüfpunkte hinzugefügt haben, um die Antwort vom Server zu überprüfen, können Sie eine benutzerdefinierte Fehlerbehandlung verwenden, z. B. LR_PASS oder LR_FAIL. Andernfalls können Sie LR_AUTO verwenden und LoadRunner behandelt automatisch Serverfehler (HTTP 500, 400 usw.)
  • Stellen Sie beim Anwenden von Transaktionen sicher, dass keine think_time- Anweisung eingeklemmt ist. Andernfalls enthält Ihre Transaktion immer diesen Zeitraum.
  • Da LoadRunner eine konstante Zeichenfolge als Transaktionsname benötigt, besteht ein häufiges Problem beim Anwenden von Transaktionen darin, dass die Zeichenfolge nicht übereinstimmt. Wenn Sie beim Öffnen und Schließen einer Transaktion einen anderen Namen angeben, werden mindestens 2 Fehler angezeigt. Da die von Ihnen geöffnete Transaktion nie geschlossen wurde, gibt LoadRunner einen Fehler aus. Außerdem wurde die Transaktion, die Sie schließen möchten, nie geöffnet, was zu einem Fehler führte.
  • Können Sie Ihre Intelligenz nutzen und sich selbst antworten, welcher der oben genannten Fehler zuerst gemeldet wird? Machen Sie Ihren eigenen Fehler, um Ihre Antwort zu bestätigen. Wenn Sie richtig geantwortet haben, sind Sie auf dem richtigen Weg. Wenn Sie falsch geantwortet haben, müssen Sie sich konzentrieren.
  • Da LoadRunner sich automatisch um die Synchronisierung von Anforderungen und Antworten kümmert, müssen Sie sich beim Anwenden von Transaktionen keine Gedanken über die Antwort machen.

Denkzeit, Rendezvous-Punkte und Kommentare verstehen

Treffpunkte

Rendezvous-Punkte bedeutet „Treffpunkte“. Es ist nur eine Anweisungszeile, die LoadRunner anweist, Parallelität einzuführen. Sie fügen Rendezvous-Punkte in VUser-Skripte ein, um eine hohe Benutzerlast auf dem Server zu emulieren.

Rendezvous-Punkte weisen VUser an, während der Testausführung darauf zu warten, dass mehrere VUser einen bestimmten Punkt erreichen, damit sie gleichzeitig eine Aufgabe ausführen können. Um beispielsweise die Spitzenlast auf dem Bankserver zu emulieren, können Sie einen Rendezvous-Punkt einfügen, der 100 VUser anweist, gleichzeitig Bargeld auf ihre Konten einzuzahlen. Dies kann leicht mit Rendezvous erreicht werden.

Wenn die Rendezvous-Punkte nicht korrekt platziert sind, greift der VUser auf verschiedene Teile der Anwendung zu - auch für dasselbe Skript. Dies liegt daran, dass jeder VUser eine andere Antwortzeit erhält und daher nur wenige Benutzer zurückbleiben.

Syntax: lr_rendesvous ("Logischer Name");

Empfohlene Vorgehensweise:

  • Stellen Sie einem Rendezvous-Punkt "rdv_" voran, um die Lesbarkeit des Codes zu verbessern. zB "rdv_Login"
  • Entfernen Sie alle sofortigen Überlegungen zur Denkzeit
  • Anwenden von Rendezvous-Punkten in einer Skriptansicht (nach der Aufnahme)

Bemerkungen

Fügen Sie Kommentare hinzu, um eine Aktivität, einen Code oder eine Codezeile zu beschreiben. Kommentare helfen dabei, den Code für jeden verständlich zu machen, der in Zukunft darauf verweist. Sie enthalten Informationen zu bestimmten Vorgängen und trennen zwei Abschnitte zur Unterscheidung.

Sie können Kommentare hinzufügen

  • Während der Aufnahme (mit dem Werkzeug)
  • Nach der Aufnahme (direkt in Code schreiben)

Best Practice: Markieren Sie alle Kommentare oben in jeder Skriptdatei

Einfügen von Funktionen über das Menü

Während Sie einfache Codezeilen direkt schreiben können, benötigen Sie möglicherweise einen Hinweis, um eine Funktion abzurufen. Sie können auch die Steps Toolbox (vor Version 12 als Funktion einfügen bezeichnet) verwenden, um Funktionen direkt in Ihr Skript zu suchen und einzufügen.

Sie finden die Steps-Symbolleiste unter View àSteps Toolbox.

Dies öffnet ein Seitenfenster. Sehen Sie sich den Schnappschuss an:

Was ist Parametrierung?

Ein Parameter in VUGen ist ein Container, der einen aufgezeichneten Wert enthält, der für verschiedene Benutzer ersetzt wird.

Während der Ausführung des Skripts (in VUGen oder Controller) ersetzt der Wert aus einer externen Quelle (wie z. B. .txt, XML oder Datenbank) den vorherigen Wert des Parameters.

Die Parametrisierung ist beispielsweise nützlich, um dynamische (oder eindeutige) Werte an den Server zu senden. Ein Geschäftsprozess soll 10 Iterationen ausführen, aber jedes Mal einen eindeutigen Benutzernamen auswählen.

Es hilft auch bei der Stimulierung des realen Verhaltens des Subjektsystems. Schauen Sie sich das folgende Beispiel an:

Problembeispiele:

Der Geschäftsprozess funktioniert nur für das aktuelle Datum, das vom Server stammt, und kann daher nicht als fest codierte Anforderung übergeben werden.

Manchmal übergibt die Clientanwendung eine eindeutige ID an den Server (z. B. session_id), damit der Prozess fortgesetzt werden kann (auch für einen einzelnen Benutzer). In diesem Fall hilft die Parametrierung.

Häufig verwaltet die Clientanwendung einen Cache mit Daten, die zum und vom Server gesendet werden. Infolgedessen empfängt der Server kein echtes Benutzerverhalten (falls der Server je nach Suchkriterium einen anderen Algorithmus ausführt). Während das VUser-Skript erfolgreich ausgeführt wird, sind die gezeichneten Leistungsstatistiken nicht aussagekräftig. Die Verwendung unterschiedlicher Daten durch Parametrisierung hilft dabei, serverseitige Aktivitäten (Prozeduren usw.) zu emulieren und das System zu trainieren.

Ein Datum, das während der Aufzeichnung im VUser fest codiert ist, ist möglicherweise nicht mehr gültig, wenn dieses Datum verstrichen ist. Durch die Parametrisierung des Datums kann die VUser-Ausführung erfolgreich durchgeführt werden, indem das fest codierte Datum ersetzt wird. Solche Felder oder Anforderungen sind die richtigen Kandidaten für die Parametrisierung.

Klicken Sie hier, wenn das Video nicht zugänglich ist

Laufzeiteinstellungen und ihre Auswirkungen auf die VU-Simulation

Die Laufzeiteinstellungen sind genauso wichtig wie Ihr VUGen-Skript. Mit unterschiedlichen Konfigurationen können Sie unterschiedliche Testdesigns erhalten. Aus diesem Grund kann es zu nicht wiederholbaren Ergebnissen kommen, wenn die Laufzeiteinstellungen nicht konsistent sind. Lassen Sie uns jedes Attribut einzeln diskutieren.

Führen Sie Logic aus

Run Logic definiert, wie oft alle Aktionen außer vuser_init und vuser_end ausgeführt werden.

Wahrscheinlich wird dadurch klarer, warum LoadRunner vorschlägt, den gesamten Login-Code ausschließlich in vuser_init und den Logout-Teil in vuser_end zu belassen.

Wenn Sie mehrere Aktionen erstellt haben, z. B. Anmelden, Bildschirm öffnen, Miete berechnen, Geld einreichen, Guthaben prüfen und Abmelden, wird für jeden VUser das folgende Szenario ausgeführt:

Alle VUser melden sich an, führen einen offenen Bildschirm aus, berechnen die Miete, reichen Geld ein, prüfen den Kontostand - dann - wieder öffnen Sie den Bildschirm, berechnen Sie die Mieten usw. - und wiederholen Sie den Vorgang 10 Mal - gefolgt von der Abmeldung (einmal).

Dies ist eine leistungsstarke Einstellung, die es ermöglicht, sich eher wie ein echter Benutzer zu verhalten. Denken Sie daran, dass sich ein echter Benutzer nicht jedes Mal anmeldet und abmeldet - er wiederholt normalerweise dieselben Schritte.

Wie oft klicken Sie auf "Posteingang", wenn Sie Ihre E-Mails vor dem Abmelden abrufen?

Tempo

Das ist wichtig. Meistens können die Menschen den Unterschied zwischen Tempo und Denkzeit nicht verstehen. Der einzige Unterschied besteht darin, dass sich die Stimulation auf die Verzögerung zwischen den Iterationen bezieht, während die Denkzeit die Verzögerung zwischen zwei beliebigen Schritten ist.

Die empfohlene Einstellung hängt vom Testdesign ab. Wenn Sie jedoch eine aggressive Last wünschen, sollten Sie die Option "Sobald die vorherige Iteration endet" wählen.

Log

Ein Protokoll (wie allgemein verstanden) ist eine Buchhaltung aller Ereignisse, während Sie LoadRunner ausführen. Sie können das Protokoll aktivieren, um zu erfahren, was zwischen Ihrer Anwendung und Ihrem Server geschieht.

LoadRunner bietet einen leistungsstarken Protokollierungsmechanismus, der robust und eigenständig skalierbar ist. Sie können nur das „Standardprotokoll“ oder ein detailliertes, konfigurierbares erweitertes Protokoll führen oder es ganz deaktivieren.

Ein Standardprotokoll ist informativ und leicht verständlich. Es enthält genau die richtige Menge an Wissen, die Sie im Allgemeinen zur Fehlerbehebung bei Ihren VUser-Skripten benötigen.

Im Fall von Extended Log sind alle Standardprotokollinformationen eine Teilmenge. Darüber hinaus können Sie Parameter ersetzen. Dadurch wird die LoadRunner-Komponente angewiesen, vollständige Informationen zu allen Parametern (aus der Parametrisierung) einschließlich Anforderungen sowie Antwortdaten anzugeben.

Wenn Sie "Vom Server zurückgegebene Daten" angeben, wird Ihr Protokoll länger. Dies umfasst alle HTML-, Tag-, Ressourcen- und Nicht-Ressourcen-Informationen, die direkt im Protokoll enthalten sind. Die Option ist nur dann gut, wenn Sie ernsthafte Fehlerbehebung benötigen. Normalerweise ist die Protokolldatei dadurch sehr groß und nicht leicht verständlich.

Wie Sie inzwischen erraten haben könnten, ist Ihre Protokolldatei sehr umfangreich, wenn Sie sich für "Advance Trace" entscheiden. Sie müssen es versuchen. Sie werden feststellen, dass die von VUGen benötigte Zeit ebenfalls erheblich zugenommen hat, obwohl dies keinen Einfluss auf die von VUGen gemeldete Transaktionsantwortzeit hat. Dies sind jedoch sehr fortgeschrittene Informationen und möglicherweise nützlich, wenn Sie die betreffende Anwendung, die Client-Server-Kommunikation zwischen Ihrer Anwendung und der Hardware sowie Details auf Protokollebene verstehen. Normalerweise sind diese Informationen im Wesentlichen tot, da sie extreme Anstrengungen erfordern, um sie zu verstehen und Fehler zu beheben.

Tipps:

  • Unabhängig davon, wie viel Zeit VUGen benötigt, wenn das Protokoll aktiviert ist, hat dies keine Auswirkungen auf die Antwortzeit der Transaktion. HP nennt dieses Phänomen „State of the Art Technology“.
  • Deaktivieren Sie das Protokoll, wenn es nicht erforderlich ist.
  • Deaktivieren Sie das Protokoll, wenn Sie mit Ihren Skripten fertig sind. Das Einschließen von Skripten mit aktivierter Protokollierung führt dazu, dass der Controller langsamer ausgeführt wird und nervige Nachrichten meldet.
  • Durch Deaktivieren des Protokolls wird die Kapazität der maximalen Anzahl von Benutzern erhöht, die Sie mit LoadRunner simulieren können.
  • Erwägen Sie die Verwendung von "Nur Nachricht senden, wenn ein Fehler auftritt". Dadurch werden unnötige Informationsnachrichten stummgeschaltet und nur fehlerbezogene Nachrichten gemeldet.

Denk mal nach

Think Time ist einfach die Verzögerung zwischen zwei Schritten.

Think Time hilft dabei, das Benutzerverhalten zu replizieren, da kein wirklicher Benutzer eine Anwendung wie eine Maschine (VUGen) verwenden kann. VUGen generiert automatisch Denkzeiten. Sie haben immer noch die vollständige Kontrolle, um die Dauer der Denkzeit zu entfernen, zu multiplizieren oder zu schwanken.

Um mehr zu verstehen, kann ein Benutzer beispielsweise einen Bildschirm öffnen (dh eine Antwort, gefolgt von einer Anfrage) und dann den Benutzernamen und das Kennwort angeben, bevor er die Eingabetaste drückt. Die nächste Interaktion der Anwendung mit dem Server erfolgt, wenn er auf "Anmelden" klickt. Die Zeit, die ein Benutzer benötigt hat, um seinen Benutzernamen und sein Passwort einzugeben, ist Think Time in LoadRunner.

Wenn Sie eine aggressive Belastung der Anwendung simulieren möchten, sollten Sie die Denkzeit vollständig deaktivieren.

Um jedoch ein ähnliches Verhalten zu simulieren, können Sie "Random Think Time" verwenden und die Prozentsätze wie gewünscht festlegen.

Erwägen Sie, Limit Think Time auf einen legitimen Zeitraum zu beschränken. Normalerweise sind 30 Sekunden ziemlich gut genug.

Geschwindigkeitssimulation

Die Geschwindigkeitssimulation bezieht sich einfach auf die Bandbreitenkapazität für jeden Client-Computer.

Da wir Tausende von VUser über LoadRunner simulieren, ist es erstaunlich, wie einfach LoadRunner die Steuerung der Bandbreiten- / Netzwerkgeschwindigkeitssimulation gemacht hat.

Wenn Sie als Kunde über 128 Kbit / s auf Ihre Anwendung zugreifen, können Sie sie von hier aus steuern. Sie können ein „reales Verhalten“ simulieren, das Ihnen dabei helfen soll, die richtigen Leistungsstatistiken zu erhalten.

Die beste Empfehlung ist, die Option Maximale Bandbreite verwenden einzustellen. Dies hilft dabei, netzwerkbezogene Leistungsengpässe zu ignorieren und sich zuerst auf potenzielle Probleme in der Anwendung zu konzentrieren. Sie können den Test jederzeit mehrmals ausführen, um unter verschiedenen Umständen ein unterschiedliches Verhalten festzustellen.

Browser-Emulation

Die Benutzererfahrung hängt nicht vom Browser ab, den ein Endbenutzer verwendet. Dies geht eindeutig über den Rahmen von Leistungskennzahlen hinaus. Sie können jedoch auswählen, welchen Browser Sie emulieren möchten.

Können Sie sich selbst antworten, wann es für Sie wirklich wichtig ist, den richtigen Browser in dieser Konfiguration auszuwählen?

Sie verwenden diese Konfiguration, wenn es sich bei Ihrer Betreffanwendung um eine Webanwendung handelt, die unterschiedliche Antworten für unterschiedliche Browser zurückgibt. Zum Beispiel sehen Sie verschiedene Bilder und Inhalte für IE und Firefox usw.

Eine weitere wichtige Einstellung ist Browser-Cache simulieren. Wenn Sie die Antwortzeit bei aktiviertem Cache messen möchten, aktivieren Sie dieses Kontrollkästchen. Wenn Sie nach einer Worst-Case-Situation suchen, ist dies offensichtlich keine Überlegung.

Durch das Herunterladen von Nicht-HTML-Ressourcen kann LoadRunner CSS, JS und andere Rich Media herunterladen. Dies sollte überprüft bleiben. Wenn Sie dies jedoch aus Ihrem Leistungstestdesign entfernen möchten, können Sie dies deaktivieren.

Proxy

Es ist am besten, den Proxy vollständig aus Ihrer Testumgebung zu entfernen. Dadurch werden die Testergebnisse unzuverlässig. Es kann jedoch vorkommen, dass Situationen auftreten, in denen dies unvermeidlich ist. In einer solchen Situation erleichtert Ihnen LoadRunner die Proxy-Einstellungen.

Sie arbeiten (oder sollten arbeiten) ohne Proxy-Einstellung. Sie können es von Ihrem Standardbrowser erhalten. Vergessen Sie jedoch nicht zu überprüfen, welcher Browser auf Standard eingestellt ist und welche Proxy-Konfiguration für den Standardbrowser verwendet wird.

Wenn Sie einen Proxy verwenden und eine Authentifizierung (oder ein Skript) erforderlich ist, können Sie auf die Schaltfläche Authentifizieren klicken, um ein neues Fenster aufzurufen. Siehe folgenden Screenshot.

Verwenden Sie diesen Bildschirm, um den Benutzernamen und das Kennwort für die Authentifizierung auf dem Proxyserver anzugeben. Klicken Sie auf OK, um den Bildschirm zu schließen.

Herzliche Glückwünsche. Sie sind mit der Konfiguration Ihres VUGen-Skripts fertig. Vergessen Sie nicht, es für alle Ihre VUser-Skripte zu konfigurieren.