Korrelation in JMeter

Inhaltsübersicht
Was ist Korrelation und warum ist sie notwendig?
Die Korrelation ist der wichtigste Aspekt der Skripterstellung. Dabei werden in der Regel dynamische Daten aus früheren Anfragen/Aufrufen abgerufen und an nachfolgende Anfragen gesendet.
Nehmen wir ein Beispiel, um genau zu sehen, warum wir eine Korrelation brauchen. Nehmen wir an, dass wir ein Szenario erlebt haben, in dem:
- ->Benutzer gibt Anmeldedaten ein und klickt auf OK
- ->Startseite öffnet sich und der Benutzer führt weitere Aktionen aus
Wenn wir dieses Szenario nun einfach wiederholen, wird der Test sogar für einen einzelnen Benutzer fehlschlagen. Dies ist auf den verwendeten Authentifizierungsmechanismus zurückzuführen. Wenn wir uns bei einer Website anmelden, werden Sitzungsvariablen dynamisch erstellt. Diese Sitzungsvariablen werden an andere Anfragen weitergegeben und helfen bei der Verifizierung und Authentifizierung der durchgeführten Aktionen. Es ist also nicht möglich, die Anfragen, die diese Variablen enthalten, einfach aufzuzeichnen und wiederzugeben. In diesem Fall müssen wir Webanfragen mit dynamischen Variablen verknüpfen. Und für die Korrelation müssen wir den „Regular Expression Extractor“ verwenden, der reguläre Ausdrücke verwendet. Bevor wir uns also näher mit der Korrelation befassen, sollten wir zunächst die „regulären Ausdrücke“ verstehen.
Ein kurzer Einblick in reguläre Ausdrücke
Reguläre Ausdrücke werden verwendet, um auf der Grundlage eines Suchmusters Daten aus einer Zeichenkette abzurufen. Um einen beliebigen Wert (in der Regel einen dynamisch erstellten Wert) aus einer String-Antwort zu erhalten, definieren wir einen linken Begrenzungsrahmen für die Variable, dann einige Platzhalter und schließlich einen rechten Begrenzungsrahmen:
(Linksbündig)(Platzhalterzeichen)(Rechtsbündig)z.B. wenn wir eine Textantwort haben wie-…__EVENTVALIDATION „value=“weriudflsdfspdfusdjhsdihffgdfgpdfjsdjfpj“ />…
Und wir müssen den Wert der Variablen Event Validation mit regulären Ausdrücken ermitteln; ein regulärer Ausdruck dafür wäre:
__EVENTVALIDATION" value="(.+?)" /> where, Left Bound = __EVENTVALIDATION" value=" Wildcard characters = (.+?) Right Bound = " />
Wenn Sie sich nicht weiter mit regulären Ausdrücken befassen wollen, reichen in den meisten Fällen Platzhalter (.+?) aus. Weitere Informationen über reguläre Ausdrücke und die Bedeutung der einzelnen Platzhalterzeichen finden Sie auf der Info-Website zu regulären Ausdrücken.
Extraktor für reguläre Ausdrücke
Kehren wir zur JMeter-Anwendung zurück und betrachten wir ein Beispiel, bei dem zwei Vorgänge vorliegen:
- Der Benutzer ruft eine Webseite auf
- Der Benutzer gibt die Details ein und klickt auf OK
Ruft jetzt „User launch website“ auf (Starten der Website des Benutzers) erstellt eine dynamische Variable – „eventVvalidation“. (Ereignisüberprüfung), die wir auf der Registerkarte Antwortdaten überprüfen können (Antwortdetails) im Hörer (Hörer) „View Result Tree“ für diesen Aufruf. Der Wert dieser Variablen wird dann an nachfolgende Aufrufe im Zusammenhang mit „User fill details and click on OK button“ als Http-Post-Parameter übergeben.
Schritte zur Korrelation von Ereignisprüfwerten:
- Führen Sie das Skript mit den beiden oben genannten Vorgängen aus.
- Gehen Sie auf die Registerkarte Antwort (Textmodus) im Listener „View Result Tree“ der Operation „User launch website“. In der folgenden Abbildung sehen wir, dass der zweite Vorgang „Benutzer gibt die Daten ein und klickt auf OK“ rot ist, weil er noch nicht korreliert ist.

- Erstellen Sie einen regulären Ausdruck, um den Wert der Validierungsvariablen Ereignis zu extrahieren. Wie oben erwähnt, wird die R.E. für diesen Zweck:
__EVENTVALIDATION“ value=“(.+?)“ />
- Navigieren Sie zu der http-Anfrage innerhalb des Transaktionscontrollers „User Launch Website“ -> Hinzufügen -> Post Processor -> Regular Expression Extractor.

Hinzufügen des Steuerelements „Extraktor für reguläre Ausdrücke“.

R.E. Extraktor Parameter gefüllt
- Der Name der verschachtelten Referenz ist der Name der erstellten Variablen, die den Wert der Ereignisvalidierung erfasst, der von der HTTP-Anfrage als Teil der Operation „User launch website“ erzeugt wird.
- Übergeben Sie nun diese Variable an die nachfolgende http-Anfrage als Post-Anfrage in der Operation „User fill details and click on OK button“ – überschreibt den bereits vorhandenen, fest kodierten Wert der Event Validation-Variable.

Anfrage ohne Korrelation (Hardcodierte Werte)

Anfrage(Antrag) mit Korrelation (dynamische Werte)
- Führen Sie den Testplan erneut aus. Alles grün! Das ist alles.