Primjer korelacije u LoadRunneru s web_reg_save_param
⚡ Pametni sažetak
Korelacija u LoadRunneru bilježi dinamičku vrijednost poslužitelja, kao što je ID sesije, i vraća je u kasnije zahtjeve tako da se snimljena VuGen skripta uspješno ponovno reproducira umjesto da ne uspije na zastarjelim podacima.

Što je korelacija?
Korelacija, kao što i samo ime govori, mehanizam je definiranja odnosa između dvije varijable ili entiteta. Rječnik je 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“.
Napomena o robnoj marki: ovaj alat isporučen kao HP, a zatim Micro Focus LoadRunner, i sada je OpenText Profesionalno inženjerstvo performansiSvaka korelacijska funkcija u nastavku ostaje nepromijenjena, a dobavljač speluje generator skripti VuGen.
Zašto nam je potrebna korelacija?
Razumijemo korelaciju sa sljedećim scenarijem.
Zamislite da snimate skriptu koristeći LoadRunner.
Komunikacija klijent-poslužitelj tijekom snimanja odvija se na sljedeći način, a dijagram je sažima:
- Tijekom snimanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
- Poslužitelj prima zahtjev i dodjeljuje novi ID sesije ABC
- Klijent pohranjuje ID sesije ABC u skriptu.
- Klijent započinje sesiju s ID-om ABC i šalje zahtjev poslužitelju da mu dopusti snimanje.
- Poslužitelj prepoznaje ID ABC i dopušta klijentu snimanje skripte
Sada, proučimo komunikaciju klijent-poslužitelj tijekom reprodukcije, prikazanu nakon ovih koraka:
- Tijekom ponavljanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
- Poslužitelj prima zahtjev i dodjeljuje novi ID sesije XYZ
- Klijent započinje sesiju s prethodno snimljenim ID-om sesije ABC i šalje zahtjev poslužitelju da mu dopusti snimanje.
- Poslužitelj ne može identificirati ID ABC jer je očekivao ID XYZ koji je dodijelio i sesija nije uspjela.
Potrebno nam je rješenje koje može uhvatiti i analizirati dinamičku vrijednost poslanu za vrijeme izvođenja i vratiti tu vrijednost natrag poslužitelju. Evo kako će izgledati komunikacija klijent-poslužitelj s ovim rješenjem, kao što je prikazano na donjem dijagramu:
- Tijekom ponavljanja, klijent šalje zahtjev poslužitelju za pokretanje sesije
- Poslužitelj prima zahtjev i dodjeljuje novi ID sesije ZZZ
- Klijent analizira ovaj novi ID sesije ZZZ iz zahtjeva.
- Klijent šalje zahtjev za pokretanje sesije s ID-om ZZZ
- Poslužitelj prepoznaje ID ZZZ i omogućuje klijentu ponovno reproduciranje skripte
Ovo nije ništa drugo nego korelacija.
Kratki video ispod prikazuje isti problem snimanja i reprodukcije.
Kliknite ovdje ako video nije dostupan
U slučaju VuGena, korelacija je vezivni 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 ili datum i vrijeme poslužitelja koji se dohvaćaju s poslužitelja. Ove vrijednosti su različite svaki put kada pokrenete aplikaciju ili snimite skriptu. Očito je da ako izvršavanje skripte ovisi o vrijednosti koju vraća poslužitelj, to znači da morate pronaći mehanizam gdje možete "uhvatiti" odgovor poslužitelja i priložiti ga onim zahtjevima koje poslužitelj očekuje. To se u LoadRunneru obično naziva korelacija.
Jednostavnim riječima, rješenje korištenjem korelacije je:
- Hvatanje izlazne vrijednosti iz koraka
- Koristite gornju snimljenu vrijednost da posluži kao ulaz za sve sljedeće korake
Korelacija se u VuGenu/LoadRunneru klasificira u 2 kategorije:
- Automatska korelacija
- Ručna korelacija
Automatska korelacija
LoadRunner pruža mehanizam za jednostavno izvođenje korelacije na automatski način.
VuGen će zahtijevati da snimku skripte pokrenete barem dva puta kako bi interno usporedio 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 | Otkrivanje i korelacija dinamičkih podataka za aplikacijske poslužitelje koje podržava 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 Snimanje => Mogućnosti snimanja (ili kliknite Ctrl + F7), prikazano u izborniku ispod,
Otvorit će se prozor ispod:
Kliknite na Korelacija =>Konfiguracija – otvorit će se donji prozor.
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:
Da bi automatska korelacija radila, morate osigurati da je označeno Skeniranje pravila. Ako kliknete na automatski povezi pronađene vrijednosti, VuGen vas neće pitati za izbor nakon što pronađe kandidata za korelaciju, već će ih jednostavno povezati.
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 gumb alatne trake prikazan ovdje iz izbornika i VuGen će regenerirati skriptu (bez potrebe za snimanjem) s novim konfiguracijama. VuGen će automatski dodati potreban dio koda za rukovanje korelacijom. Primjer ć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:
- Snimite scenarij
- Replay skripta
- Odredite vrijednosti koje treba povezati
- Odaberite vrijednosti i kliknite gumb za automatsko povezivanje
- 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:
- Odredite vrijednost za snimanje
- Pronađite desnu i lijevu granicu teksta vrijednosti za snimanje (WEB)
- Pronađite koje bi se pojavljivanje granica teksta trebalo koristiti
- Dodajte funkciju web_reg_save_param u skriptu, iznad dijela koda koji zahtijeva stranicu s vrijednošću za snimanje
- Funkciji dodajte naziv parametra, lijevu granicu, desnu granicu i pojavljivanje
- Parametrirajte dinamičku vrijednost u skripti svaki put kada se pojavi
- 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);
Code note: Oba isječka izgledaju točno onako kako su objavljena. Pogledajte ordinale: Ord=l i RelFrameId=l koristite malo slovo L, a VuGen očekuje znamenku 1.
Ručna korelacija može se izvršiti pomoću VUser Comparison. Koraci u VUser metodi usporedbe korelacije mogu se podijeliti kako slijedi:
- Identificirajte dinamičke vrijednosti koje je potrebno povezati
- Pronađite odgovor poslužitelja koji sadrži dinamičku vrijednost
- Hvatanje dinamičke vrijednosti u parametru
- Zamijenite svako pojavljivanje dinamičke vrijednosti parametrom
- Potvrdi promjene
Razumijevanje funkcije web_reg_save_param
VuGen pruža više funkcija ili API-ja za povezivanje kandidata, uključujući:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Napomena o verziji: trenutna VuGen izdanja su poslastica web_reg_save_param_ex kao nasljednik izvorne funkcije i web_reg_save_param_regexp kao izbor kada se same granice promijene. Izvorni primjer i dalje funkcionira.
Iako se ovdje daje 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 Pomoć za VuGen i stvorite naviku. Morat ćete se s tim puno nositi kada radite u industriji.
Idemo s detaljima funkcije:
web_reg_save_param(Naziv parametra, Lijeva granica, Desna granica)
Popis atributa
Donja tablica prikuplja sve atribute koje funkcija prihvaća, bez obzira jesu li obvezni i što kontroliraju.
| Atribut | Potreban? | Ono što se također |
| pretvoriti | Izborni | HTML_TO_URL pretvara HTML-kodirane podatke u URL-kodirani format podataka. HTML_TO_TEXT pretvara HTML-kodirane podatke u format običnog teksta. |
| Ignoriraj preusmjeravanja | Neobavezno, zadano "Zanemari preusmjeravanja=Ne" | Kada je postavljeno na Da i odgovor poslužitelja su informacije o preusmjeravanju (HTTP statusni kod 300-303, 307), taj se odgovor ne pretražuje. GET zahtjev ide na preusmjerenu lokaciju i pretraživanje se pokreće na odgovoru od tamo. |
| LB | potreban | Lijeva granica parametra ili dinamičkih podataka. Ako ne navedete LB vrijednost, kao granica se koriste svi znakovi s početka podataka. Parametri granice razlikuju velika i mala slova. Za dodatnu prilagodbu teksta pretraživanja upotrijebite jednu ili više tekstualnih zastavica. |
| NIJE PRONAĐENO | Neobavezno, zadana "greška" | Obrada kada granica nije pronađena i generira se prazan niz. "Nije pronađeno=greška" izaziva grešku. "Nije pronađeno=upozorenje" ("Nije pronađeno=prazno" u ranijim verzijama) umjesto toga postavlja parametar count na 0 i nastavlja, što je idealno kada želite vidjeti je li niz pronađen bez neuspjeha skripte. S omogućenim Nastavi pri pogrešci, skripta nastavlja čak i pod "greškom", ali prošireni zapisnik to bilježi. |
| ORD | Neobavezno, zadano 1 | Označava ordinalni položaj ili instancu podudaranja. Ako navedete "Sve", vrijednosti parametara spremaju se u niz. Korištenje Instance umjesto ORD podržano je radi unatrag kompatibilnosti, ali je zastarjelo. |
| RB | potreban | Desna granica parametra ili dinamičkih podataka. Ako ne navedete RB vrijednost, kao granica se koriste svi znakovi do kraja podataka. Parametri granica razlikuju velika i mala slova. Za dodatnu prilagodbu teksta pretraživanja upotrijebite jednu ili više tekstualnih zastavica. |
| RelFrameID | Izborni | Hijerarhijska razina HTML stranice u odnosu na traženu URLMoguće vrijednosti su SVE ili broj. RelFrameID nije podržan u skriptama na razini grafičkog korisničkog sučelja. |
| SaveLen | Neobavezno, zadano -1 | Duljina podniza pronađene vrijednosti, od navedenog pomaka, za spremanje u parametar. Zadana vrijednost sprema se na kraj niza. |
| SpremiOffset | Neobavezno, zadano 0 | Pomak podniza pronađene vrijednosti koji treba spremiti u parametar. Vrijednost pomaka mora biti nenegativna. |
| Traži | Neobavezno, zadano SVE | Opseg pretraživanja — gdje pretraživati razgraničene podatke. Moguće vrijednosti su Zaglavlja (pretraži samo zaglavlja), Tijelo (pretraži samo podatke tijela, ne zaglavlja), Bez resursa (pretraži samo HTML tijelo, isključujući sva zaglavlja i resurse) ili SVE (pretraži tijelo, zaglavlja i resurse). |
Nakon što se skripta čisto ponovi, dodajte parametrizacija, transakcije i postavke za vrijeme izvođenja, pokrenite ga iz kontrolori pročitajte rezultat u Analiza kao dio šireg Ispitivanje performansi i Testiranje opterećenja.







