Korelace v LoadRunner s příkladem Web_Reg_Save_Param

Co je korelace?

Korelace, jak název napovídá, je mechanismus definování vztahu mezi dvěma proměnnými nebo entitami. Slovník jej definuje jako „statistický vztah mezi dvěma nebo více proměnnými tak, že systematické změny ve druhé doprovázejí systematické změny hodnoty jedné proměnné“.

Proč potřebujeme korelaci?

Pojďme pochopit souvislost s následujícím scénářem.

Zvažte, že nahráváte skript pomocí LoadRunner.

Komunikace klient-server

  1. Během záznamu klient odešle serveru požadavek na zahájení relace
  2. Server přijme požadavek a přidělí nové ID relace ABC
  3. Klient ukládá ID relace ABC do skriptu.
  4. Klient zahájí relaci s ID ABC a odešle požadavek na server, aby jí umožnil záznam
  5. Server rozpozná ID ABC a umožní klientovi zaznamenat skript

Korelace při nahrávání

  1. Nyní se podívejme na komunikaci klient-server během přehrávání
  2. Během přehrávání odešle klient serveru požadavek na zahájení relace
  3. Server přijme požadavek a přidělí nové ID relace XYZ
  4. Klient zahájí relaci s dříve zaznamenaným ID relace ABC a odešle požadavek na server, aby mu umožnil záznam
  5. Server není schopen identifikovat ID ABC, protože očekával ID XYZ, které přidělil, a relace se nezdařila.

Korelace při přehrávání

Potřebujeme řešení, které dokáže zachytit dynamickou hodnotu odeslanou za běhu a vrátit tuto hodnotu zpět na server. Takto bude vypadat komunikace klient-server s tímto řešením

  1. Během přehrávání odešle klient serveru požadavek na zahájení relace
  2. Server přijme požadavek a přidělí nové ID relace ZZZ
  3. Klient analyzuje toto nové ID relace ZZZ z požadavku.
  4. Klient odešle požadavek na zahájení relace s id ZZZ
  5. Server rozpozná ID ZZZ a umožní klientovi přehrát skript

Potřebujeme korelaci

Tohle není nic jiného než korelace.

klikněte zde pokud video není přístupné

V případě VUGen je korelace závazný vztah mezi odpovědí a jakýmkoli předchozím požadavkem.

Existují různé situace, kdy je požadavek založen na dříve přijaté odpovědi ze serveru, jako je ID relace, datum/čas serveru, který je načten ze serveru. Tyto hodnoty se liší pokaždé, když spustíte aplikaci nebo zaznamenáte skript. Je zřejmé, že pokud provedení skriptu závisí na hodnotě vrácené serverem, znamená to, že musíte najít mechanismus, kterým můžete „zachytit“ odpověď serveru a připojit se k těm požadavkům, které server očekává. To se obvykle nazývá korelace v LoadRunner.

Jednoduše řečeno, řešení pomocí korelace je:

  1. Zachycení výstupní hodnoty z kroku
  2. Použijte výše zachycenou hodnotu, která bude sloužit jako vstup pro všechny následující kroky

Korelace je ve VUGen/LoadRunner klasifikována do 2 kategorií:

  • Automatická korelace
  • Manuální korelace

Automatická korelace

LoadRunner poskytuje mechanismus pro snadné provádění korelace automatickým způsobem.

VUGen bude vyžadovat, abyste spustili zaznamenaný skript alespoň dvakrát, aby mohl interně porovnat různé hodnoty v odpovědi serveru.

Automatickou korelaci lze rozdělit do 3 kategorií:

  • Auto-Detect Correlation
  • Korelace na základě pravidel
  • Korelace všech prohlášení
Název pravidla Kdy použít
Automatická detekce korelace Detekujte a korelujte dynamická data pro aplikační servery podporované HP LoadRunner
Na základě pravidel Používá se při práci s nepodporovaným aplikačním serverem, pro který je znám kontext.
Korelovat vše Pomáhá slepým způsobem korelovat všechna dynamická data.

Ačkoli se automatická korelace zdá jednodušší, může být náchylná k chybám a funguje maximálně v 5 % případů. Vždy je vhodné použít manuální korelaci.

Chcete-li nakonfigurovat automatickou korelaci v době nahrávání, proveďte po nahrání skriptu níže uvedenou konfiguraci v Nastavení doby nahrávání.

Klikněte na Záznam => Možnosti nahrávání (nebo klikněte na Ctrl + F7),

Automatická korelace

Otevře se okno níže:

Automatická korelace

Klikněte na Correlation =>Configuration – otevře se okno níže.

Automatická korelace

Zde je potřeba označit jako zaškrtnuté vůči všem aplikacím (ASPNET) atd., které jsou použity ve vaší předmětové aplikaci. Na pravé straně můžete vidět pravidla, která budou detekovat možné kandidáty na korelaci, např. _VIEWSTATE. Můžete také přidat další aplikace nebo vlastní pravidla kliknutím na tlačítko Nové pravidlo.

Můžete také kliknout na PRAVIDLA, uvidíte níže:

Automatická korelace

Aby automatická korelace fungovala, musíte zajistit, aby byla kontrola pravidel označena jako zaškrtnutá. Pokud kliknete na automaticky nalezené korelační hodnoty, VUGen vás nevyzve k výběru, jakmile bude nalezen korelační kandidát, místo toho je pouze koreluje.

API použitému pro korelaci pochopíme později. Místo porovnávání textu je však vhodné použít porovnání HTML.

Jakmile vyberete jakákoli pravidla, kliknutím na tlačítko OK zavřete okna.

Klikněte na Automatická korelacez menu a VUGen přegeneruje skript (bez nutnosti nahrávání) s novými konfiguracemi. VUGen automaticky přidá požadovaný kus kódu pro zpracování korelace. Na ukázku se podíváme podrobněji v Manuální korelaci.

Upozorňujeme, že pokud provedete korelaci ručně nebo použijete automatickou korelaci, bude část kódu obsahovat přesně stejnou syntaxi a funkci.

Kroky pro automatickou korelaci skriptu:

  1. Nahrajte scénář
  2. Přehrát skript
  3. Určete hodnoty, které mají být korelovány
  4. Vyberte hodnoty a klikněte na tlačítko automatické korelace
  5. Ověřte skript opětovným spuštěním. Úspěšný běh znamená úspěšnou korelaci.

Tip:

  • Korelace pomáhá spouštět skript s různými hodnotami
  • Korelace také snižuje velikost vašeho skriptu

Manuální korelace

Manuální korelace spočívá v zápisu kódu přímo do vašeho skriptu tak, aby vyhovoval neustále se měnícím hodnotám. Můžeme to rozdělit do následujících kroků:

  1. Určete hodnotu, kterou chcete zachytit
  2. Najít pravou a levou hranici textu hodnoty k zachycení (WEB)
  3. Zjistěte, který výskyt hranic textu by měl být použit
  4. Přidejte do skriptu funkci web_reg_save_param nad část kódu, která požaduje, aby byla stránka s hodnotou zachycena
  5. Přidejte do funkce název parametru, levou hranici, pravou hranici a výskyt
  6. Parametrizujte dynamickou hodnotu ve skriptu pokaždé, když k ní dojde
  7. Ověřte správné provedení
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);

Manuální korelaci lze provést pomocí VUser Comparison. Kroky korelační metody VUser Comparison lze rozdělit následovně:

  1. Identifikujte dynamické hodnoty, které je třeba korelovat
  2. Odpověď Najít servery obsahující hodnotu Dynamic
  3. Zachyťte dynamickou hodnotu do parametru
  4. Nahraďte každý výskyt dynamické hodnoty parametrem
  5. Ověřte změny

Pochopení funkce Web_reg_save_param

VUGen poskytuje několik funkcí nebo rozhraní API pro korelaci kandidátů, včetně:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Zatímco je zde uveden stručný úvod, pro podrobné pochopení funkcí a jejich parametrů otevřete VUGen, zapište funkci (nebo použijte Steps Toolbox), přesuňte kurzor na funkci a klikněte na F1 – seznamte se s nápovědou VUGen a vytvořte zvyk. Při práci v branži se s tím budete muset hodně potýkat.

Zde jsou podrobnosti o funkci:

web_reg_save_param(název parametru, levá hranice, pravá hranice)

Seznam atributů

Konvertovat: Možné hodnoty jsou:

HTML_TO_URL: převod dat kódovaných HTML na datový formát kódovaný URL

HTML_TO_TEXT: převod dat kódovaných HTML do formátu prostého textu; tento atribut je volitelný.

Ignorovat přesměrování: Pokud je zadáno „Ignorovat přesměrování=Ano“ a odpovědí serveru je informace o přesměrování (stavový kód HTTP 300-303, 307), odpověď se neprohledává. Místo toho je po obdržení odpovědi přesměrování odeslán požadavek GET do přesměrovaného umístění a vyhledávání je provedeno na odpovědi z tohoto umístění.

Tento atribut je volitelný. Výchozí hodnota je „Ignorovat přesměrování=Ne“.

LB: Levá hranice parametru nebo dynamických dat. Pokud nezadáte hodnotu LB, použije se jako hranice všechny znaky od začátku dat. Hraniční parametry rozlišují velká a malá písmena. Chcete-li dále upravit hledaný text, použijte jeden nebo více textových příznaků. Tento atribut je povinný. Viz část Argumenty hranic.

NENALEZENO: Možnost zpracování, když není nalezena hranice a je vygenerován prázdný řetězec.

„Nenalezeno=chyba“, výchozí hodnota, způsobí, že pokud není hranice nalezena, vyvolá se chyba.

„Nenalezeno=varování“ („Nenalezeno=prázdné“ v dřívějších verzích) nezobrazuje chybu. Pokud není hranice nalezena, nastaví počet parametrů na 0 a pokračuje ve vykonávání skriptu. Možnost „varování“ je ideální, pokud chcete zjistit, zda byl řetězec nalezen, ale nechcete, aby skript selhal.

Pozor: Pokud je pro skript povolena možnost Pokračovat při chybě, pak i když je NOTFOUND nastaveno na „chyba“, skript pokračuje, když není hranice nalezena, ale do souboru rozšířeného protokolu se zapíše chybová zpráva.

Tento atribut je také volitelný.

ORD: Označuje pořadovou pozici nebo výskyt shody. Výchozí instance je 1. Pokud zadáte „All“, uloží se hodnoty parametrů do pole. Tento atribut je volitelný.

Poznámka: Použití instance místo ORD je podporováno z důvodu zpětné kompatibility, ale je zastaralé.

RB: Pravá hranice parametru nebo dynamických dat. Pokud nezadáte hodnotu RB, použije jako hranici všechny znaky až do konce dat. Hraniční parametry rozlišují velká a malá písmena. Chcete-li dále upravit hledaný text, použijte jeden nebo více textových příznaků. Tento atribut je povinný. Viz část Argumenty hranic.

RelFrameID: Úroveň hierarchie stránky HTML vzhledem k požadované adrese URL. Možné hodnoty jsou ALL nebo číslo. Kliknutím na Atribut RelFrameID zobrazíte podrobný popis. Tento atribut je volitelný.

Poznámka: RelFrameID není podporováno ve skriptech na úrovni GUI.

SaveLen: Délka dílčího řetězce nalezené hodnoty, od zadaného offsetu, k uložení do parametru. Tento atribut je volitelný. Výchozí hodnota je -1, což znamená, že se má uložit až na konec řetězce.

UložitOffset: Posun dílčího řetězce nalezené hodnoty, který se má uložit do parametru. Hodnota offsetu musí být nezáporná. Výchozí hodnota je 0. Tento atribut je volitelný.

Vyhledávání: Rozsah hledání - kde hledat oddělená data. Možné hodnoty jsou Headers (Hledat pouze záhlaví), Body (hledat pouze data těla, nikoli záhlaví), Žádný zdroj (hledat pouze tělo HTML, s výjimkou všech záhlaví a zdrojů), nebo VŠECHNO (hledat tělo, záhlaví a zdroje). Výchozí hodnota je ALL. Tento atribut je volitelný, ale obecně preferovaný.