loadrunner transactions
kaj uporabiti za odpiranje datotek jar
Uvod v osnovne izboljšave skripta VuGen:
Raziskovali smo Korelacija v LoadRunnerju podrobno v naši prejšnji vadnici v tem Popolna vadnica za usposabljanje LoadRunner .
V zadnjih dveh vajah smo delali z obdelavo podatkov v skriptu VuGen (Korelacija in parametrizacija).
V tej vadnici LoadRunner bomo videli druge osnovne izboljšave (navedene spodaj), ki so potrebne za naš skript:
- Transakcije - za merjenje hitrosti in odzivnega časa uporabnikovih dejanj.
- Preverjanje besedil in slik - Za zagotovitev pravilnosti vrnjenega odgovora.
- Komentarji
- Točke srečanja - Da bi Vusers hkrati opravil nalogo.
=> Kliknite tukaj za celotno serijo vadnic LoadRunner
Kaj se boste naučili:
- Transakcije v skriptu VuGen
- Preverjanje besedila in slike v skriptu VuGen
- Komentarji v skriptu VuGen
- Točka srečanja v skriptu VuGen
- Zaključek
- Priporočeno branje
Transakcije v skriptu VuGen
Že samo predvajanje skriptov za delovanje bo samo obremenilo aplikacijo, vendar ne bo ničesar izmerilo. Končni cilj katerega koli izvedbenega skripta je vbrizgati obremenitev in izmeriti hitrost in odzivni čas uporabnikovih dejanj v aplikaciji.
Na primer ,koliko časa je trajalo iskanje izdelka, ko je v aplikaciji 100 uporabnikov, koliko poročil se ustvari v recimo 15 minutah itd. Za njihovo merjenje moramo transakcije vstaviti v skript VuGen (po testu lahko v rezultatih vidimo hitrost in odzivni čas teh transakcij).
„Transakcija je merjenje uporabnikovega dejanja (ali skupine uporabniških dejanj) v aplikaciji od konca do konca“.
Transakcije je mogoče vstaviti na dva načina:
- Med snemanjem
- Po snemanju (kjer v skript ročno vstavimo funkcije transakcije)
Vstavimo transakcijo za uporabniško dejanje »Prijava« v naši aplikaciji »Web Tours«.
V naši prvi vadnici smo videli, kako snemati uporabniška dejanja. Med snemanjem, potem ko na strani za prijavo vnesete »Uporabniško ime« in »Geslo«, tik preden kliknete gumb »Prijava«, na plavajoči vrstici za snemanje kliknite ikono »Vstavi začetek transakcije«.
VuGen zahteva ime transakcije. Vnesite katero koli smiselno ime. Tu smo podali 'Prijava', vendar je dobra praksa, če sledite konvenciji, kot je ta (številka transakcije, ime scenarija, dejanje uporabnika itd.): 01_WebTours_Launch 02_WebTours_Login (in tako naprej).
Zdaj kliknite na Gumb za prijavo.
Ko pridemo na domačo stran (glavno stran), na plavajoči snemalni vrstici kliknite ikono ‘Insert End Transaction’ (Vstavi končno transakcijo).
Izberite transakcijo, ki jo želimo končati (transakcija ‘Prijava’ tukaj).
Ustavite snemanje in si oglejte ustvarjeni skript. Vidimo, da sta funkciji za začetek in konec transakcije vstavljeni v skript (označeno z rumeno) in so med te funkcije priložene vse zahteve, ki ustrezajo uporabniškemu dejanju »Prijava«.
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 funkcij 'začetek transakcije' in 'konec transakcije' je precej preprosta. Oba imata ime transakcije kot prvi argument. Funkcija „končaj transakcijo“ ima še en atribut - „LR_AUTO“, to VuGenu nalaga, da samodejno posreduje ali neuspešno izvede transakcijo (namesto da izrecno določimo pogoj za prehod ali neuspeh).
Če tekač nalaganja naleti na napake pri izvrševanju zahtev znotraj transakcije, potem transakcija ne uspe, sicer transakcijo prenese.
Preverjanje besedila in slike v skriptu VuGen
Preverjanje besedila se uporablja za preverjanje, ali je odgovor, vrnjen na zahtevo, pravilen ali ne. V vaji ‘Korelacija’ smo videli, da VuGen včasih morda ne bo pokazal nobene napake, vendar vrnjeni odgovor morda ni pravilen. Da bi zagotovili, da je odgovor pravilen, uporabljamo besedilna preverjanja.
Na primer, ko se prijavimo v spletno aplikacijo Tours, gremo na domačo stran. V skriptu preverimo, ali smo ob prijavi dobili pravi odgovor (domača stran) ali ne.
Za to moramo v odgovoru (tukaj na domači strani) določiti nekaj besedila, ki lahko pove, ali je odgovor pravilen ali ne. 'Dobrodošli' je eno takšnih besedil.
Za preverjanje besedila uporabljamo „ web_reg_find ' tik pred zahtevo.
Sintaksa te funkcije je:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Tu imamo tri atribute (za popoln seznam atributov glejte pomoč VuGen):
„Besedilo“ - uporablja se za določanje besedila, ki ga želite iskati.
‘SaveCount’ - shrani število ponovitev določenega besedila v parameter, ki ga določimo.
'Fail' - vzame eno od dveh vrednosti -'Found 'in' NotFound 'in skript ustrezno odpove.
Tako funkcija web_reg_find (“Text = Welcome”, ”SaveCount = WelcomeCount”, ”Fail = NotFound”, LAST) v odgovoru poišče besedilo „Dobrodošli“ in shrani število pojavitev v parameter „WelcomeCount“ (in odpove skript, če besedila ni mogoče najti).
Skript je videti tako:
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 );
Zdaj, če ponovno predvajamo skript, bomo dobili zahtevo za prijavo (glejte v dnevniku releja), ker VuGen v odgovoru ni našel besedila, ki smo ga določili. To pa zato, ker nismo dobili pravilne domače strani (kot je prikazano v 'pregledovalniku časa izvajanja').
Zdaj popravimo naš skript (povežite userSession) in znova predvajajte skript.
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 );
Tokrat v dnevniku ponovnega predvajanja ne vidimo nobene napake, vidimo pa sporočilo, da je bilo naše preverjanje besedila uspešno. Torej smo tokrat dobili pravilen odziv (saj to potrjuje tudi 'runtime viewer').
Preverjanje besedila lahko kombiniramo s transakcijami in VuGen posreduje transakcijo, če je preverjanje besedila uspešno, in transakcijo ne uspe, če preverjanje besedila ne uspe.
To je prikazano spodaj:
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); }
Tu smo uporabili stavek 'if' z atributom 'SaveCount'. Parameter ‘WelcomeCount’ (ki shrani število ponovitev besedila) se uporablja kot pogoj za posredovanje / neuspeh transakcije. Atributa 'LR_PASS' in 'LR_FAIL' transakcijskih funkcij se uporabljata za izrecno posredovanje in neuspeh (oziroma neuspeh) transakcije.
Opomba: Tu smo uporabili dve novi funkciji - 'Atoi' in ‘Lr_eval_string’ . O teh funkcijah bomo govorili kasneje.
Nekaj več informacij o kombinaciji atributov funkcije 'web_reg_find':
# 1) Če se uporablja samo atribut „Besedilo“ -
Primer: web_reg_find (“Besedilo = Dobrodošli”, ZADNJE) -
VuGen išče besedilo in skript ne uspe, če je iskanje neuspešno.
# 2) Če se uporabljajo samo atributa 'Text' in 'SaveCount' -
Primer: web_reg_find (“Text = Welcome”, “SaveCount = WelcomeCount”, LAST) - VuGen išče besedilo in shrani število pojavitev (tudi če je nič) v določen parameter (ne uspe v skriptu, če je iskanje neuspešno ).
# 3) Če se uporabljajo samo atributa 'Text' in 'Fail' -
Primer: web_reg_find ('Besedilo = Dobrodošli', 'Fail = NotFound', LAST) - VuGen išče besedilo in ne uspe v skriptu, če je besedilo najdeno / ni najdeno.
Preverjanje besedila lahko med snemanjem vstavite tudi z uporabo ikone ‘Insert text check’ na plavajoči snemalni vrstici. To bo vstavilo isto ‘Web_reg_find’ funkcijo v skriptu.
Toda bolje je, da to funkcijo vstavimo ročno, saj bomo imeli boljši nadzor predvsem nad atributi.
Preverjanje besedila smo jasno razumeli, zdaj pa pojdimo na preverjanje slik.
Preverjanje slike se uporablja za preverjanje prisotnosti določene slike v odgovoru. ' web_image_check ’ funkcija se uporablja za preverjanje slike. To funkcijo je treba postaviti po zahtevi (v odgovor na katero pričakujemo sliko).
Primer te funkcije:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Kjer je prvi atribut katero koli smiselno ime, drugi atribut ('Src') pa je ime / povezava slike (glejte pomoč VuGen, da dobite celoten seznam atributov).
Komentarji v skriptu VuGen
Komentarje v skriptu VuGen lahko vnesete med snemanjem in tudi ročno po snemanju skripta.
Med snemanjem kliknite ‘Vstavi komentar’ na plavajoči snemalni vrstici.
Vnesite komentar (tukaj recite »Prijava«).
Po snemanju lahko v skriptu vidimo komentarje, kot je prikazano spodaj.
/* 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',
V VuGenu lahko posamezno vrstico komentirate tako, da samo postavite '//' pred vrstico, kot je prikazano spodaj:
// 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');
In več vrstic je mogoče povezati tako, da v začetek vstavite »/ *«, na koncu pa »* /« (kot je prikazano spodaj)
/* 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'); */
Opomba: V zgornjih primerih smo komentirali funkcije piškotkov ( web_add_cookie ). O funkcijah piškotkov bomo govorili kasneje v tej vadnici.
Dobra praksa je, da v vsakem koraku med snemanjem vstavite komentarje, ker nam bo pomagal povezati zahteve v skriptu z uporabniškimi dejanji v aplikaciji.
Točka srečanja v skriptu VuGen
Če imamo scenarij, ko večje število uporabnikov hkrati izvede dejanje v aplikaciji (na primer preverjanje rezultatov) in če moramo to simulirati v našem preizkusu učinkovitosti, lahko uporabimo 'točko srečanja'.
'Točka srečanja' je enostavna in preprosta funkcija v skriptu VuGen, ki vodilu nalaganja (med preskusom z več uporabniki) počaka, da v določenem koraku v skriptu počaka, dokler vsi uporabniki (ki izvajajo skript) ne pridejo do tega koraka. da se lahko naslednja zahteva izvede hkrati.
Sintaksa funkcije Rendezvous je:
lr_rendezvous(“MeaningfulName”);
To funkcijo lahko vstavite med snemanjem in tudi ročno po snemanju skripta.
Recimo, da želimo istočasno obremeniti plačilni korak v naši aplikaciji 'Web Tours'. Med snemanjem v tem koraku (preden oddate podatke o plačilu) kliknite ikono ‘Insert Rendezvous’ na plavajoči snemalni vrstici.
In vnesite ime točke srečanja (katero koli smiselno ime).
Po snemanju lahko v skriptu vidimo tako funkcijo srečanja.
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 );
Zdaj, ko zaženemo ta skript z več uporabniki v Controllerju, ga bodo skript izvedli neodvisno, vendar bodo uporabniki počakali na tem koraku 'Plačilo', dokler vsi (ali določen odstotek uporabnikov, opredeljenih v pravilniku o srečanjih), ne bodo dosegli tega koraka, po katerem bodo izvedli ta korak hkrati.
Več o politiki srečanj (možnosti) bomo videli v vadnici za krmilnik.
Zaključek
Do zdaj smo o korelaciji in parametrizaciji razpravljali v prejšnjih vajah in transakcijah, preverjanju besedil / slik, komentarjih in točkah srečanja v tej vadnici, obravnavali pa smo tudi najpomembnejše načine izboljšanja skriptov.
V naši naslednji vadnici bomo videli še nekaj skriptnih izzivov, skupaj z načini za njihovo reševanje.
=> Obiščite tukaj za celotno serijo vadnic LoadRunner
PREV Vadnica | NASLEDNJA Vadnica
Priporočeno branje
- Testiranje obremenitve z vadnicami HP LoadRunner
- Uvod v Micro Focus LoadRunner - Testiranje obremenitve z vadnico # 1 za LoadRunner
- Korelacija - preskušanje obremenitve z LoadRunnerjem
- LoadRunnerjeva vadnica za začetnike (brezplačen 8-dnevni poglobljeni tečaj)
- Analiza rezultatov preskusov in poročila - Preskušanje obremenitve z LoadRunnerjem
- Testiranje učinkovitosti spletnih storitev s pomočjo skriptov LoadRunner VuGen
- Razlika med LoadRunner in Performance Center
- Kako nastaviti datoteke skripta LoadRunner VuGen in nastavitve izvajalnega okolja