Korreláció a LoadRunnerben a web_reg_save_param példával

⚡ Okos összefoglaló

A LoadRunner korrelációja rögzít egy dinamikus szerverértéket, például egy munkamenet-azonosítót, és visszatáplálja azt a későbbi kérésekbe, így a rögzített VuGen szkript sikeresen újra lejátszódik ahelyett, hogy elavult adatokon hibát jelezne.

  • 🔘 Meghatározás: A korreláció a szerver válaszát minden további, tőle függő kéréshez köti.
  • ☑️ Tünet: A visszajátszás sikertelen, ha egy szkript egy olyan rögzített munkamenet-azonosítót ad vissza, amelyet a szerver már nem ismer fel.
  • Automatikus: A VuGen szabályai és az automatikus felismerés két visszajátszást hasonlít össze, mégis az eseteknek csak kis részét fedik le.
  • 🧪 Kézi: A web_reg_save_param függvény elmenti a bal és jobb határ között található értéket.
  • 🇧🇷 Elhelyezés: A regisztrációs függvényeknek a lépés felett kell lenniük, amelynek válasza az értéket hordozza.
  • 📊 Kifizetés: A korrelált szkriptek friss adatokkal ismétlődnek, és észrevehetően kisebbek maradnak.

Összefüggés a LoadRunnerben a web_reg_save_param paraméterrel

Mi az a korreláció?

A korreláció, ahogy a neve is sugallja, két változó vagy entitás közötti kapcsolat meghatározásának mechanizmusa. Egy szótár úgy határozza meg, mint „két vagy több változó közötti statisztikai kapcsolat, amelyben a másik változó szisztematikus változásai az egyik változó értékének szisztematikus változásait követik”.

Márka megjegyzés: ez az eszköz HP-ként lett szállítva, majd Micro Focus LoadRunner, és most is OpenText Professzionális teljesítménymérnöki munkaAz alábbi korrelációs függvények mindegyike változatlan, és a gyártó betűzi a szkriptgenerátort. VuGen.

Miért van szükségünk a korrelációra?

Értsük meg az összefüggést a következő forgatókönyvvel.

Gondolja át, hogy egy szkriptet rögzít a következővel: LoadRunner.

A kliens-szerver kommunikáció a felvétel során a következőképpen zajlik, és az ábra összefoglalja:

  1. Felvétel közben a kliens kérést küld a szervernek egy munkamenet elindítására.
  2. A kiszolgáló fogadja a kérést, és kioszt egy új ABC munkamenet-azonosítót
  3. Az ügyfél az ABC munkamenet-azonosítót tárolja a szkriptben.
  4. A kliens az ABC azonosítóval indítja a munkamenetet, és kérést küld a szervernek a rögzítés engedélyezésére.
  5. A szerver felismeri az ABC azonosítót, és lehetővé teszi a kliens számára a szkript rögzítését

Kliens-szerver munkamenet-azonosító csere LoadRunner szkript rögzítése közben

Most pedig vizsgáljuk meg a kliens-szerver kommunikációt visszajátszás közben, amely a következő lépések után látható:

  1. A visszajátszás során a kliens kérést küld a szervernek, hogy indítsa el a munkamenetet
  2. A kiszolgáló fogadja a kérést, és új XYZ munkamenet-azonosítót oszt ki
  3. Egy kliens elindítja a munkamenetet a korábban rögzített ABC munkamenet-azonosítóval, és kérést küld a szervernek a rögzítés engedélyezésére.
  4. A kiszolgáló nem tudja azonosítani az ABC azonosítót, mivel az általa lefoglalt XYZ azonosítót várta, és a munkamenet meghiúsul.

Munkamenet-azonosító eltérés visszajátszás közben, ha hiányzik a korreláció

Szükségünk van egy olyan megoldásra, amely képes rögzíteni és elemezni a futásidőben küldött dinamikus értéket, és ezt az értéket visszaadni a szervernek. Így fog kinézni a kliens-szerver kommunikáció ezzel a megoldással, ahogy az az alábbi ábrán is látható:

  1. A visszajátszás során a kliens kérést küld a szervernek, hogy indítsa el a munkamenetet
  2. Egy kiszolgáló fogadja a kérést, és hozzárendel egy új ZZZ munkamenet-azonosítót
  3. Az ügyfél elemzi a kérésből ezt az új munkamenet-azonosítót, a ZZZ.
  4. Az ügyfél kérést küld a munkamenet indítására a ZZZ azonosítóval
  5. A szerver felismeri a ZZZ azonosítót, és lehetővé teszi a kliensnek, hogy újra lejátssza a szkriptet

Korreláció, amely rögzíti az új munkamenet-azonosítót és visszaküldi azt a szervernek

Ez nem más, mint korreláció.

Az alábbi rövid videó ugyanazt a felvételi és visszajátszási problémát mutatja be.

Kattints itt ha a videó nem érhető el

A VuGen esetében a korreláció egy kötelező érvényű kapcsolat a válasz és az azt megelőző kérés között.

Különböző helyzetek adódhatnak, amikor egy kérés a szervertől korábban kapott válaszon alapul, például egy munkamenet-azonosítón vagy a szervertől lekért szerverdátumon és -időn. Ezek az értékek minden alkalommal eltérőek, amikor egy alkalmazást futtatunk vagy egy szkriptet rögzítünk. Nyilvánvaló, hogy ha a szkript végrehajtása a szerver által visszaadott értéktől függ, az azt jelenti, hogy találnunk kell egy mechanizmust, amellyel „elkaphatjuk” a szerver válaszát, és csatolhatjuk azt a szerver által várt kérésekhez. Ezt általában korrelációnak nevezik a LoadRunnerben.

Egyszerű szavakkal, a megoldás a Correlation használatával a következő:

  1. Kimeneti érték rögzítése egy lépésből
  2. Használja a fent rögzített értéket az összes további lépés bemeneti beviteléhez

A korrelációt a VuGen/LoadRunner két kategóriába sorolja:

  • Automatikus korreláció
  • Kézi korreláció

Automatikus korreláció

A LoadRunner olyan mechanizmust biztosít, amellyel könnyen, automatikus módon végezhető el a korreláció.

A VuGen legalább kétszer megköveteli egy rögzített szkript futtatását, hogy belsőleg összehasonlíthassa a szerver válaszában szereplő változó értékeket.

Az automatikus korreláció 3 kategóriába sorolható:

  • Auto-Detect Correlation
  • Szabály alapú korreláció
  • Összes állítás korrelációja
Szabály címe Mikor kell használni?
Korreláció automatikus észlelése A LoadRunner által támogatott alkalmazáskiszolgálók dinamikus adatainak észlelése és korrelációja
Szabályalapú Akkor használatos, ha olyan nem támogatott alkalmazáskiszolgálóval dolgozik, amelynek környezete ismert.
Összes korreláció Segít az összes dinamikus adat vak korrelációjában.

Bár az automatikus korreláció egyszerűbbnek tűnik, hibás lehet, és az esetek legfeljebb 5%-ában működik. Mindig célszerű manuális korrelációt használni.

A rögzítéskori automatikus korreláció beállításához hajtsa végre az alábbi konfigurálást a Record Time Settingben a szkript rögzítése után.

Kattintson a Felvétel =>Felvételi beállítások menüpontra (vagy kattintson a Ctrl + F7 billentyűkombinációra), amely az alábbi menüben látható.

VuGen Record menü a Felvételi beállítások bejegyzés kiválasztásával

Az alábbi ablak nyílik meg:

A VuGen felvételi beállítások ablaka, amely felsorolja a felvételi konfigurációs csomópontokat

Kattintson a Correlation =>Configuration (Korreláció =>Konfiguráció) elemre – megnyílik az alábbi ablak.

Korrelációs konfigurációs panel, amely felsorolja az alkalmazásszabály-készleteket, például az ASPNET-et

Itt meg kell jelölnie ellenőrzöttként az összes olyan alkalmazást (ASPNET) stb., amelyet a tárgykérelmében használ. A jobb oldalon láthatja azokat a szabályokat, amelyek észlelik a lehetséges korrelációs jelölteket, pl. _VIEWSTATE. További alkalmazásokat vagy egyéni szabályokat is hozzáadhat az Új szabály gombra kattintva.

A SZABÁLYOK elemre is kattinthat, az alábbiak szerint fog látni:

Korrelációs szabályok panel a Szabályok vizsgálata opcióval

Ahhoz, hogy az automatikus korreláció működjön, be kell jelölni a Szabályok vizsgálata jelölőnégyzetet. Ha a talált értékek automatikus korrelációjára kattint, a VuGen nem kéri fel a választást, amint megtalálta a korrelációs jelöltet, ehelyett egyszerűen korrelálja azokat.

Később megértjük a korrelációhoz használt API-t. A szövegösszehasonlítás helyett azonban ajánlatos a HTML-összehasonlítást használni.

Miután kiválasztotta a szabályokat, kattintson az OK gombra az ablakok bezárásához.

Kattintson az itt látható eszköztár gombra VuGen eszköztár gomb, amely a rögzített szkript újragenerálására szolgál a menüből, és a VuGen újragenerálja a szkriptet (felvétel nélkül) az új konfigurációkkal. A VuGen automatikusan hozzáadja a szükséges kódrészletet a korreláció kezeléséhez. A példát részletesebben a Manuális korreláció című részben vizsgáljuk meg.

Kérjük, vegye figyelembe, hogy ha manuálisan hajtja végre a korrelációt, vagy automatikus korrelációt használ, akkor a kódrészlet pontosan ugyanazt a szintaxist és funkciót fogja tartalmazni.

A szkript automatikus korrelációjának lépései:

  1. Rögzítsen egy forgatókönyvet
  2. Szkript újrajátszása
  3. Határozza meg a korrelálandó értékeket
  4. Válassza ki az értékeket, és kattintson az automatikus korreláció gombra
  5. Ellenőrizze a szkriptet az újbóli futtatással. A sikeres futás sikeres korrelációt jelent.

Tipp:

  • A korreláció segít a szkript futtatásában különböző értékekkel
  • A korreláció csökkenti a szkript méretét is

Kézi korreláció

A kézi korreláció azt jelenti, hogy kódot ír közvetlenül a szkriptbe, hogy megfeleljen a folyamatosan változó értékeknek. Az alábbi lépésekre oszthatjuk:

  1. Határozza meg a rögzíteni kívánt értéket
  2. Keresse meg a rögzíteni kívánt érték jobb és bal oldali szöveghatárát (WEB)
  3. Keresse meg, hogy a szöveghatárok melyik előfordulását kell használni
  4. Adjon hozzá egy web_reg_save_param függvényt a szkripthez, azon kódrész fölé, amely a rögzítendő értékű oldalt kéri
  5. Adjon hozzá egy paraméternevet, a bal oldali határt, a jobb oldali határt és az előfordulást a függvényhez
  6. Paraméterezze a dinamikus értéket a szkriptben minden alkalommal, amikor az előfordul
  7. Ellenőrizze a helyes végrehajtást
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 Megjegyzés: mindkét részlet pontosan úgy jelenik meg, ahogyan közzétették. Figyeljük meg a sorszámokat: Sorszám=l és a RelFrameId=l használjunk kis L betűt, és a VuGen az 1-es számjegyet várja.

A kézi korreláció a VUser Comparison segítségével végezhető el. A VUser összehasonlító korrelációs módszerének lépései az alábbiak szerint oszthatók fel:

  1. Azonosítsa azokat a dinamikus értékeket, amelyeket korrelálni kell
  2. Keresse meg a dinamikus értéket tartalmazó szerverválaszt
  3. Rögzítse a dinamikus értéket egy paraméterben
  4. Cserélje le a Dinamikus érték minden előfordulását a paraméterrel
  5. Módosítások ellenőrzése

A web_reg_save_param függvény megismerése

A VuGen több függvényt vagy API-t biztosít a jelöltek összekapcsolására, beleértve:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Verzió megjegyzés: jelenlegi VuGen kiadások csemegéznek web_reg_save_param_ex az eredeti funkció utódjaként, és web_reg_save_param_regexp mint a választás, amikor maguk a határok változnak. Az eredeti példa továbbra is fennáll.

Míg itt egy rövid bevezetőt olvashat, a függvények és paramétereik részletes megértéséhez nyissa meg a VuGen-t, írja be a függvényt (vagy használja a Steps Toolbox-ot), vigye a kurzort a függvény fölé, és kattintson az F1 billentyűre – ismerkedjen meg a funkcióval. VuGen segítség és szokássá kell tenned. Sokat kell majd ezzel foglalkoznod, amikor az iparágban dolgozol.

Következzen a funkció részletei:

web_reg_save_param(Paraméter neve , bal oldali határ , jobb oldali határ )

Attribútumok listája

Az alábbi táblázat összegyűjti a függvény által elfogadott összes attribútumot, hogy kötelezőek-e, és mit vezérelnek.

Attribútum Kívánt? Mit csinál
Megtérít Választható HTML_TO_URL HTML-kódolású adatokat konvertál URL-kódolású adatformátum. A HTML_TO_TEXT függvény HTML-kódolású adatokat konvertál egyszerű szöveges formátumba.
Az átirányítások figyelmen kívül hagyása Opcionális, alapértelmezett „Átirányítások figyelmen kívül hagyása=Nem” Ha Igen értékre van állítva, és a szerver válasza átirányítási információ (HTTP állapotkód: 300-303, 307), akkor a rendszer nem keresi ezt a választ. A GET kérés az átirányított helyre kerül, és a keresés onnan indul a válasz alapján.
LB Kötelező A paraméter vagy a dinamikus adat bal határa. Ha nem ad meg LB értéket, akkor az adat elejének összes karakterét használja határként. A határparaméterek megkülönböztetik a kis- és nagybetűket. A keresési szöveg további testreszabásához használjon egy vagy több szövegjelzőt.
NEM TALÁLHATÓ Opcionális, alapértelmezett „hiba” Kezelés, ha a határ nem található, és üres karakterlánc keletkezik. A „Not found=error” hibát okoz. A „Not found=warning” (a korábbi verziókban „Not found=empty”) ehelyett a count paramétert 0-ra állítja, és folytatja a futást, ami ideális, ha látni szeretné, hogy a karakterlánc megtalálható-e a szkript hibája nélkül. Ha a Folytatás hiba esetén engedélyezve van, a szkript „hiba” esetén is folytatja a futást, de a kibővített napló rögzíti azt.
KÉT OLDALSÁV Opcionális, alapértelmezett 1 Az egyezés sorszám szerinti pozícióját vagy példányát jelzi. Ha az „All” értéket adja meg, a paraméterértékek egy tömbben kerülnek mentésre. Az ORD helyett az Instance használata támogatott a visszafelé kompatibilitás érdekében, de elavult.
RB Kötelező A paraméter vagy a dinamikus adat jobb határa. Ha nem ad meg RB értéket, akkor az adat végéig tartó összes karaktert határként használja. A határparaméterek megkülönböztetik a kis- és nagybetűket. A keresési szöveg további testreszabásához használjon egy vagy több szövegjelzőt.
RelFrameID Választható A HTML oldal hierarchiaszintje a kért elemhez képest URLA lehetséges értékek ALL vagy egy szám. A RelFrameID nem támogatott grafikus szintű szkriptekben.
SaveLen Opcionális, alapértelmezett -1 A talált érték egy részkarakterláncának hossza a megadott eltolástól számítva, amelyet a paraméterbe kell menteni. Az alapértelmezés szerint a mentés a karakterlánc végére történik.
SaveOffset Opcionális, alapértelmezett 0 A talált érték egy részkarakterláncának eltolása a paraméterbe mentéshez. Az eltolás értékének nem negatívnak kell lennie.
Keresés Opcionális, alapértelmezett MIND A keresés hatóköre – hol keresse a tagolt adatokat. A lehetséges értékek: Fejlécek (csak a fejlécekben keres), Törzs (csak a törzsadatokban keres, fejlécek nélkül), Nincs erőforrás (csak a HTML-törzsben keres, a fejlécek és erőforrások kizárásával), vagy ÖSSZES (törzsben, fejlécekben és erőforrásokban is keres).

Miután a szkript tisztán lejátszódik, add hozzá a következőt: paraméterezés, tranzakciók és futásidejű beállítások, futtassa a ellenőr, és olvasd le az eredményt Elemzés szélesebb körű részeként Teljesítményfelmérés és a Terhelésvizsgálat.

GYIK

Játssza le kétszer a kiterjesztett bejelentkezéssel, és hasonlítsa össze a válaszokat. Bármely érték, amelyet a szerver minden futáskor frissen kiad – munkamenet-azonosítók, tokenek, időbélyegek –, lehetséges.

A web_reg_save_param egyezik a rögzített bal és jobb határok között. web_reg_save_param_regexp egy reguláris kifejezésre illeszkedik, így akkor is megbirkózik, ha maguk a határok változnak.

Igen. A gépi tanulás képes két visszajátszott válasz különbségére, és a megváltozott mezők rangsorolására sokkal gyorsabban, mint egy manuális vizsgálat. A rangsorolást egy olyan rövid listaként kezelje, amelyet az ember még mindig megerősít.

GitHub másodpilóta A függvényhívást és argumentumait egy megjegyzésből tervezi meg. Nem látja a szerver válaszát, így minden általa javasolt határt össze kell vetni a valós forgalommal.

Ez egy regisztrációs függvény: a VuGen által kapott következő válaszhoz képest regisztrálja a keresést. A kérés után elhelyezve nem marad semmi beolvasnivaló, és a paraméter üres marad.

A határok nem egyeztek. A leggyakoribb okok a kis- és nagybetűk közötti eltérés, a csak egy másik oldalon megjelenő határ, vagy a törzsben való keresés, amikor az érték a fejlécekben található.

Nem. A paraméterezés a saját bemeneti adatait egy adatfájlból táplálja be egy szkriptbe. A korreláció rögzíti a szerver által futásidőben generált értéket, és visszaadja. A legtöbb szkriptnek mindkettőre szüksége van.

Igen, gyakran több is van belőle. A tulajdonos tokenek, a CSRF mezők és a JSON azonosítók minden munkamenetben változnak, így a REST és az egyoldalas forgalom tele van jelöltekkel, még HTML űrlap nélkül is.

Foglald össze ezt a bejegyzést a következőképpen: