Korelácia v JMeter

Korelácia v JMeter
4 MIN
19 jan 2024

Obsah

Čo je korelácia a prečo je potrebná?

Korelácia je najdôležitejším aspektom skriptovania. Zvyčajne zahŕňa načítanie dynamických údajov z predchádzajúcich požiadaviek/vyvolaní a ich odoslanie do nasledujúcich požiadaviek.

Uveďme si príklad, na ktorom zistíme, prečo presne potrebujeme koreláciu. Predpokladajme, že sme zaznamenali scenár, v ktorom:

  • ->Užívateľ zadá prihlasovacie údaje a klikne na tlačidlo OK
  • ->Otvorí sa domovská stránka a používateľ vykoná ďalšie akcie

Ak teraz tento scenár len prehráme, test zlyhá aj pre jedného používateľa. Dôvodom je použitý mechanizmus overovania. Keď sa prihlasujeme na webovú stránku, dynamicky sa vytvárajú premenné relácie. Tieto premenné relácie sa odovzdávajú ďalším požiadavkám a pomáhajú pri overovaní a autentizácii vykonávaných akcií. Nie je teda možné len tak zaznamenať a prehrať požiadavky, ktoré majú tieto premenné. V tomto prípade potrebujeme prepojiť webové požiadavky s dynamickými premennými. A na koreláciu musíme použiť „Regular Expression Extractor“, ktorý využíva regulárne výrazy. Skôr než sa teda začneme hlbšie zaoberať koreláciou, pochopme najprv „regulárne výrazy“.

Stručný náhľad do regulárnych výrazov

Regulárne výrazy sa používajú na načítanie údajov z reťazca na základe vyhľadávacieho vzoru. V podstate na to, aby sme z odpovede reťazca získali akúkoľvek hodnotu (spravidla dynamicky vytvorenú hodnotu), definujeme ľavé ohraničenie premennej, potom niektoré zástupné znaky a potom pravé ohraničenie:

(Left Bound)(Wildcard Characters)(Right Bound)Napr. ak máme textovú odpoveď ako-…__EVENTVALIDATION „value=“weriudflsdfspdfusdjhsdihffgdfgpdfjsdjfpj“ />…

A my potrebujeme získať hodnotu premennej Event Validation pomocou regulárnych výrazov; regulárny výraz pre to bude:

__EVENTVALIDATION" value="(.+?)" /> where, Left Bound = __EVENTVALIDATION" value=" Wildcard characters = (.+?) Right Bound = " />

Ak sa nechcete hlbšie zaoberať regulárnymi výrazmi, vo väčšine prípadov vám postačia zástupné znaky (.+?). Viac informácií o regulárnych výrazoch a význame jednotlivých znakov zástupných kariet nájdete na webovej lokalite Regular-Expression info Website.

Extraktor regulárnych výrazov

Vráťme sa k aplikácii JMeter a zvážme príklad, v ktorom máme dve operácie:

  1. Používateľ spustí webovú stránku
  2. Používateľ vyplní údaje a klikne na tlačidlo OK

Teraz volanie „User launch website“ (Spustenie webovej stránky používateľa) vytvorí dynamickú premennú – „eventVvalidation“ (Overenie udalosti), ktorú môžeme skontrolovať na karte Response Data (Údaje odpovede) v poslucháči (listeneri) „View Result Tree“ (Zobraziť strom výsledkov) pre toto volanie. Hodnota tejto premennej sa potom odovzdáva nasledujúcim volaniam súvisiacim s „User fill details and click on OK button“ (Používateľ vyplní údaje a klikne na tlačidlo OK) ako parameter Http post.

Kroky pre koreláciu hodnôt overovania udalostí:

  1. Spustite skript obsahujúci obe vyššie uvedené operácie.
  2. Prejdite na záložku Response (textový režim) v poslucháči „View Result Tree“ (Zobraziť strom výsledkov) operácie „User launch website“ (Spustenie webovej stránky používateľom). Na nasledujúcom obrázku vidíme, že druhá operácia „Používateľ vyplní údaje a klikne na tlačidlo OK“ je červená, pretože ešte nie je korelovaná.
  1. Vytvorte regulárny výraz na extrakciu hodnoty validačnej premennej Event. Ako je uvedené vyššie, R.E. pre tento účel bude:

__EVENTVALIDATION“ value=“(.+?)“ />

  1. Prejdite do http požiadavky v rámci transakčného kontroléra „User Launch Website“ (Spustenie webovej stránky používateľom)-> Add (Pridať) -> Post Processor (Postprocesor) -> Regular Expression Extractor (Extraktor regulárneho výrazu).

Pridanie ovládacieho prvku „Regular Expression Extractor“

Parametre extraktora R.E. naplnené

  1. Vložený referenčný názov je názov vytvorenej premennej, ktorá bude zachytávať hodnotu validácie udalosti vygenerovanú požiadavkou http v rámci operácie „User launch website“ (Spustenie webovej stránky používateľom).
  2. Teraz túto premennú odovzdajte následnej http požiadavke v rámci operácie „User fill details and click on OK button“ (Používateľ vyplní údaje a klikne na tlačidlo OK) ako post požiadavku – prepíše už prítomnú pevne zadanú hodnotu premennej Event Validation (Overenie udalosti).

Žiadosť bez korelácie (Hardcoded hodnoty)

Žiadosť(request) s koreláciou (dynamické hodnoty)

  1. Znova spustite testovací plán. Všetko zelené! To je všetko.