Parametriranje, funkcije, transakcije u LoadRunneru
โก Pametni saลพetak
Parametrizacija, transakcije i postavke za vrijeme izvoฤenja su tri poboljลกanja koja obiฤnu VuGen snimku pretvaraju u skriptu koja se ponaลกa kao pravi korisnik i izvjeลกtava o vremenima kojima moลพete vjerovati.
Snimljena skripta moลพe simulirati virtualnog korisnika; meฤutim, sama snimka moลพda neฤe biti dovoljna za repliciranje ponaลกanja stvarnog korisnika.
Kada se snimi skripta, ona pokriva jedan, izravan tok kroz predmetnu aplikaciju. Pravi korisnik moลพe izvrลกiti viลกe iteracija procesa prije odjave. Kaลกnjenje izmeฤu klikova na gumbe (vrijeme razmiลกljanja) varira od osobe do osobe, a neki korisnici dolaze do vaลกe aplikacije putem brze veze, dok drugi ne. Dakle, kako bismo dobili pravi osjeฤaj krajnjeg korisnika, moramo poboljลกati naลกe skripte kako bi se ponaลกale vrlo sliฤno stvarnim korisnicima.
To je najznaฤajnije razmatranje prilikom provoฤenja โIspitivanje performansi", ali VUser skripta nudi viลกe od toga. Kako ฤete procijeniti vrijeme koje je VUseru potrebno dok se testira sustav pod optereฤenjem (SUL)? Kako biste znali je li VUser u odreฤenom trenutku proลกao ili nije uspio, je li neki pozadinski proces zakazao ili su resursi posluลพitelja nedostajali?
Moramo poboljลกati naลก scenarij kako bismo odgovorili na sva gore navedena pitanja.
Napomena o robnoj marki: VuGen se isporuฤivao kao HP, zatim Micro Focus, a sada je dio OpenText Profesionalno inลพenjerstvo performansiFunkcije i postavke u nastavku ostaju nepromijenjene.
Koriลกtenje Transakcija
Transakcije mjere vrijeme odgovora posluลพitelja za bilo koju operaciju. Jednostavno reฤeno, โtransakcijaโ mjeri vrijeme koje je sustavu potrebno za odreฤeni zahtjev. To moลพe biti malo vrijeme poput klika na gumb ili AJAX poziva koji se pokreฤe kada tekstualni okvir izgubi fokus.
Primjena transakcija je jednostavna. Napiลกite jednu liniju koda prije nego ลกto se zahtjev poลกalje i zatvorite transakciju kada zahtjev zavrลกi. LoadRunner zahtijeva samo niz znakova kao naziv transakcije.
Za otvaranje transakcije upotrijebite ovaj redak koda:
lr_start_transaction(โTransaction Nameโ);
Za zatvaranje transakcije upotrijebite ovaj redak koda:
lr_end_transaction(โTransaction Nameโ, <status>);
The govori LoadRunneru je li ova transakcija bila uspjeลกna ili neuspjeลกna. Moguฤi parametri mogu biti:
- LR_AUTO
- LR_PASS
- LR_GREล KA
Primjer:
lr_end_transaction(โMy_Loginโ, LR_AUTO); lr_end_transaction(โ001_Opening_Dashboard Nameโ, LR_PASS); lr_end_transaction(โBusiness_Workflow_Transaction Nameโ, LR_FAIL);
Code note: Isjeฤci su reproducirani toฤno onako kako su objavljeni, ukljuฤujuฤi tipografske citate. Prava VuGen skripta treba ravne ASCII dvostruke navodnike, stoga ih ponovno upiลกite ako kopirate ovaj kod.
Biljeลกke:
- Ne zaboravite, radite sa "C" i to je jezik koji razlikuje velika i mala slova.
- Znak toฤke (.) nije dopuลกten u nazivu transakcije, iako moลพete koristiti razmake i podvlake.
- Ako ste dobro razgranali svoj kod i dodali kontrolne toฤke za provjeru odgovora s posluลพitelja, moลพete koristiti prilagoฤeno rukovanje greลกkama kao ลกto su LR_PASS ili LR_FAIL. U suprotnom, moลพete koristiti LR_AUTO i LoadRunner ฤe automatski obraditi pogreลกke posluลพitelja (HTTP 500, 400 itd.).
- Prilikom primjene transakcija, provjerite da nema izjave o vremenu razmiลกljanja umetnute unutra, inaฤe ฤe vaลกa transakcija uvijek ukljuฤivati โโto razdoblje.
- Buduฤi da LoadRunner zahtijeva konstantan niz znakova kao naziv transakcije, ฤest problem pri primjeni transakcija je neusklaฤenost nizova znakova. Ako prilikom otvaranja i zatvaranja transakcije date razliฤit naziv, dobit ฤete barem 2 pogreลกke. Transakcija koju ste otvorili nikada nije zatvorena, pa LoadRunner daje pogreลกku; a transakcija koju pokuลกavate zatvoriti nikada nije otvorena, ลกto daje drugu pogreลกku.
- Obje pogreลกke pojavljuju se u zapisniku reprodukcije, stoga kad god se bilo koja od njih prijavi, prvo provjerite naziv transakcije na poฤetnoj i zavrลกnoj izjavi.
- Buduฤi da LoadRunner automatski brine o sinkronizaciji zahtjeva i odgovora, neฤete se morati brinuti o odgovoru prilikom primjene transakcija.
Toฤke sastanka, komentari i funkcije skripte
Tri manja poboljลกanja omoguฤuju skripti da se ponaลกa i ฤita kao produkcijski kod: toฤke susreta, komentari i preglednik funkcija ugraฤen u VuGen.
Toฤke susreta
Toฤka susreta je โtoฤka susretaโ. To je jedna naredba koja govori LoadRunneru da uvede konkurentnost. Toฤke susreta umetnete u VUser skripte kako biste emulirali veliko korisniฤko optereฤenje posluลพitelja.
Toฤke sastanka upuฤuju VUsera da ฤeka tijekom izvrลกavanja dok viลกe VUsera ne stigne na odreฤenu toฤku kako bi mogli istovremeno izvrลกavati zadatak. Na primjer, za emulaciju vrลกnog optereฤenja na bankovnom posluลพitelju, umetnite toฤku sastanka koja upuฤuje 100 VUsera da istovremeno polaลพu gotovinu.
Ako toฤke susreta nisu ispravno postavljene, VUseri ฤe pristupati razliฤitim dijelovima aplikacije ฤak i za isti skript. To je zato ลกto svaki VUser dobiva drugaฤije vrijeme odziva pa neki korisnici zaostaju.
Sintaksa:
lr_rendezvous(โLogical Nameโ);
Ispravna napomena: objavljena stranica ovo piลกe lr_randesvousIspravan naziv funkcije je sastanak_s_susreฤu; pogreลกno napisan obrazac se neฤe kompajlirati.
Najbolje prakse:
- Dodajte mjesto susreta s "rdv_" za bolju ฤitljivost koda; npr. โrdv_Loginโ
- Uklonite sve neposredno susjedne izjave o vremenu razmiลกljanja
- Primjena toฤaka sastanka u prikazu skripte, nakon snimanja
Donji prikaz skripte prikazuje izjavu o sastanku umetnutu u snimljenu radnju:
Komentari
Dodajte komentare za opis aktivnosti, dijela koda ili retka koda. Komentari pomaลพu da kod bude razumljiv svima koji ฤe ga koristiti u buduฤnosti. Pruลพaju informacije o odreฤenoj operaciji i odvajaju dva dijela radi razlikovanja.
Moลพete dodati komentare
- Tijekom snimanja (pomoฤu alata)
- Nakon snimanja (izravno pisanje koda)
Najbolja praksa: oznaฤite sve komentare na vrhu svake skriptne datoteke.
Umetanje funkcija putem izbornika
Iako moลพete izravno pisati jednostavne retke koda, moลพda ฤe vam trebati trag da se prisjetite funkcije. Takoฤer moลพete koristiti alatni okvir Steps (poznat kao Insert Function prije verzije 12) za pronalaลพenje i umetanje bilo koje funkcije izravno u svoj skript.
Alatnu kutiju koraka moลพete pronaฤi pod Prikaz โ Alatna kutija koraka, kao ลกto je prikazano dolje.
Ovo ฤe otvoriti boฤni prozor. Pogledajte snimku:
ล to je parametrizacija?
Parametar u VuGenu je spremnik koji sadrลพi zabiljeลพenu vrijednost koja se zamjenjuje za razliฤite korisnike.
Tijekom izvrลกavanja skripte (u VuGenu ili kontrolor), vrijednost iz vanjskog izvora (kao ลกto je .txt datoteka, XML ili baza podataka) zamjenjuje prethodnu vrijednost parametra.
Parametrizacija je korisna za slanje dinamiฤkih (ili jedinstvenih) vrijednosti posluลพitelju. Na primjer, poslovni proces moลพe zahtijevati izvrลกavanje 10 iteracija uz odabir jedinstvenog korisniฤkog imena svaki put.
Takoฤer pomaลพe u simuliranju ponaลกanja u stvarnom ลพivotu u odnosu na predmetni sustav. Pogledajte primjere u nastavku.
Primjeri problema:
- Poslovni proces radi samo za trenutni datum, koji dolazi s posluลพitelja, tako da se ne moลพe proslijediti kao tvrdo kodirani zahtjev.
- Ponekad klijentska aplikacija prosljeฤuje jedinstveni ID posluลพitelju (na primjer session_id) kako bi se proces nastavio, ฤak i za jednog korisnika. U takvom sluฤaju, parametrizacija pomaลพe.
- Klijentska aplikacija ฤesto odrลพava predmemoriju podataka koji se ลกalju na posluลพitelj i s njega. Kao rezultat toga, posluลพitelj ne prima podatke o stvarnom ponaลกanju korisnika (gdje posluลพitelj pokreฤe drugaฤiji algoritam ovisno o kriterijima pretraลพivanja). Skripta VUser ฤe se uspjeลกno izvrลกiti, ali dobivena statistika performansi neฤe biti znaฤajna. Koriลกtenje razliฤitih podataka putem parametrizacije pomaลพe u emulaciji aktivnosti na strani posluลพitelja, kao ลกto su pohranjene procedure, i vjeลพba sustav.
- Datum koji je fiksno kodiran u VUseru tijekom snimanja moลพda viลกe neฤe biti valjan nakon ลกto taj datum proฤe. Parametrizacija datuma omoguฤuje uspjeลกno izvrลกavanje VUsera zamjenom fiksno kodiranog datuma. Takva polja ili zahtjevi su pravi kandidati za parametrizaciju.
Izraฤujete ga tako da desnom tipkom miลกa kliknete zabiljeลพenu vrijednost u prikazu skripte i odaberete Zamijeni parametrom. VuGen zatim pita koji tip daje vrijednost:
| Tip parametra | Vrijednost koju pruลพa |
|---|---|
| file | Vrijednosti proฤitane iz stupca u .dat datoteci. |
| Stol | Blok redaka i stupaca odjednom. |
| Datum / Vrijeme | Trenutni datum i vrijeme u odabranom formatu. |
| Sluฤajni broj | Broj iz raspona koji ste postavili. |
| Jedinstveni broj | Razliฤit broj po VUseru, od poฤetne vrijednosti i veliฤine bloka. |
| Broj iteracije | Trenutni broj iteracija. |
| ID korisnika Vusera | Identifikator dodijeljen prilikom ponovnog izvoฤenja. |
| Grupa / Uฤitavanje Generator Ime | VUser grupa ili generatorski stroj. |
| XML | Fragment iz XML skupa podataka. |
| Korisniฤki definirana funkcija | Vrijednost koju vraฤa vaลกa vlastita biblioteฤna funkcija. |
Dvije dodatne opcije odreฤuju kako se podaci troลกe kroz iteracije:
| opcija | Izbori | ล to kontrolira |
|---|---|---|
| Odaberi sljedeฤi redak | Sekvencijalno, Nasumiฤno, Jedinstveno | Koji red VUser sljedeฤi ฤita. |
| Aลพuriraj vrijednost na | Svaka iteracija, svako pojavljivanje, jednom | Kada se vrijednost osvjeลพi. |
Donji vodiฤ prikazuje parametrizaciju primijenjenu na snimljeni skript:
Kliknite ovdje ako video nije dostupan.
Postavke vremena izvoฤenja i njihov utjecaj na simulaciju VUsera
Postavke za vrijeme izvoฤenja vaลพne su jednako kao i vaลกa VuGen skripta. S razliฤitim konfiguracijama moลพete dobiti potpuno razliฤite dizajne testova, zbog ฤega su nedosljedne postavke za vrijeme izvoฤenja uobiฤajeni uzrok neponovljivih rezultata. Razmotrimo svaki atribut pojedinaฤno.
Run Logic
Run Logic definira koliko ฤe se puta sve radnje izvrลกiti, osim vuser_init i vuser_end.
Ovo vjerojatno jasnije objaลกnjava zaลกto LoadRunner predlaลพe keeping sav kod za prijavu unutar vuser_init i dio za odjavu u vuser_end, oboje iskljuฤivo.
Ako ste kreirali viลกe radnji - recimo Prijava, Otvori zaslon, Izraฤun najma, Uplata sredstava, Provjera stanja i Odjava - tada ฤe se za svakog VUsera odvijati sljedeฤi scenarij:
Svi VUseri ฤe se prijaviti, izvrลกiti Open Screen, Calculate Rental, Submit Funds i Check Balance, zatim ponovno Open Screen, Calculate Rental i tako dalje, ponavljajuฤi 10 puta, nakon ฤega slijedi odjava (jednom).
Ovo je moฤna postavka koja omoguฤuje skripti da se ponaลกa viลกe kao pravi korisnik. Imajte na umu da se pravi korisnik ne prijavljuje i odjavljuje svaki put; obiฤno ponavlja iste korake.
Koliko puta kliknete na "pristigla poลกta" kada provjeravate e-poลกtu prije nego ลกto se odjavite?
elektrostimulacija
Ovo je vaลพno. Veฤina ljudi ne moลพe razumjeti razliku izmeฤu tempa i vremena razmiลกljanja. Jedina je razlika u tome ลกto se tempo odnosi na kaลกnjenje izmeฤu iteracija, dok je vrijeme razmiลกljanja kaลกnjenje izmeฤu bilo koja 2 koraka.
Preporuฤena postavka ovisi o dizajnu testa. Meฤutim, ako ลพelite primijeniti agresivno optereฤenje, razmislite o odabiru opcije "ฤim zavrลกi prethodna iteracija", kao ลกto je prikazano u nastavku.
Dnevnik
Zapisnik, kako se opฤenito shvaฤa, zapis je svih dogaฤaja dok pokreฤete LoadRunner. Zapisnik moลพete omoguฤiti kako biste znali ลกto se dogaฤa izmeฤu vaลกe aplikacije i vaลกeg posluลพitelja.
LoadRunner pruลพa snaลพan mehanizam zapisivanja koji je sam po sebi robustan i skalabilan. Omoguฤuje vam da vodite samo "Standardni zapisnik", detaljan i konfiguriran proลกireni zapisnik ili da potpuno onemoguฤite zapisivanje.
Standardni zapisnik je informativan i lako razumljiv. Sadrลพi upravo pravu koliฤinu informacija koje ฤe vam opฤenito trebati za rjeลกavanje problema s vaลกim VUser skriptama.
U sluฤaju proลกirenog dnevnika, sve standardne informacije dnevnika su podskup. Osim toga, moลพete imati zamjenu parametara. To govori komponenti LoadRunner da ukljuฤi potpune informacije o svim parametrima (iz parametrizacije), ukljuฤujuฤi zahtjeve kao i podatke odgovora.
Ako ukljuฤite "Podaci koje vraฤa posluลพitelj", vaลก ฤe se zapisnik poveฤati. U zapisniku ฤe se nalaziti sav HTML, oznake, resursi i informacije koje nisu o resursima. Ova je opcija dobra samo ako vam je potrebno ozbiljno rjeลกavanje problema. Obiฤno to datoteku zapisnika ฤini vrlo velikom i nerazumljivom.
Kao ลกto ste do sada mogli pretpostaviti, ako se odluฤite za "Napredno Traceโ vaลกa datoteka zapisnika bit ฤe ogromna. Morate pokuลกati. Primijetit ฤete da se i vrijeme potrebno VuGenu znaฤajno poveฤava, iako to nema utjecaja na vrijeme odgovora transakcije koje prijavljuje VuGen. Ovo su vrlo napredne informacije i korisne su samo ako razumijete predmetnu aplikaciju, komunikaciju klijent-posluลพitelj izmeฤu vaลกe aplikacije i hardvera te detalje na razini protokola. Obiฤno ove informacije zahtijevaju izniman napor za ฤitanje i rjeลกavanje problema.
Savjet:
- Bez obzira koliko vremena VuGenu treba kada je zapisnik omoguฤen, to nema utjecaja na vrijeme odgovora transakcije - optereฤenje zapisnikom iskljuฤeno je iz izmjerenog vremena.
- Onemoguฤite zapisnik ako nije potreban.
- Onemoguฤite zapisivanje kada zavrลกite sa skriptama. Ukljuฤivanje skripti s omoguฤenim zapisivanjem uzrokovat ฤe sporiji rad Kontrolera i prijavljivanje dosadnih poruka.
- Onemoguฤavanje zapisnika poveฤat ฤe maksimalni broj korisnika koje moลพete simulirati iz LoadRunnera.
- Razmislite o koriลกtenju opcije "ล alji poruke samo kada se dogodi greลกka" - to iskljuฤuje nepotrebne informativne poruke i prijavljuje samo poruke povezane s greลกkom.
Think Times
Think Time je jednostavno kaลกnjenje izmeฤu dva koraka.
Vrijeme razmiลกljanja pomaลพe u repliciranju ponaลกanja korisnika, buduฤi da nijedan stvarni korisnik ne moลพe koristiti aplikaciju poput stroja. VuGen automatski generira vrijeme razmiลกljanja. I dalje imate potpunu kontrolu nad uklanjanjem, mnoลพenjem ili fluktuacijom trajanja vremena razmiลกljanja.
Da bismo to bolje razumjeli: korisnik moลพe otvoriti ekran (odgovor nakon kojeg slijedi zahtjev) i zatim upisati korisniฤko ime i lozinku prije nego ลกto pritisne Enter. Sljedeฤa interakcija izmeฤu aplikacije i posluลพitelja dogaฤa se kada korisnik klikne "Prijava". Vrijeme koje je korisniku potrebno za upisivanje korisniฤkog imena i lozinke je vrijeme razmiลกljanja u LoadRunneru.
Ako ลพelite simulirati agresivno optereฤenje aplikacije, razmislite o potpunom onemoguฤavanju vremena za razmiลกljanje.
Meฤutim, za simulaciju ponaลกanja u stvarnom ลพivotu moลพete odabrati "Koristi nasumiฤno vrijeme razmiลกljanja" i postaviti postotke po ลพelji.
Razmislite o koriลกtenju opcije "Ograniฤi vrijeme razmiลกljanja" kako biste ograniฤili vrijeme na legitimno razdoblje. Obiฤno je 30 sekundi sasvim dovoljno.
Simulacija brzine
Simulacija brzine se jednostavno odnosi na kapacitet propusnosti svakog klijentskog raฤunala.
Buduฤi da simuliramo tisuฤe VUsera putem LoadRunnera, izvanredno je koliko je LoadRunner pojednostavio simulaciju propusnosti i brzine mreลพe.
Ako vaลกi korisnici pristupaju vaลกoj aplikaciji brzinom veฤom od 128 Kbps, to moลพete kontrolirati odavde. Moฤi ฤete simulirati ponaลกanje u stvarnom ลพivotu, ลกto bi vam trebalo pomoฤi da dobijete ispravne statistike performansi.
Najbolja preporuka je postaviti Koristi maksimalnu propusnost. To vam pomaลพe da zanemarite uska grla performansi povezana s mreลพom i prvo se usredotoฤite na potencijalne probleme u aplikaciji. Uvijek moลพete pokrenuti test viลกe puta kako biste vidjeli razliฤito ponaลกanje u razliฤitim okolnostima.
Emulacija preglednika
Korisniฤko iskustvo ne ovisi o pregledniku koji krajnji korisnik koristi, pa je to uvelike izvan dosega mjera performansi. Meฤutim, moลพete odabrati koji preglednik ลพelite emulirati, kao ลกto je prikazano u donjem oknu.
Kada je toฤno vaลพno koji preglednik odaberete u ovoj konfiguraciji?
Ovu konfiguraciju ฤete koristiti ako je vaลกa predmetna aplikacija web aplikacija koja vraฤa razliฤite odgovore za razliฤite preglednike. Na primjer, moลพete vidjeti razliฤite slike i sadrลพaj za Internet Explorer i Firefox.
Joลก jedna vaลพna postavka je Simuliraj predmemoriju preglednika. Ako ลพelite procijeniti vrijeme odziva s omoguฤenom predmemorijom, oznaฤite ovaj okvir. Ako traลพite najgori moguฤi scenarij, to oฤito nije vaลพno.
Preuzimanje resursa koji nisu HTML omoguฤit ฤe LoadRunneru preuzimanje CSS-a, JS-a i ostalih bogatih medija. Ovo bi trebalo ostati oznaฤeno. Meฤutim, ako ga ลพelite ukloniti iz dizajna testa performansi, moลพete ga poniลกtiti.
proxy
Najbolje je potpuno ukloniti proxy iz vaลกeg Ispitna okolina โ proxy koji se nalazi na putanji ฤini rezultate testa nepouzdanima. Meฤutim, moลพete se suoฤiti sa situacijama u kojima je to neizbjeลพno. U takvoj situaciji, LoadRunner pruลพa postavke proxyja.
Radit ฤete (ili biste trebali raditi) s postavkom Bez proxyja. Moลพete je dobiti iz svog zadanog preglednika. Meฤutim, ne zaboravite provjeriti koji je preglednik postavljen kao zadani i koja je konfiguracija proxyja za taj preglednik.
Ako koristite proxy i on zahtijeva autentifikaciju (ili skriptu), moลพete kliknuti na gumb Autentificiraj, ลกto ฤe vas odvesti do novog prozora. Pogledajte snimku zaslona u nastavku.
Pomoฤu ovog zaslona unesite korisniฤko ime i lozinku za autentifikaciju na proxy posluลพitelju. Kliknite U redu za zatvaranje zaslona.
ฤestitamo. Zavrลกili ste s konfiguriranjem svoje VuGen skripte. Ne zaboravite je konfigurirati za sve svoje VUser skripte.
Sljedeฤi dolazi korelacija, izvoฤenje scenarija u kontrolor, a rezultati ฤitanja su Analiza LoadRunnera. Pogledaj Arhitektura LoadRunnera i Testiranje optereฤenja vodiฤi.











