Primjer korelacije u LoadRunneru s Web_Reg_Save_Param

Što je korelacija?

Korelacija je, kao što naziv sugerira, mehanizam definiranja odnosa između dvije varijable ili entiteta. Rječnik ga definira kao "statistički odnos između dvije ili više varijabli takav da sustavne promjene u drugoj prate sustavne promjene u vrijednosti jedne varijable".

Zašto nam je potrebna korelacija?

Razmotrimo korelaciju sa sljedećim scenarijem.

Zamislite da snimate skriptu koristeći LoadRunner.

Komunikacija klijent-poslužitelj

  1. Tijekom snimanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
  2. Poslužitelj prima zahtjev i dodjeljuje novi ID sesije ABC
  3. Klijent pohranjuje ID sesije ABC u skriptu.
  4. Klijent započinje sesiju s ID-om ABC i šalje zahtjev poslužitelju da mu dopusti snimanje
  5. Poslužitelj prepoznaje ID ABC i dopušta klijentu snimanje skripte

Korelacija tijekom snimanja

  1. Proučimo sada komunikaciju klijent-poslužitelj tijekom ponavljanja
  2. Tijekom ponavljanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
  3. Poslužitelj prima zahtjev i dodjeljuje novi ID sesije XYZ
  4. Klijent započinje sesiju s prethodno snimljenim ID-om sesije ABC i šalje zahtjev poslužitelju da mu dopusti snimanje
  5. Poslužitelj ne može identificirati ID ABC jer je očekivao ID XYZ koji je dodijelio i sesija nije uspjela.

Korelacija tijekom ponavljanja

Trebamo rješenje koje će uhvatiti analizirati dinamičku vrijednost poslanu u vrijeme izvođenja i vratiti ovu vrijednost natrag na poslužitelj. Evo kako će izgledati komunikacija klijent-poslužitelj s ovim rješenjem

  1. Tijekom ponavljanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
  2. Poslužitelj prima zahtjev i dodjeljuje novi ID sesije ZZZ
  3. Klijent analizira ovaj novi ID sesije ZZZ iz zahtjeva.
  4. Klijent šalje zahtjev za pokretanje sesije s ID-om ZZZ
  5. Poslužitelj prepoznaje ID ZZZ i omogućuje klijentu ponovno reproduciranje skripte

Trebamo korelaciju

Ovo nije ništa drugo nego korelacija.

Kliknite ovdje ako video nije dostupan

U slučaju VUGen, korelacija je obvezujući odnos između odgovora i bilo kojeg prethodnog zahtjeva.

Postoje različite situacije kada se zahtjev temelji na prethodno primljenom odgovoru s poslužitelja, kao što je ID sesije, datum/vrijeme poslužitelja koji se dohvaća s poslužitelja. Ove vrijednosti su različite svaki put kada pokrenete aplikaciju ili snimite skriptu. Očito, ako izvršenje skripte ovisi o vrijednosti koju vraća poslužitelj, to znači da trebate pronaći mehanizam u kojem možete "uhvatiti" odgovor poslužitelja i priložiti onim zahtjevima koje poslužitelj očekuje. To se obično naziva korelacija u LoadRunneru.

Jednostavnim riječima, rješenje korištenjem korelacije je:

  1. Hvatanje izlazne vrijednosti iz koraka
  2. Koristite gornju snimljenu vrijednost da posluži kao ulaz za sve sljedeće korake

Korelacija je klasificirana u 2 kategorije u VUGen/LoadRunner:

  • Automatska korelacija
  • Ručna korelacija

Automatska korelacija

LoadRunner pruža mehanizam za jednostavno izvođenje korelacije na automatski način.

VUGen će zahtijevati da pokrenete snimljenu skriptu najmanje dva puta kako bi mogao interno usporediti različite vrijednosti u odgovoru poslužitelja.

Automatska korelacija može se klasificirati u 3 kategorije:

  • Automatsko otkrivanje korelacije
  • Korelacija temeljena na pravilima
  • Povezivanje svih izjava
Naziv pravila Kada koristiti
Automatsko otkrivanje korelacije Otkrijte i povežite dinamičke podatke za poslužitelje aplikacija koje podržava HP LoadRunner
Na temelju pravila Koristi se pri radu s nepodržanim aplikacijskim poslužiteljem za koji je poznat kontekst.
Poveži sve Pomaže u korelaciji svih dinamičkih podataka na slijepi način.

Iako se automatska korelacija čini jednostavnijom, može biti sklona pogreškama i radi u ne više od 5% slučajeva. Uvijek je preporučljivo koristiti ručnu korelaciju.

Da biste konfigurirali automatsku korelaciju u vrijeme snimanja, izvršite donju konfiguraciju u postavkama vremena snimanja nakon što je skripta snimljena.

Kliknite na Record =>Recording Options (ili kliknite Ctrl +F7),

Automatska korelacija

Otvorit će se prozor ispod:

Automatska korelacija

Kliknite na Korelacija =>Konfiguracija – otvorit će se donji prozor.

Automatska korelacija

Ovdje morate označiti kao provjereno sve aplikacije (ASPNET) itd., koje se koriste u vašoj predmetnoj aplikaciji. Na desnoj strani možete vidjeti pravila koja će otkriti moguće kandidate za korelaciju, npr. _VIEWSTATE. Također možete dodati više aplikacija ili prilagođenih pravila klikom na gumb Novo pravilo.

Također možete kliknuti na PRAVILA, vidjet ćete sljedeće:

Automatska korelacija

Kako bi automatska korelacija radila, morate osigurati da je Skeniranje pravila označeno kao potvrđeno. Ako kliknete na pronađene automatski korelirane vrijednosti, VUGen vas neće pitati za izbor nakon što se pronađe korelacijski kandidat, umjesto toga, samo će ih korelirati.

Kasnije ćemo razumjeti API koji se koristi za korelaciju. Međutim, preporučljivo je koristiti HTML usporedbu umjesto usporedbe teksta.

Nakon što ste odabrali bilo koje pravilo, kliknite gumb U redu za zatvaranje prozora.

Kliknite na Automatska korelacijaiz izbornika i VUGen će regenerirati skriptu (bez snimanja) s novim konfiguracijama. VUGen će automatski dodati potreban dio koda za rukovanje korelacijom. Uzorak ćemo detaljnije pogledati u Ručnoj korelaciji.

Imajte na umu da ako korelaciju izvodite ručno ili koristite automatsku korelaciju, dio koda će sadržavati točno istu sintaksu i funkciju.

Koraci za automatsku korelaciju skripte:

  1. Snimite scenarij
  2. Replay skripta
  3. Odredite vrijednosti koje treba povezati
  4. Odaberite vrijednosti i kliknite gumb za automatsko povezivanje
  5. Provjerite skriptu ponovnim pokretanjem. Uspješan rad znači uspješnu korelaciju.

Savjet:

  • Korelacija pomaže u pokretanju vaše skripte s različitim vrijednostima
  • Korelacija također smanjuje veličinu vaše skripte

Ručna korelacija

Ručna korelacija je pisanje koda izravno u vašu skriptu kako bi se zadovoljile vrijednosti koje se stalno mijenjaju. Možemo ga podijeliti u sljedeće korake:

  1. Odredite vrijednost za snimanje
  2. Pronađite desnu i lijevu granicu teksta vrijednosti za snimanje (WEB)
  3. Pronađite koje bi se pojavljivanje granica teksta trebalo koristiti
  4. Dodajte funkciju web_reg_save_param u skriptu, iznad dijela koda koji zahtijeva stranicu s vrijednošću za snimanje
  5. Funkciji dodajte naziv parametra, lijevu granicu, desnu granicu i pojavljivanje
  6. Parametrirajte dinamičku vrijednost u skripti svaki put kada se pojavi
  7. Provjerite ispravnost izvedbe
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);

Ručna korelacija može se izvršiti pomoću VUser Comparison. Koraci u VUser metodi usporedbe korelacije mogu se podijeliti kako slijedi:

  1. Identificirajte dinamičke vrijednosti koje je potrebno povezati
  2. Pronađite odgovor poslužitelja koji sadrži dinamičku vrijednost
  3. Hvatanje dinamičke vrijednosti u parametru
  4. Zamijenite svako pojavljivanje dinamičke vrijednosti parametrom
  5. Potvrdi promjene

Razumijevanje funkcije Web_reg_save_param

VUGen pruža više funkcija ili API-ja za korelaciju kandidata, uključujući:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Iako je ovdje dat kratki uvod, za detaljno razumijevanje funkcija i njihovih parametara, otvorite VUGen, napišite funkciju (ili koristite Steps Toolbox), pomaknite kursor na funkciju i kliknite F1 – upoznajte se s VUGen pomoći i napravite navika. Morat ćete se puno nositi s tim kada radite u industriji.

Idemo s detaljima funkcije:

web_reg_save_param(Naziv parametra, Lijeva granica, Desna granica)

Popis atributa

Pretvoriti: Moguće vrijednosti su:

HTML_TO_URL: pretvorite HTML-kodirane podatke u URL-kodirani format podataka

HTML_TO_TEXT: pretvoriti HTML kodirane podatke u format običnog teksta; ovaj atribut nije obavezan.

Ignoriraj preusmjeravanja: Ako je navedeno “Ignore Redirections=Yes” i odgovor poslužitelja je informacija o preusmjeravanju (HTTP statusni kod 300-303, 307), odgovor se ne pretražuje. Umjesto toga, nakon primitka odgovora preusmjeravanja, GET zahtjev se šalje na preusmjerenu lokaciju, a pretraga se izvodi na odgovoru s te lokacije.

Ovaj atribut nije obavezan. Zadana postavka je “Ignore Redirections=No”.

LB: Lijeva granica parametra ili dinamičkih podataka. Ako ne navedete LB vrijednost, koristit će se svi znakovi s početka podataka kao granica. Parametri granice razlikuju velika i mala slova. Za dodatnu prilagodbu teksta za pretraživanje upotrijebite jednu ili više tekstualnih zastavica. Ovaj atribut je obavezan. Pogledajte odjeljak Argumenti granice.

NIJE PRONAĐENO: Opcija rukovanja kada granica nije pronađena, a generira se prazan niz.

“Not found=greška”, zadana vrijednost, uzrokuje pojavu pogreške kada granica nije pronađena.

“Nije pronađeno=upozorenje” (“Nije pronađeno=prazno” u ranijim verzijama), ne daje pogrešku. Ako granica nije pronađena, postavlja brojač parametara na 0 i nastavlja s izvođenjem skripte. Opcija "upozorenje" idealna je ako želite vidjeti je li niz pronađen, ali ne želite da skripta ne uspije.

bilješke: Ako je Nastavak pri pogrešci omogućen za skriptu, tada čak i kada je NOTFOUND postavljeno na "pogrešku", skripta nastavlja kada granica nije pronađena, ali se poruka o pogrešci upisuje u proširenu datoteku dnevnika.

Ovaj atribut također nije obavezan.

ORD: Označava redni položaj ili primjer podudaranja. Zadana instanca je 1. Ako navedete "Sve", sprema se vrijednosti parametara u polje. Ovaj atribut nije obavezan.

Napomena: upotreba Instance umjesto ORD-a podržana je radi kompatibilnosti s prethodnim verzijama, ali je zastarjela.

RB: Desna granica parametra ili dinamičkih podataka. Ako ne navedete RB vrijednost, koristit će se svi znakovi do kraja podataka kao granica. Parametri granice razlikuju velika i mala slova. Za dodatnu prilagodbu teksta za pretraživanje upotrijebite jednu ili više tekstualnih zastavica. Ovaj atribut je obavezan. Pogledajte odjeljak Argumenti granice.

RelFrameID: Hijerarhijska razina HTML stranice u odnosu na traženi URL. Moguće vrijednosti su SVE ili broj. Kliknite RelFrameID atribut za detaljan opis. Ovaj atribut nije obavezan.

Bilješka: RelFrameID nije podržan u skriptama na razini GUI-ja.

SaveLen: Duljina podniza pronađene vrijednosti, od navedenog pomaka, za spremanje u parametar. Ovaj atribut nije obavezan. Zadana vrijednost je -1, što označava spremanje na kraj niza.

SpremiOffset: Pomak podniza pronađene vrijednosti za spremanje u parametar. Vrijednost pomaka mora biti nenegativna. Zadana vrijednost je 0. Ovaj atribut nije obavezan.

Traži: Opseg pretraživanja - gdje tražiti razgraničene podatke. Moguće vrijednosti su zaglavlja (pretraži samo zaglavlja), tijelo (pretraži samo podatke o tijelu, ne zaglavlja), bez resursa (pretraži samo tijelo HTML-a, isključujući sva zaglavlja i resurse) ili SVE (tijelo pretraživanja, zaglavlja i resursi). Zadana vrijednost je SVE. Ovaj atribut nije obavezan, ali se općenito preferira.