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.
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:
- Felvétel közben a kliens kérést küld a szervernek egy munkamenet elindítására.
- A kiszolgáló fogadja a kérést, és kioszt egy új ABC munkamenet-azonosítót
- Az ügyfél az ABC munkamenet-azonosítót tárolja a szkriptben.
- 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.
- A szerver felismeri az ABC azonosítót, és lehetővé teszi a kliens számára a szkript rögzítését
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ó:
- A visszajátszás során a kliens kérést küld a szervernek, hogy indítsa el a munkamenetet
- A kiszolgáló fogadja a kérést, és új XYZ munkamenet-azonosítót oszt ki
- 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.
- 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.
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ó:
- A visszajátszás során a kliens kérést küld a szervernek, hogy indítsa el a munkamenetet
- Egy kiszolgáló fogadja a kérést, és hozzárendel egy új ZZZ munkamenet-azonosítót
- Az ügyfél elemzi a kérésből ezt az új munkamenet-azonosítót, a ZZZ.
- Az ügyfél kérést küld a munkamenet indítására a ZZZ azonosítóval
- A szerver felismeri a ZZZ azonosítót, és lehetővé teszi a kliensnek, hogy újra lejátssza a szkriptet
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ő:
- Kimeneti érték rögzítése egy lépésből
- 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ó.
Az alábbi ablak nyílik meg:
Kattintson a Correlation =>Configuration (Korreláció =>Konfiguráció) elemre – megnyílik az alábbi ablak.
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:
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 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:
- Rögzítsen egy forgatókönyvet
- Szkript újrajátszása
- Határozza meg a korrelálandó értékeket
- Válassza ki az értékeket, és kattintson az automatikus korreláció gombra
- 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:
- Határozza meg a rögzíteni kívánt értéket
- Keresse meg a rögzíteni kívánt érték jobb és bal oldali szöveghatárát (WEB)
- Keresse meg, hogy a szöveghatárok melyik előfordulását kell használni
- 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
- Adjon hozzá egy paraméternevet, a bal oldali határt, a jobb oldali határt és az előfordulást a függvényhez
- Paraméterezze a dinamikus értéket a szkriptben minden alkalommal, amikor az előfordul
- 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:
- Azonosítsa azokat a dinamikus értékeket, amelyeket korrelálni kell
- Keresse meg a dinamikus értéket tartalmazó szerverválaszt
- Rögzítse a dinamikus értéket egy paraméterben
- Cserélje le a Dinamikus érték minden előfordulását a paraméterrel
- 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.







