loadrunner transactions
java polje dodaj element na kraj
Uvod u osnovna poboljšanja VuGen Scripta:
Istražili smo Korelacija u LoadRunneru detaljno u našem prethodnom tutorialu u ovom Kompletni vodiči za obuku LoadRunner .
U posljednja dva tutorijala radili smo na rukovanju podacima u VuGen skripti (Korelacija i parametrizacija).
U ovom vodiču za LoadRunner vidjet ćemo druga osnovna poboljšanja (navedena u nastavku) koja su potrebna za našu skriptu:
- Transakcije - za mjerenje brzine i vremena odziva korisnikovih radnji.
- Provjere teksta i slike - Da bi se osiguralo da je vraćeni odgovor točan.
- Komentari
- Točke susreta - Da bi Vusers istodobno izvršio zadatak.
=> Kliknite ovdje za kompletnu seriju vodiča za LoadRunner
Što ćete naučiti:
- Transakcije u skripti VuGen
- Provjere teksta i slike u VuGen Script
- Komentari u VuGen Script
- Točka susreta u skripti VuGen
- Zaključak
- Preporučena literatura
Transakcije u skripti VuGen
Sama reprodukcija skripti izvedbe samo će opteretiti aplikaciju, ali ne mjeri ništa. Krajnji cilj svake izvedbene skripte je ubrizgati opterećenje i izmjeriti brzinu i vrijeme odziva korisničkih radnji na aplikaciji.
Na primjer ,koliko je vremena trajalo pretraživanje proizvoda kada je 100 korisnika u aplikaciji, koliko se izvještaja generira u vremenu od recimo 15 minuta i tako dalje. Da bismo ih izmjerili, moramo umetnuti transakcije u skriptu VuGen (nakon testa u rezultatima možemo vidjeti brzinu i vrijeme odziva tih transakcija).
‘Transakcija je mjerenje od kraja do kraja radnje korisnika (ili skupine korisničkih radnji) u aplikaciji’.
Transakcije se mogu umetnuti na dva načina:
- Tijekom snimanja
- Nakon snimanja (gdje ručno umetamo funkcije transakcije u skriptu)
Umetnimo transakciju za radnju korisnika 'Prijava' u našoj aplikaciji 'Web Tours'.
U našem prvom tutorijalu vidjeli smo kako zabilježiti radnje korisnika. Tijekom snimanja, nakon unosa „Korisničko ime“ i „Lozinka“ na stranici za prijavu, neposredno prije klika na gumb „Prijava“, kliknite na ikonu „Umetni početak transakcije“ na plutajućoj traci za snimanje.
VuGen traži naziv transakcije. Unesite bilo koje suvislo ime. Ovdje smo dali 'Prijava', ali dobra je praksa slijediti ovakav dogovor (broj transakcije, naziv scenarija, radnja korisnika itd.): 01_WebTours_Launch 02_WebTours_Login (i tako dalje).
Sada kliknite na Gumb za prijavu.
Nakon što dođemo do početne stranice (glavne stranice), kliknite na ikonu ‘Umetni završnu transakciju’ na plutajućoj traci za snimanje.
Odaberite transakciju koju želimo završiti (ovdje se nalazi ‘Prijava’).
Zaustavite snimanje i pogledajte generiranu skriptu. Vidimo da su funkcije pokretanja i završetka transakcije umetnute u skriptu (označene žutom bojom), a svi zahtjevi koji odgovaraju radnji korisnika 'Prijava' nalaze se između ovih funkcija.
lr_start_transaction('Login'); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t3.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 69 ', ENDITEM , 'Name= login.y ', 'Value= 8 ', ENDITEM , LAST ); lr_end_transaction('Login', LR_AUTO );
Sintaksa funkcija 'početak transakcije' i 'kraj transakcije' prilično je jednostavna. Obje imaju ime transakcije kao prvi argument. Funkcija 'završi transakciju' ima još jedan atribut - 'LR_AUTO', što VuGenu nalaže da automatski proslijedi ili propadne transakciju (umjesto da izričito odredimo uvjet za prolazak ili neuspjeh).
Ako pokretač učitavanja naiđe na bilo kakve pogreške u izvršavanju zahtjeva unutar transakcije, tada ne uspije u transakciji, inače prolazi transakciju.
Provjere teksta i slike u VuGen Script
Tekstualne provjere koriste se za provjeru je li odgovor vraćen na zahtjev točan ili ne. U vodiču ‘Korelacija’ vidjeli smo da ponekad VuGen možda neće pokazati nikakvu pogrešku, ali vraćeni odgovor možda neće biti točan. Dakle, kako bismo osigurali točnost odgovora, koristimo provjere teksta.
Na primjer, kada se prijavimo u web Tours aplikaciju, idemo na početnu stranicu. Provjerimo u skripti da li dobivamo točan odgovor (početnu stranicu) ili ne kad se prijavimo.
Da bismo to učinili, moramo prepoznati neki tekst u odgovoru (ovdje početna stranica) koji može reći je li odgovor točan ili ne. ‘Dobrodošli’ je jedan takav tekst.
Za provjeru teksta koristimo ' web_reg_find ' funkcija neposredno prije zahtjeva.
Sintaksa ove funkcije je:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Ovdje imamo tri atributa (pogledajte VuGen pomoć da biste dobili potpuni popis atributa):
‘Tekst’ - koristi se za određivanje teksta koji se traži.
‘SaveCount’ - sprema broj pojavljivanja navedenog teksta u parametar koji odredimo.
'Fail' - uzima jednu od dvije vrijednosti -'Found 'i' NotFound 'i u skladu s tim ne uspijeva skriptu.
Dakle, funkcija web_reg_find („Text = Welcome“, „SaveCount = WelcomeCount“, „Fail = NotFound“, LAST) u odgovoru traži tekst „Dobrodošli“ i sprema broj pojavljivanja u parametar „WelcomeCount“ (i zakaže skriptu ako tekst nije pronađen).
Skripta izgleda ovako:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ','Fail= NotFound ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123531.149939247zDftVDDpfcfDiVctpiAVVf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST );
Ako ponovimo skriptu, dobit ćemo pogrešku za zahtjev za prijavu (vidi u zapisniku releja) jer VuGen u odgovoru nije pronašao tekst koji smo naveli. To je zato što nismo dobili ispravnu početnu stranicu (kao što je prikazano u 'pregledniku vremena izvršavanja').
Ispravimo sada našu skriptu (korelirajte userSession) i ponovno ponovite skriptu.
web_reg_find('Text=Welcome','SaveCount=WelcomeCount','Fail=NotFound', LAST ); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA , 'Name=userSession', 'Value={corUserSession}', ENDITEM , 'Name=username', 'Value=jojo', ENDITEM , 'Name=password', 'Value=bean', ENDITEM , 'Name=JSFormSubmit', 'Value=off', ENDITEM , 'Name=login.x', 'Value=66', ENDITEM , 'Name=login.y', 'Value=12', ENDITEM , LAST );
Ovaj put u zapisniku ponavljanja ne vidimo grešku, ali vidimo poruku da je naša provjera teksta bila uspješna. Tako smo ovog puta dobili točan odgovor (jer to potvrđuje i 'runtime viewer').
Možemo kombinirati tekstualne provjere s transakcijama i natjerati VuGen da proslijedi transakciju ako je provjera teksta uspješna i neuspjeh u transakciji ako provjera teksta ne uspije.
To je prikazano u nastavku:
lr_start_transaction('Login'); web_reg_find('Text=Welcome','SaveCount=WelcomeCount',LAST); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA, 'Name=userSession', 'Value={corUserSession}', ENDITEM, 'Name=username', 'Value=jojo', ENDITEM, 'Name=password', 'Value=bean', ENDITEM, 'Name=JSFormSubmit', 'Value=off', ENDITEM, 'Name=login.x', 'Value=66', ENDITEM, 'Name=login.y', 'Value=12', ENDITEM, LAST); if(atoi(lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login',LR_PASS); } else { lr_end_transaction('Login',LR_FAIL); }
Ovdje smo upotrijebili izraz 'if' s atributom 'SaveCount'. Parametar ‘WelcomeCount’ (koji sprema broj pojavljivanja teksta) koristi se kao uvjet za prosljeđivanje / neuspjeh transakcije. Atributi 'LR_PASS' i 'LR_FAIL' funkcija transakcije koriste se za izričito prosljeđivanje i neuspjeh (respektivno) transakcije.
Bilješka: Ovdje smo koristili dvije nove funkcije - 'Atoi' i ‘Lr_eval_string’ . O tim ćemo funkcijama razgovarati kasnije.
Još nekoliko informacija o kombinaciji atributa funkcije ‘web_reg_find’:
# 1) Ako se koristi samo atribut 'Tekst' -
Primjer: web_reg_find („Tekst = Dobrodošli“, POSLJEDNJI) -
VuGen traži tekst i ne uspijeva u skripti ako je pretraživanje neuspješno.
# 2) Ako se koriste samo atributi 'Text' i 'SaveCount' -
Primjer: web_reg_find („Text = Welcome“, „SaveCount = WelcomeCount“, LAST) - VuGen traži tekst i sprema broj pojavljivanja (čak i ako je nula) u navedeni parametar (ne uspijeva u skripti ako je pretraživanje neuspješno ).
# 3) Ako se koriste samo atributi 'Tekst' i 'Neuspjeh' -
Primjer: web_reg_find (“Text = Welcome”, “Fail = NotFound”, LAST) - VuGen traži tekst i ne uspijeva u skripti ako je tekst pronađen / nije pronađen.
Provjere teksta također se mogu umetnuti tijekom snimanja pomoću ikone 'Umetni provjeru teksta' na plutajuću traku za snimanje. Ovo će umetnuti isto 'Web_reg_find' funkcija u skriptu.
Ali bolje je da ovu funkciju umetnemo ručno jer ćemo imati bolju kontrolu uglavnom nad atributima.
Jasno smo razumjeli provjeru teksta, idemo sada na provjeru slika.
Provjera slike koristi se za provjeru prisutnosti određene slike u odgovoru. ' web_image_check ' funkcija se koristi za provjeru slike. Ova se funkcija mora staviti nakon zahtjeva (u odgovoru na koji očekujemo sliku).
Primjer ove funkcije:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Gdje je prvi atribut bilo koje suvislo ime, a drugi atribut (‘Src’) je ime / veza slike (pogledajte pomoć VuGen za dobivanje potpunog popisa atributa).
Komentari u VuGen Script
Komentari u VuGen skripti mogu se unositi tijekom snimanja, a također i ručno nakon snimanja skripte.
Tijekom snimanja kliknite na ‘Umetni komentar’ na plutajućoj traci za snimanje.
Unesite komentar (ovdje recite ‘Prijava’).
Nakon snimanja možemo vidjeti komentare u skripti kao što je prikazano u nastavku.
/* Login */ web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t6.inf', 'Mode=HTML',
U VuGenu se jedan redak može komentirati stavljanjem ‘//’ ispred retka kao što je prikazano dolje:
// web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com');
I više linija može se povezati stavljanjem '/ *' na početku i '* /' na kraju (kao što je prikazano dolje)
/* web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com'); */
Bilješka: U gore prikazanim primjerima komentirali smo funkcije kolačića ( web_add_cookie ). O funkcijama kolačića razgovarat ćemo kasnije u ovoj lekciji.
Dobra je praksa umetanje komentara u svaki korak tijekom snimanja jer će nam to pomoći da zahtjeve u skripti povežemo s korisničkim radnjama u aplikaciji.
Točka susreta u skripti VuGen
Ako imamo scenarij u kojem veći broj korisnika istovremeno izvršava radnju na aplikaciji (poput provjere rezultata) i ako istu moramo simulirati u našem testu izvedbe, možemo koristiti ‘točku susreta’.
'Tačka susreta' je jednostruka i jednostavna funkcija u VuGen skripti koja upućuje pokretač učitavanja (tijekom testa s više korisnika) da pričeka u određenom koraku u skripti dok svi Vuseri (koji izvršavaju skriptu) ne dođu do tog koraka, tako da da se sljedeći zahtjev može izvršiti istovremeno.
Sintaksa funkcije Rendezvous je:
lr_rendezvous(“MeaningfulName”);
Ova se funkcija može umetnuti tijekom snimanja, a također i ručno nakon snimanja skripte.
Pretpostavimo da želimo istodobno opteretiti korak plaćanja u našoj aplikaciji 'Web Tours'. Tijekom snimanja u tom koraku (prije slanja podataka o plaćanju), kliknite na ikonu 'Umetni sastanak' na plutajuću traku za snimanje.
I unesite naziv točke susreta (bilo koje suvislo ime).
Nakon snimanja, u scenariju možemo vidjeti funkciju randezvusa.
lr_rendezvous('Payment'); web_submit_data('reservations.pl_3', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t13.inf ', 'Mode= HTML ', ITEMDATA , 'Name= firstName ', 'Value= Jojo ', ENDITEM , 'Name= lastName ', 'Value= Bean ', ENDITEM , 'Name= address1 ', 'Value= 1st Lane , Down Street', ENDITEM , 'Name= address2 ', 'Value= 567123 ', ENDITEM , 'Name= pass1 ', 'Value= Jojo Bean ', ENDITEM , 'Name= creditCard ', 'Value= 123456789101 ', ENDITEM , 'Name= expDate ', 'Value= 0520 ', ENDITEM , 'Name= oldCCOption ', 'Value=', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= outboundFlight ', 'Value= 020 ;338;05/03/2018', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= returnFlight ', 'Value=', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= .cgifields ', 'Value= saveCC ', ENDITEM , 'Name= buyFlights.x ', 'Value= 63 ', ENDITEM , 'Name= buyFlights.y ', 'Value= 12 ', ENDITEM , LAST );
Sada kada pokrenemo ovu skriptu s više korisnika u Controlleru, skript će izvršiti Vusers neovisno, ali Vusers će pričekati na ovom koraku 'Plaćanja' dok svi (ili neki postotak Vusera definiranih u pravilima o sastanku) ne dosegnu ovaj korak nakon kojeg izvedu ovaj korak istodobno.
O pravilima susreta (opcije) vidjet ćemo u vodiču za Controller.
Zaključak
Do sada smo raspravljali o korelaciji i parametarizaciji u prethodnim vodičima i Transakcijama, provjerama teksta / slike, komentarima i mjestima susreta u ovom vodiču, pokrili smo i najvažnije metode poboljšanja skripti.
U našem sljedećem uputstvu vidjet ćemo još nekoliko izazova skriptiranja, zajedno s načinima kako ih riješiti.
=> Posjetite ovdje za kompletnu seriju vodiča za LoadRunner
Preporučena literatura
- Ispitivanje opterećenja pomoću HP LoadRunner vodiča
- Uvod u Micro Focus LoadRunner - Ispitivanje opterećenja pomoću vodiča br. 1 za LoadRunner
- Korelacija - Ispitivanje opterećenja pomoću LoadRunnera
- LoadRunner Vodič za početnike (besplatni 8-dnevni tečaj dubine)
- Analiza rezultata izvještaja i izvješća - Ispitivanje opterećenja pomoću LoadRunnera
- Testiranje izvedbe web usluga pomoću LoadRunner VuGen skriptiranja
- Razlika između LoadRunnera i Performance Centra
- Kako postaviti datoteke skripti LoadRunner VuGen i postavke runtimea