Korelace v LoadRunneru s příkladem web_reg_save_param
⚡ Chytré shrnutí
Korelace v LoadRunneru zachycuje dynamickou hodnotu serveru, například ID relace, a vrací ji zpět do pozdějších požadavků, takže zaznamenaný skript VuGen se úspěšně přehraje, místo aby selhal na zastaralých datech.
Co je korelace?
Korelace, jak název napovídá, je mechanismus definování vztahu mezi dvěma proměnnými nebo entitami. Slovník ji definuje jako „statistický vztah mezi dvěma nebo více proměnnými takový, že systematické změny v druhé proměnné doprovázejí systematické změny hodnoty jedné proměnné“.
Poznámka ke značce: tento nástroj byl dodáván jako HP a poté Micro Focus LoadRunner, a je nyní OpenText Profesionální výkonnostní inženýrstvíKaždá níže uvedená korelační funkce zůstává nezměněna a dodavatel hláskuje generátor skriptů. VuGen.
Proč potřebujeme korelaci?
Pojďme si vysvětlit souvislost s následujícím scénářem.
Představte si, že nahráváte skript pomocí LoadRunner.
Komunikace klient-server během nahrávání probíhá následovně a diagram ji shrnuje:
- Během záznamu klient odešle serveru požadavek na zahájení relace.
- Server přijme požadavek a přidělí nové ID relace ABC
- Klient ukládá ID relace ABC do skriptu.
- Klient zahájí relaci s ID ABC a odešle serveru požadavek na povolení nahrávání.
- Server rozpozná ID ABC a umožní klientovi zaznamenat skript
Nyní se podívejme na komunikaci klient-server během přehrávání, jak je znázorněno po těchto krocích:
- Během přehrávání odešle klient serveru požadavek na zahájení relace
- Server přijme požadavek a přidělí nové ID relace XYZ
- Klient zahájí relaci s dříve zaznamenaným ID relace ABC a odešle serveru požadavek na povolení záznamu.
- Server není schopen identifikovat ID ABC, protože očekával ID XYZ, které přidělil, a relace se nezdařila.
Potřebujeme řešení, které dokáže zachytit a analyzovat dynamickou hodnotu odeslanou za běhu a vrátit tuto hodnotu zpět na server. Komunikace klient-server s tímto řešením bude vypadat takto, jak ukazuje níže uvedený diagram:
- Během přehrávání odešle klient serveru požadavek na zahájení relace
- Server přijme požadavek a přidělí nové ID relace ZZZ
- Klient analyzuje toto nové ID relace ZZZ z požadavku.
- Klient odešle požadavek na zahájení relace s id ZZZ
- Server rozpozná ID ZZZ a umožní klientovi přehrát skript
Tohle není nic jiného než korelace.
Krátké video níže popisuje stejný problém s nahráváním a přehráváním.
klikněte zde pokud video není přístupné
V případě VuGenu je korelace vazebný 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 nebo datum a čas serveru, které jsou ze serveru načteny. Tyto hodnoty se liší pokaždé, když spustíte aplikaci nebo nahráte skript. Je zřejmé, že pokud spuštění 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 ji k těm požadavkům, které server očekává. Tomu se v LoadRunneru obvykle říká korelace.
Jednoduše řečeno, řešení pomocí korelace je:
- Zachycení výstupní hodnoty z kroku
- Použijte výše zachycenou hodnotu, která bude sloužit jako vstup pro všechny následující kroky
Korelace je ve VuGenu/LoadRunneru rozdělena 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 spuštění nahraného skriptu 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 | Detekce a korelace dynamických dat pro aplikační servery podporované LoadRunnerem |
| 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 Nahrávat => Možnosti nahrávání (nebo klikněte na Ctrl + F7), zobrazené v nabídce níže,
Otevře se okno níže:
Klikněte na Correlation =>Configuration – otevře se okno níže.
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:
Aby fungovala automatická korelace, je nutné zajistit, aby byla zaškrtnuta možnost Prohledávání pravidel. Pokud kliknete na možnost automaticky korelovat nalezené hodnoty, VuGen vás po nalezení kandidáta na korelaci nevyzve k výběru, 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 tlačítko na panelu nástrojů zobrazené zde z nabídky a VuGen regeneruje skript (bez nutnosti záznamu) 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 části Ruční korelace.
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:
- Nahrajte scénář
- Přehrát skript
- Určete hodnoty, které mají být korelovány
- Vyberte hodnoty a klikněte na tlačítko automatické korelace
- 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ů:
- Určete hodnotu, kterou chcete zachytit
- Najít pravou a levou hranici textu hodnoty k zachycení (WEB)
- Zjistěte, který výskyt hranic textu by měl být použit
- Přidejte do skriptu funkci web_reg_save_param nad část kódu, která požaduje, aby byla stránka s hodnotou zachycena
- Přidejte do funkce název parametru, levou hranici, pravou hranici a výskyt
- Parametrizujte dynamickou hodnotu ve skriptu pokaždé, když k ní dojde
- 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);
Code poznámky: Oba úryvky vypadají přesně tak, jak byly publikovány. Sledujte ordinální čísla: Ord=l a RelFrameId=l použijte malé písmeno L a VuGen očekává číslici 1.
Manuální korelaci lze provést pomocí VUser Comparison. Kroky korelační metody VUser Comparison lze rozdělit následovně:
- Identifikujte dynamické hodnoty, které je třeba korelovat
- Najděte odpověď serveru obsahující hodnotu Dynamic
- Zachyťte dynamickou hodnotu do parametru
- Nahraďte každý výskyt dynamické hodnoty parametrem
- Ověřte změny
Principy funkce web_reg_save_param
VuGen poskytuje několik funkcí nebo 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
Poznámka k verzi: aktuální vydání VuGenu potěší web_reg_save_param_ex jako nástupce původní funkce a web_reg_save_param_regexp jako volba při změně samotných hranic. Původní příklad stále běží.
I když je zde uveden stručný úvod, pro detailní pochopení funkcí a jejich parametrů otevřete VuGen, napište funkci (nebo použijte Steps Toolbox), přesuňte kurzor na funkci a stiskněte F1 – seznamte se s… Nápověda VuGenu a vytvořte si zvyk. S tím se budete muset při práci v oboru hodně vypořádat.
Zde jsou podrobnosti o funkci:
web_reg_save_param(název parametru, levá hranice, pravá hranice)
Seznam atributů
Níže uvedená tabulka shromažďuje všechny atributy, které funkce přijímá, zda jsou povinné a co řídí.
| Atribut | Povinný? | Co to dělá |
| Konvertovat | volitelný | HTML_TO_URL převádí data kódovaná ve formátu HTML do formátu URL-kódovaný formát dat. HTML_TO_TEXT převádí data kódovaná ve formátu HTML do formátu prostého textu. |
| Ignorovat přesměrování | Volitelné, výchozí nastavení „Ignorovat přesměrování = Ne“ | Pokud je nastaveno na Ano a odpověď serveru obsahuje informace o přesměrování (stavový kód HTTP 300-303, 307), tato odpověď se neprohledává. Požadavek GET směřuje do přesměrovaného umístění a vyhledávání se spustí odtud. |
| LB | Požadovaný | Levá hranice parametru nebo dynamických dat. Pokud nezadáte hodnotu LB, jako hranice se použijí všechny znaky ze začátku dat. Parametry hranic rozlišují velká a malá písmena. Chcete-li dále přizpůsobit hledaný text, použijte jeden nebo více textových příznaků. |
| NENALEZENO | Volitelné, výchozí „chyba“ | Zpracování situace, kdy není nalezena hranice a je vygenerován prázdný řetězec. „Not found=error“ vyvolá chybu. „Not found=warning“ („Not found=empty“ v dřívějších verzích) místo toho nastaví parametr count na 0 a pokračuje, což je ideální, když chcete zjistit, zda byl řetězec nalezen, aniž by došlo k selhání skriptu. Pokud je povolena možnost Pokračovat při chybě, skript pokračuje i při „chybě“, ale rozšířený protokol ji zaznamená. |
| ORD | Volitelné, výchozí 1 | Označuje ordinální pozici nebo instanci shody. Pokud zadáte „Vše“, hodnoty parametrů se uloží do pole. Použití Instance místo ORD je podporováno z důvodu zpětné kompatibility, ale je zastaralé. |
| RB | Požadovaný | Pravá hranice parametru nebo dynamických dat. Pokud nezadáte hodnotu RB, použijí se jako hranice všechny znaky až do konce dat. Parametry hranic rozlišují velká a malá písmena. Chcete-li dále přizpůsobit hledaný text, použijte jeden nebo více textových příznaků. |
| RelFrameID | volitelný | Úroveň hierarchie HTML stránky vzhledem k požadovanému URLMožné hodnoty jsou ALL nebo číslo. RelFrameID není podporováno ve skriptech na úrovni grafického rozhraní. |
| SaveLen | Volitelné, výchozí -1 | Délka podřetězce nalezené hodnoty od zadaného posunu, která se má uložit do parametru. Výchozí nastavení ukládá na konec řetězce. |
| UložitOffset | Volitelné, výchozí 0 | Offset podřetězce nalezené hodnoty, který se má uložit do parametru. Hodnota offsetu musí být nezáporná. |
| Hledat | Volitelné, výchozí VŠECHNY | Rozsah vyhledávání – kde hledat data s oddělovači. Možné hodnoty jsou Záhlaví (hledat pouze v záhlavích), Tělo (hledat pouze v datech těla, nikoli v záhlavích), Žádný zdroj (hledat pouze v těle HTML, bez všech záhlaví a zdrojů) nebo VŠE (hledat v těle, záhlavích a zdrojích). |
Jakmile se skript čistě přehraje, přidejte parametrizace, transakce a nastavení za běhu, spusťte to z kontrolora přečtěte si výsledek v Analýza jako součást širšího Testování výkonu a Testování zatížení.







