Korrelation in LoadRunner mit Web_Reg_Save_Param-Beispiel

Was ist Korrelation?

Korrelation ist, wie der Name schon sagt, ein Mechanismus zur Definition einer Beziehung zwischen zwei Variablen oder Entitรคten. Ein Wรถrterbuch definiert es als โ€žstatistische Beziehung zwischen zwei oder mehr Variablen, so dass systematische ร„nderungen in der anderen mit systematischen ร„nderungen im Wert einer Variablen einhergehenโ€œ.

Warum brauchen wir Korrelation?

Lassen Sie uns den Zusammenhang anhand des folgenden Szenarios verstehen.

Stellen Sie sich vor, Sie zeichnen ein Skript mit LoadRunner auf.

Client-Server-Kommunikation

  1. Wรคhrend der Aufnahme sendet der Client eine Anfrage an den Server, um eine Sitzung zu starten
  2. Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID ABC zu
  3. Der Client speichert die Sitzungs-ID ABC im Skript.
  4. Der Client startet die Sitzung mit der ID ABC und sendet eine Anfrage an einen Server, um die Aufzeichnung zu ermรถglichen
  5. Der Server erkennt die ID ABC und ermรถglicht dem Client die Aufzeichnung des Skripts

Korrelation wรคhrend der Aufnahme

  1. Schauen wir uns nun die Client-Server-Kommunikation wรคhrend der Wiedergabe an
  2. Wรคhrend der Wiedergabe sendet ein Client eine Anfrage an den Server, um eine Sitzung zu starten
  3. Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID XYZ zu
  4. Ein Client startet die Sitzung mit der zuvor aufgezeichneten Sitzungs-ID ABC und sendet eine Anfrage an den Server, um die Aufzeichnung zu ermรถglichen
  5. Ein Server kann die ID ABC nicht identifizieren, da er die von ihm zugewiesene ID XYZ erwartet hat und die Sitzung fehlschlรคgt.

Korrelation wรคhrend der Wiedergabe

Wir benรถtigen eine Lรถsung, die den zur Laufzeit gesendeten dynamischen Wert erfasst, analysiert und diesen Wert an den Server zurรผckgibt. So sieht die Client-Server-Kommunikation mit dieser Lรถsung aus

  1. Wรคhrend der Wiedergabe sendet ein Client eine Anfrage an den Server, um eine Sitzung zu starten
  2. Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID ZZZ zu
  3. Ein Client analysiert diese neue Sitzungs-ID ZZZ aus der Anfrage.
  4. Ein Client sendet eine Anfrage zum Starten einer Sitzung mit der ID ZZZ
  5. Ein Server erkennt die ID ZZZ und ermรถglicht dem Client die Wiedergabe des Skripts

Wir brauchen Korrelation

Das ist nichts anderes als Korrelation.

Klicken Sie auf werden auf dieser Seite erlรคutert wenn das Video nicht zugรคnglich ist

Im Fall von VUGen ist Korrelation eine verbindliche Beziehung zwischen einer Antwort und einer vorherigen Anfrage.

Es gibt verschiedene Situationen, in denen eine Anfrage auf einer zuvor vom Server empfangenen Antwort basiert, z. B. einer Sitzungs-ID, Serverdatum/-uhrzeit, die vom Server abgerufen wird. Diese Werte sind jedes Mal unterschiedlich, wenn Sie eine Anwendung ausfรผhren oder ein Skript aufzeichnen. Wenn die Ausfรผhrung eines Skripts von einem vom Server zurรผckgegebenen Wert abhรคngt, bedeutet dies natรผrlich, dass Sie einen Mechanismus finden mรผssen, mit dem Sie die Serverantwort โ€žabfangenโ€œ und an die vom Server erwarteten Anforderungen anhรคngen kรถnnen. Dies wird in LoadRunner normalerweise als Korrelation bezeichnet.

In einfachen Worten lautet die Lรถsung mithilfe der Korrelation:

  1. Erfassen Sie den Ausgabewert eines Schritts
  2. Verwenden Sie den oben erfassten Wert als Eingabe fรผr alle nachfolgenden Schritte

Die Korrelation wird in VUGen/LoadRunner in zwei Kategorien eingeteilt:

  • Automatische Korrelation
  • Manuelle Korrelation

Automatische Korrelation

LoadRunner bietet einen Mechanismus zur einfachen automatischen Durchfรผhrung einer Korrelation.

Fรผr VUGen mรผssen Sie ein aufgezeichnetes Skript mindestens zweimal ausfรผhren, damit die unterschiedlichen Werte in der Serverantwort intern verglichen werden kรถnnen.

Die automatische Korrelation kann in drei Kategorien eingeteilt werden:

  • Korrelation automatisch erkennen
  • Regelbasierte Korrelation
  • Alle Aussagen korrelieren
Name der Regel Wann zu verwenden
Korrelation automatisch erkennen Erkennen und korrelieren Sie dynamische Daten fรผr Anwendungsserver, die von HP LoadRunner unterstรผtzt werden
Regelbasiert Wird verwendet, wenn mit einem nicht unterstรผtzten Anwendungsserver gearbeitet wird, dessen Kontext bekannt ist.
Alles korrelieren Hilft, alle dynamischen Daten blind zu korrelieren.

Obwohl die automatische Korrelation einfacher zu sein scheint, kann sie fehleranfรคllig sein und funktioniert in nicht mehr als 5 % der Fรคlle. Es empfiehlt sich immer, die manuelle Korrelation zu verwenden.

Um die automatische Korrelation zum Zeitpunkt der Aufzeichnung zu konfigurieren, fรผhren Sie die folgende Konfiguration in der Aufzeichnungszeiteinstellung durch, nachdem ein Skript aufgezeichnet wurde.

Klicken Sie auf Aufnahme =>Aufnahmeoptionen (oder klicken Sie auf Strg + F7).

Automatische Korrelation

Das folgende Fenster รถffnet sich:

Automatische Korrelation

Klicken Sie auf Korrelation =>Konfiguration โ€“ das folgende Fenster wird geรถffnet.

Automatische Korrelation

Hier mรผssen Sie alle Anwendungen (ASPNET) usw., die in Ihrer Fachanwendung verwendet werden, als geprรผft markieren. Auf der rechten Seite sehen Sie die Regeln, die mรถgliche Kandidaten fรผr eine Korrelation erkennen, z. B. _VIEWSTATE. Sie kรถnnen auch weitere Anwendungen oder benutzerdefinierte Regeln hinzufรผgen, indem Sie auf die Schaltflรคche โ€žNeue Regelโ€œ klicken.

Sie kรถnnen auch auf REGELN klicken. Sie sehen Folgendes:

Automatische Korrelation

Damit die automatische Korrelation funktioniert, mรผssen Sie sicherstellen, dass der Regelscan als aktiviert markiert ist. Wenn Sie auf โ€žGefundene Werte automatisch korrelierenโ€œ klicken, werden Sie von VUGen nicht zur Auswahl aufgefordert, sobald ein Korrelationskandidat gefunden wurde, sondern die Werte werden lediglich korreliert.

Wir werden die fรผr die Korrelation verwendete API spรคter verstehen. Es ist jedoch ratsam, einen HTML-Vergleich anstelle eines Textvergleichs zu verwenden.

Nachdem Sie Regeln ausgewรคhlt haben, klicken Sie auf die Schaltflรคche โ€žOKโ€œ, um das Fenster zu schlieรŸen.

Klicken Sie auf Automatische Korrelationaus dem Menรผ und VUGen generiert das Skript neu (ohne es aufzeichnen zu mรผssen) mit neuen Konfigurationen. VUGen fรผgt automatisch einen erforderlichen Codeabschnitt hinzu, um die Korrelation zu handhaben. Wir werden uns das Beispiel im Abschnitt โ€žManuelle Korrelationโ€œ genauer ansehen.

Bitte beachten Sie, dass der Code genau dieselbe Syntax und Funktion enthรคlt, wenn Sie die Korrelation manuell durchfรผhren oder die automatische Korrelation verwenden.

Schritte zum automatischen Korrelieren eines Skripts:

  1. Nehmen Sie ein Skript auf
  2. Skript wiederholen
  3. Identifizieren Sie die zu korrelierenden Werte
  4. Wรคhlen Sie die Werte aus und klicken Sie auf die Schaltflรคche โ€žAutomatisch korrelierenโ€œ.
  5. รœberprรผfen Sie das Skript, indem Sie es erneut ausfรผhren. Ein erfolgreicher Lauf bedeutet eine erfolgreiche Korrelation.

TIPP:

  • Mithilfe der Korrelation kรถnnen Sie Ihr Skript mit unterschiedlichen Werten ausfรผhren
  • Durch die Korrelation wird auch die GrรถรŸe Ihres Skripts reduziert

Manuelle Korrelation

Bei der manuellen Korrelation geht es darum, Code direkt in Ihr Skript zu schreiben, um sich stรคndig รคndernden Werten gerecht zu werden. Wir kรถnnen es in die folgenden Schritte unterteilen:

  1. Bestimmen Sie den zu erfassenden Wert
  2. Finden Sie die rechten und linken Textgrenzen des zu erfassenden Werts (WEB).
  3. Finden Sie heraus, welches Vorkommen der Textgrenzen verwendet werden soll
  4. Fรผgen Sie dem Skript รผber dem Codeteil, der die Seite mit dem zu erfassenden Wert anfordert, eine web_reg_save_param-Funktion hinzu
  5. Fรผgen Sie der Funktion einen Parameternamen, eine linke Grenze, eine rechte Grenze und ein Vorkommen hinzu
  6. Parametrisieren Sie den dynamischen Wert im Skript jedes Mal, wenn er auftritt
  7. รœberprรผfen Sie die korrekte Ausfรผhrung
web_reg_save_param (" OracleAppJSESSIONID3",
	"LB/IC=JSESSIONID=",
	"RB/IC=;",
	"Ord=l",
	"Search=headers",
	"RelFrameId=l",
	LAST);

web_reg_save_param("Siebel_Analytic_ViewState2",
	"LB/IC=ViewState\" value=\"",
	"RB/IC=\"",
	"Ord=1",
	"Search=Body",
	"RelFrameId=l",
	LAST);

Eine manuelle Korrelation kann durch den VUser-Vergleich erfolgen. Die Schritte in der VUser-Vergleichsmethode der Korrelation kรถnnen wie folgt aufgeteilt werden:

  1. Identifizieren Sie dynamische Werte, die korreliert werden mรผssen
  2. Suchen Sie nach einer Antwort des Servers, die den dynamischen Wert enthรคlt
  3. Erfassen Sie den dynamischen Wert in einem Parameter
  4. Ersetzen Sie jedes Vorkommen des Dynamic-Werts durch den Parameter
  5. ร„nderungen รผberprรผfen

Grundlegendes zur Web_reg_save_param-Funktion

VUGen bietet mehrere Funktionen oder APIs zur Korrelation von Kandidaten, darunter:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Hier wird eine kurze Einfรผhrung gegeben. Um Funktionen und ihre Parameter im Detail zu verstehen, รถffnen Sie VUGen, schreiben Sie die Funktion (oder verwenden Sie die Steps Toolbox), bewegen Sie den Cursor auf die Funktion und klicken Sie auf F1. Machen Sie sich mit der VUGen-Hilfe vertraut und gewรถhnen Sie sich daran. Sie werden in der Branche hรคufig damit zu tun haben.

Hier sind die Funktionsdetails:

web_reg_save_param(Parametername, linke Grenze, rechte Grenze)

Liste der Attribute

Konvertieren: Die mรถglichen Werte sind:

HTML_TO_URL: HTML-codierte Daten in ein URL-kodiertes Datenformat

HTML_TO_TEXT: HTML-codierte Daten in das Nur-Text-Format konvertieren; Dieses Attribut ist optional.

Weiterleitungen ignorieren: Wenn โ€žUmleitungen ignorieren=Jaโ€œ angegeben ist und die Serverantwort Umleitungsinformationen enthรคlt (HTTP-Statuscode 300-303, 307), wird die Antwort nicht durchsucht. Stattdessen wird nach Erhalt einer Umleitungsantwort die GET-Anfrage an den umgeleiteten Standort gesendet und die Suche wird anhand der Antwort von diesem Standort durchgefรผhrt.

Dieses Attribut ist optional. Die Standardeinstellung ist โ€žUmleitungen ignorieren=Neinโ€œ.

PFUND: Die linke Grenze des Parameters oder der dynamischen Daten. Wenn Sie keinen LB-Wert angeben, werden alle Zeichen vom Anfang der Daten als Grenze verwendet. Bei Grenzparametern wird die GroรŸ-/Kleinschreibung beachtet. Um den Suchtext weiter anzupassen, verwenden Sie ein oder mehrere Textflags. Dieses Attribut ist erforderlich. Weitere Informationen finden Sie im Abschnitt โ€žGrenzargumenteโ€œ.

NICHT GEFUNDEN: Die Behandlungsoption, wenn eine Grenze nicht gefunden wird und eine leere Zeichenfolge generiert wird.

โ€žNotfound=errorโ€œ, der Standardwert, fรผhrt dazu, dass ein Fehler ausgelรถst wird, wenn eine Grenze nicht gefunden wird.

โ€žNicht gefunden=Warnungโ€œ (โ€žNicht gefunden=leerโ€œ in frรผheren Versionen) gibt keinen Fehler aus. Wenn die Grenze nicht gefunden wird, wird die Parameteranzahl auf 0 gesetzt und die Ausfรผhrung des Skripts fortgesetzt. Die Option โ€žWarnungโ€œ ist ideal, wenn Sie sehen mรถchten, ob die Zeichenfolge gefunden wurde, Sie aber nicht mรถchten, dass das Skript fehlschlรคgt.

Hinweis: Wenn โ€žBei Fehler fortfahrenโ€œ fรผr das Skript aktiviert ist, wird das Skript auch dann fortgesetzt, wenn NOTFOUND auf โ€žFehlerโ€œ gesetzt ist, wenn die Grenze nicht gefunden wird, es wird jedoch eine Fehlermeldung in die erweiterte Protokolldatei geschrieben.

Auch dieses Attribut ist optional.

ORD: Gibt die Ordnungsposition oder Instanz der รœbereinstimmung an. Die Standardinstanz ist 1. Wenn Sie โ€žAlleโ€œ angeben, werden die Parameterwerte in einem Array gespeichert. Dieses Attribut ist optional.

Hinweis: Die Verwendung von Instance anstelle von ORD wird aus Grรผnden der Abwรคrtskompatibilitรคt unterstรผtzt, ist jedoch veraltet.

RB: Die rechte Grenze des Parameters oder der dynamischen Daten. Wenn Sie keinen RB-Wert angeben, werden alle Zeichen bis zum Ende der Daten als Grenze verwendet. Bei Grenzparametern wird die GroรŸ-/Kleinschreibung beachtet. Um den Suchtext weiter anzupassen, verwenden Sie ein oder mehrere Textflags. Dieses Attribut ist erforderlich. Weitere Informationen finden Sie im Abschnitt โ€žGrenzargumenteโ€œ.

RelFrameIDDie Hierarchieebene der HTML-Seite relativ zur angeforderten URLDie mรถglichen Werte sind โ€žALLEโ€œ oder eine Zahl. Klicken Sie auf das Attribut โ€žRelFrameIDโ€œ, um eine detaillierte Beschreibung zu erhalten. Dieses Attribut ist optional.

Hinweis: RelFrameID wird in Skripten auf GUI-Ebene nicht unterstรผtzt.

SaveLen: Die Lรคnge einer Teilzeichenfolge des gefundenen Werts ab dem angegebenen Offset, die im Parameter gespeichert werden soll. Dieses Attribut ist optional. Der Standardwert ist -1, was bedeutet, dass bis zum Ende der Zeichenfolge gespeichert werden soll.

SaveOffset: Der Offset einer Teilzeichenfolge des gefundenen Werts, der im Parameter gespeichert werden soll. Der Offsetwert darf nicht negativ sein. Der Standardwert ist 0. Dieses Attribut ist optional.

Suche: Der Suchbereich โ€“ wo nach den durch Trennzeichen getrennten Daten gesucht werden soll. Die mรถglichen Werte sind โ€žHeaderโ€œ (nur die Header durchsuchen), โ€žBodyโ€œ (nur die Body-Daten durchsuchen, keine Header), โ€žKeine Ressourceโ€œ (nur den HTML-Body durchsuchen, alle Header und Ressourcen ausschlieรŸen) oder ALLER (Suchtext, Header und Ressourcen). Der Standardwert ist ALLE. Dieses Attribut ist optional, wird aber im Allgemeinen bevorzugt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: