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
- Wรคhrend der Aufnahme sendet der Client eine Anfrage an den Server, um eine Sitzung zu starten
- Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID ABC zu
- Der Client speichert die Sitzungs-ID ABC im Skript.
- Der Client startet die Sitzung mit der ID ABC und sendet eine Anfrage an einen Server, um die Aufzeichnung zu ermรถglichen
- Der Server erkennt die ID ABC und ermรถglicht dem Client die Aufzeichnung des Skripts
- Schauen wir uns nun die Client-Server-Kommunikation wรคhrend der Wiedergabe an
- Wรคhrend der Wiedergabe sendet ein Client eine Anfrage an den Server, um eine Sitzung zu starten
- Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID XYZ zu
- 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
- Ein Server kann die ID ABC nicht identifizieren, da er die von ihm zugewiesene ID XYZ erwartet hat und die Sitzung fehlschlรคgt.
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
- Wรคhrend der Wiedergabe sendet ein Client eine Anfrage an den Server, um eine Sitzung zu starten
- Ein Server empfรคngt die Anfrage und weist eine neue Sitzungs-ID ZZZ zu
- Ein Client analysiert diese neue Sitzungs-ID ZZZ aus der Anfrage.
- Ein Client sendet eine Anfrage zum Starten einer Sitzung mit der ID ZZZ
- Ein Server erkennt die ID ZZZ und ermรถglicht dem Client die Wiedergabe des Skripts
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:
- Erfassen Sie den Ausgabewert eines Schritts
- 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).
Das folgende Fenster รถffnet sich:
Klicken Sie auf Korrelation =>Konfiguration โ das folgende Fenster wird geรถffnet.
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:
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 aus 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:
- Nehmen Sie ein Skript auf
- Skript wiederholen
- Identifizieren Sie die zu korrelierenden Werte
- Wรคhlen Sie die Werte aus und klicken Sie auf die Schaltflรคche โAutomatisch korrelierenโ.
- ร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:
- Bestimmen Sie den zu erfassenden Wert
- Finden Sie die rechten und linken Textgrenzen des zu erfassenden Werts (WEB).
- Finden Sie heraus, welches Vorkommen der Textgrenzen verwendet werden soll
- Fรผgen Sie dem Skript รผber dem Codeteil, der die Seite mit dem zu erfassenden Wert anfordert, eine web_reg_save_param-Funktion hinzu
- Fรผgen Sie der Funktion einen Parameternamen, eine linke Grenze, eine rechte Grenze und ein Vorkommen hinzu
- Parametrisieren Sie den dynamischen Wert im Skript jedes Mal, wenn er auftritt
- ร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:
- Identifizieren Sie dynamische Werte, die korreliert werden mรผssen
- Suchen Sie nach einer Antwort des Servers, die den dynamischen Wert enthรคlt
- Erfassen Sie den dynamischen Wert in einem Parameter
- Ersetzen Sie jedes Vorkommen des Dynamic-Werts durch den Parameter
- ร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.







