Korreláció a LoadRunnerben a Web_Reg_Save_Param példával
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. A szótár úgy definiálja, mint „statisztikai kapcsolat két vagy több változó között úgy, hogy a másik szisztematikus változása az egyik változó értékének szisztematikus változásait kíséri”.
Miért van szükségünk a korrelációra?
Értsük meg az összefüggést a következő forgatókönyvvel.
Fontolja meg, hogy egy szkriptet rögzít a LoadRunner segítségével.
Ügyfél-szerver kommunikáció
- A rögzítés során a kliens kérést küld a szervernek egy munkamenet indí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.
- Az ügyfél elindítja a munkamenetet az ABC azonosítóval, és kérést küld a szervernek, hogy engedélyezze a rögzítést
- 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 tanulmányozzuk a kliens-szerver kommunikációt a visszajátszás során
- 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
- Az ügyfél elindítja a munkamenetet a korábban rögzített ABC munkamenet-azonosítóval, és kérést küld a szervernek, hogy lehetővé tegye a rögzítést
- 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.
Olyan megoldásra van szükségünk, amely rögzíti a futás közben elküldött dinamikus értéket, és ezt az értéket visszaadja a szervernek. Így fog kinézni a kliens-szerver kommunikáció ezzel a megoldással
- 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ó.
Kattints itt ha a videó nem érhető el
A VUGen esetében a korreláció egy kötelező kapcsolat egy válasz és bármely korábbi kérés között.
Különböző helyzetek vannak, amikor egy kérés a kiszolgálótól korábban kapott válaszon alapul, például egy munkamenet-azonosítón, a szerver dátumán/időpontján, amelyet a kiszolgálótól kér le. Ezek az értékek minden alkalommal eltérőek, amikor egy alkalmazást futtat vagy egy parancsfájlt rögzít. Nyilvánvaló, hogy ha a szkript végrehajtása a szerver által visszaadott értéktől függ, akkor ez azt jelenti, hogy meg kell találni egy olyan mechanizmust, amellyel „elkaphatja” a szerver választ, és csatolhatja azokat a kéréseket, amelyeket a szerver vár. Ezt általában korrelációnak hívják 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ó 2 kategóriába sorolható a VUGen/LoadRunnerben:
- 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 VUGennek legalább kétszer le kell futtatnia egy rögzített szkriptet, 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 HP LoadRunner által támogatott alkalmazásszerverek 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 Rögzítés => Felvételi beállítások elemre (vagy kattintson a Ctrl + F7 billentyűkre),
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:
Az automatikus korreláció működéséhez gondoskodnia kell arról, hogy a Szabályvizsgálat bejelölve legyen. Ha rákattint a talált értékek automatikus korrelációjára, a VUGen nem kéri a választást, ha talált egy korrelációs jelöltet, hanem csak 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.
Kattints a menüből, és a VUGen újragenerálja a szkriptet (nem kell rögzíteni) új konfigurációkkal. A VUGen automatikusan hozzáad egy szükséges kódrészletet a korreláció kezeléséhez. A mintát részletesebben a Kézi korreláció című részben fogjuk megvizsgálni.
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);
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 értelmezése
A VUGen több funkciót vagy API-t biztosít a jelöltek korrelálásához, beleértve:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Amíg itt egy rövid bevezetőt adunk, a funkciók és paramétereik részletes megértéséhez nyissa meg a VUGen-t, írjon funkciót (vagy használja a Steps Toolbox-ot), vigye a kurzort a funkcióra, és kattintson az F1-re – ismerkedjen meg a VUGen súgójával, és készítsen egy szokás. Sokat kell vele foglalkozni, ha az iparban dolgozik.
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
Alakítani: A lehetséges értékek a következők:
HTML_TO_URL: HTML-kódolású adatok konvertálása URL-kódolt adatformátummá
HTML_TO_TEXT: HTML-kódolású adatok átalakítása egyszerű szöveges formátumba; ez az attribútum nem kötelező.
Az átirányítások figyelmen kívül hagyása: Ha „Ignore Redirections=Yes” van megadva, és a kiszolgáló válasza átirányítási információ (HTTP állapotkód 300-303, 307), a válasz nem kerül keresésre. Ehelyett, miután megkapta az átirányítási választ, a GET kérést elküldi az átirányított helyre, és a keresés az adott helyről érkező válaszon történik.
Ez az attribútum nem kötelező. Az alapértelmezett az „Átirányítások figyelmen kívül hagyása=Nem”.
LB: A paraméter vagy a dinamikus adat bal oldali határa. Ha nem ad meg LB értéket, akkor az adatok elejétől kezdve az ö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. Ez az attribútum kötelező. Lásd a Határérvek részt.
NEM TALÁLHATÓ: A kezelési opció, ha nem található határ, és üres karakterlánc jön létre.
A „Not found=error”, az alapértelmezett érték, hibát jelez, ha nem található határ.
„Nem található=figyelmeztetés” (a korábbi verziókban „Nem található=üres”), nem ad ki hibát. Ha a határ nem található, akkor a paraméterek számát 0-ra állítja, és folytatja a parancsfájl végrehajtását. A „figyelmeztetés” opció ideális, ha látni szeretné, hogy a karakterlánc megtalálható-e, de nem akarja, hogy a szkript sikertelen legyen.
Megjegyzések: Ha a Continue on Error engedélyezve van a szkriptben, akkor még akkor is, ha a NOTFOUND beállítása „hiba”, a szkript akkor is folytatódik, ha a határ nem található, de hibaüzenet kerül a kiterjesztett naplófájlba.
Ez az attribútum szintén nem kötelező.
KÉT OLDALSÁV: Az egyezés sorrendi helyét vagy előfordulását jelzi. Az alapértelmezett példány 1. Ha az „Összes” értéket adja meg, akkor a paraméterértékeket egy tömbbe menti. Ez az attribútum nem kötelező.
Megjegyzés: A Példány használata az ORD helyett támogatott a visszafelé kompatibilitás miatt, de elavult.
RB: A paraméter vagy a dinamikus adat jobb oldali határa. Ha nem ad meg RB értéket, akkor az összes karaktert az adat végéig 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. Ez az attribútum kötelező. Lásd a Határérvek részt.
RelFrameID: A HTML-oldal hierarchiaszintje a kért URL-hez viszonyítva. A lehetséges értékek ALL vagy egy szám. Kattintson a RelFrameID attribútumra a részletes leírásért. Ez az attribútum nem kötelező.
Jegyzet: A RelFrameID nem támogatott GUI szintű szkriptekben.
SaveLen: A talált érték részkarakterláncának hossza a megadott eltolástól számítva, amelyet a paraméterbe kell menteni. Ez az attribútum nem kötelező. Az alapértelmezett érték -1, ami azt jelzi, hogy a karakterlánc végére kell menteni.
SaveOffset: A talált érték részkarakterláncának eltolása a paraméterbe mentéshez. Az eltolási érték nem lehet negatív. Az alapértelmezett érték 0. Ez az attribútum nem kötelező.
Keresés: A keresés hatóköre – hol kell keresni a körülhatárolt adatokat. A lehetséges értékek a következők: Headers (Csak a fejlécekben keressen), Body (csak törzsadatok keresése, fejlécek nem), Nincs erőforrás (csak a HTML törzsében keressen, az összes fejléc és erőforrás kivételével), vagy MINDEN (keresés törzse, fejlécek és források). Az alapértelmezett érték ALL. Ez az attribútum nem kötelező, de általában előnyös.