loadrunner transactions
gratis optimeringssoftware til Windows 7
Introduktion til grundlæggende forbedringer af VuGen Script:
Vi udforskede Korrelation i LoadRunner i detaljer i vores tidligere tutorial i dette Komplette LoadRunner-træningsvejledninger .
I de sidste to selvstudier arbejdede vi på håndtering af data i et VuGen-script (Korrelation og parametrisering).
I denne LoadRunner-selvstudie ser vi de andre grundlæggende forbedringer (angivet nedenfor), der er nødvendige for vores script:
- Transaktioner - For at måle hastighed og responstid for brugerhandlingerne.
- Tekst- og billedkontrol - For at sikre, at det returnerede svar er korrekt.
- Kommentarer
- Rendezvous point - At få Vusere til at udføre en opgave samtidigt.
=> Klik her for en komplet serie af LoadRunner-vejledninger
Hvad du vil lære:
- Transaktioner i VuGen Script
- Tekst- og billedkontrol i VuGen Script
- Kommentarer i VuGen Script
- Rendezvous Point i VuGen Script
- Konklusion
- Anbefalet læsning
Transaktioner i VuGen Script
Den blotte genafspilning af performance-scripts lægger kun belastning på applikationen, men måler ikke noget. Det endelige mål med ethvert performance script er at injicere belastning og måle hastigheden og responstiden for brugerhandlinger på applikationen.
For eksempel ,hvor lang tid en produktsøgning tog, når 100 brugere er på applikationen, hvor mange rapporter der genereres i løbet af f.eks. 15 minutter og så videre. For at måle disse skal vi indsætte transaktioner i et VuGen-script (efter testen kan vi se hastigheden og responstiden for disse transaktioner i resultaterne).
'En transaktion er en mål-til-slut-måling af en brugerhandling (eller en gruppe brugerhandlinger) på en applikation'.
Transaktioner kan indsættes på to måder:
- Under optagelse
- Efter optagelse (hvor vi manuelt indsætter transaktionsfunktionerne i scriptet)
Lad os indsætte transaktion for 'Login' brugerhandling på vores 'Web Tours' applikation.
I vores første vejledning så vi, hvordan man registrerer brugerhandlinger. Når du har optaget 'Brugernavn' og 'Adgangskode' på login-siden, skal du klikke på ikonet 'Indsæt Start transaktion' på den flydende optagelseslinje, lige før du klikker på knappen 'Login'.
VuGen beder om transaktionsnavn. Indtast ethvert meningsfuldt navn. Vi har givet 'Login' her, men det er en god praksis at følge en konvention som denne (transaktionsnummer, scenarionavn, brugerhandling osv.): 01_WebTours_Launch 02_WebTours_Login (og så videre).
Klik nu på Login-knap.
Når vi når startsiden (hovedsiden), skal du klikke på ikonet 'Indsæt sluttransaktion' på den flydende optagelinje.
Vælg den transaktion, som vi vil afslutte ('Login'-transaktion her).
Stop optagelsen, og se det genererede script. Vi kan se, at transaktionsstart- og transaktionsslutfunktioner er indsat i scriptet (fremhævet med gult), og alle de anmodninger, der svarer til 'Login'-brugerhandlingen, er indesluttet mellem disse funktioner.
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 );
Syntaksen for funktionerne 'transaktionsstart' og 'transaktionsslut' er ret enkel. Begge har transaktionsnavn som det første argument. Funktionen 'afslut transaktion' har endnu en attribut - 'LR_AUTO', dette instruerer VuGen om at videregive eller mislykkes en transaktion automatisk (i stedet for at vi eksplicit angiver en betingelse for et pass eller fail).
Hvis load runner støder på fejl i udførelse af anmodninger inden for en transaktion, fejler den transaktionen, ellers overfører den transaktionen.
Tekst- og billedkontrol i VuGen Script
Tekstkontrol bruges til at kontrollere, om svaret, der returneres til anmodningen, er korrekt eller ej. I 'Correlation' -studiet så vi, at VuGen undertiden muligvis ikke viser nogen fejl, men det returnerede svar er muligvis ikke det rigtige. Så for at sikre, at svaret er korrekt, bruger vi tekstkontrol.
For eksempel, når vi logger ind på web Tours-applikationen, går vi til startsiden. Lad os kontrollere i scriptet, at vi får det rigtige svar (startside) eller ej, når vi logger ind.
For at gøre dette skal vi identificere en tekst i svaret (hjemmeside her), der kan sige, om svaret er korrekt eller ej. 'Velkommen' er en sådan tekst.
Til tekstkontrol bruger vi ' web_reg_find ' funktion lige før anmodningen.
Syntaksen for denne funktion er:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Her har vi tre attributter (se VuGen-hjælp for at få den komplette attributliste):
‘Tekst’- Bruges til at angive, hvilken tekst der skal søges efter.
'SaveCount' - Gemmer antallet af forekomster af den angivne tekst i en parameter, som vi angiver.
'Fail' - tager en af de to værdier -'Found 'og' NotFound 'og mislykkes scriptet i overensstemmelse hermed.
Så funktionen, web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', 'Fail = NotFound', LAST) søger efter teksten 'Welcome' i svaret og gemmer antallet af forekomster i parameteren 'WelcomeCount' (og mislykkes scriptet, hvis teksten ikke findes).
Scriptet ser sådan ud:
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 );
Hvis vi nu afspiller scriptet igen, får vi en fejl til loginanmodningen (se i relæloggen), fordi VuGen ikke fandt den tekst, vi specificerede, i svaret. Dette skyldes, at vi ikke fik den rigtige startside (som vist i 'run-time viewer').
Lad os nu rette vores script (korrelere userSession) og afspille scriptet igen.
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 );
Denne gang ser vi ikke nogen fejl i gentagelsesloggen, men ser en meddelelse om, at vores tekstkontrol var vellykket. Så vi fik det korrekte svar denne gang (da det bekræftes af 'runtime viewer').
Vi kan kombinere tekstkontrol med transaktioner og få VuGen til at gennemføre en transaktion, hvis tekstkontrollen er vellykket og mislykkes en transaktion, hvis en tekstkontrol mislykkes.
Dette er vist nedenfor:
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); }
Vi har brugt 'if statement' her med 'SaveCount' attribut. Parameteren 'WelcomeCount' (som gemmer antallet af forekomster af teksten) bruges som en betingelse for at overføre / mislykkes transaktionen. 'LR_PASS' og 'LR_FAIL' attributter for transaktionsfunktioner bruges til eksplicit at videregive og mislykkes (henholdsvis) en transaktion.
Bemærk: Vi brugte to nye funktioner her - 'Atoi' og 'Lr_eval_string' . Vi skal tale om disse funktioner senere.
Nogle flere oplysninger om kombinationen af 'web_reg_find' funktionsattributter:
# 1) Hvis kun 'Tekst' attribut bruges -
Eksempel: web_reg_find (“Text = Welcome”, SIDSTE) -
VuGen søger efter teksten og fejler scriptet, hvis søgningen mislykkes.
# 2) Hvis kun 'Tekst' og 'SaveCount' attributter bruges -
Eksempel: web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', LAST) - VuGen søger efter teksten og gemmer antallet af forekomster (selvom den er nul) i den angivne parameter (mislykkes ikke scriptet, hvis søgningen mislykkes ).
# 3) Hvis kun 'Tekst' og 'Fejl' attributter bruges -
Eksempel: web_reg_find (“Text = Welcome”, “Fail = NotFound”, LAST) - VuGen søger efter teksten og fejler scriptet, hvis teksten findes / ikke findes.
Tekstkontrol kan også indsættes under optagelse ved hjælp af ikonet 'Indsæt tekstkontrol' på den flydende optagelinje. Dette vil indsætte det samme 'Web_reg_find' funktion i scriptet.
Men det er bedre, at vi indsætter denne funktion manuelt, da vi primært har bedre kontrol over attributterne.
Vi har forstået tekstkontrol tydeligt. Lad os nu gå til billedkontrol.
Billedkontrol bruges til at verificere tilstedeværelsen af et specificeret billede i et svar. ' web_billede_kontrol ' funktion bruges til billedkontrol. Denne funktion skal placeres efter anmodningen (i svaret som vi forventer billedet).
Eksempel på denne funktion:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Hvor den første attribut er et meningsfuldt navn, og den anden attribut ('Src') er billednavnet / linket (se VuGen-hjælp for at få den komplette liste over attributter).
Kommentarer i VuGen Script
Kommentarer i et VuGen-script kan indtastes under optagelse og også manuelt, når scriptet er optaget.
Under optagelse skal du klikke på 'Indsæt kommentar' ikon på den flydende optagelseslinje.
Indtast kommentaren (sig 'Login' her).
Efter optagelse kan vi se kommentarerne i scriptet som vist nedenfor.
/* 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',
I VuGen kan en enkelt linje kommenteres ved blot at sætte '//' foran linjen som vist nedenfor:
// 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');
Og flere linjer kan forbindes ved at sætte '/ *' i starten og '* /' i slutningen (som vist nedenfor)
/* 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'); */
Bemærk: I eksemplerne vist ovenfor kommenterede vi cookiefunktionerne ( web_add_cookie ). Vi vil tale om cookiefunktioner senere i denne tutorial-serie.
Det er en god praksis at indsætte kommentarer på hvert trin under optagelsen, fordi det hjælper os med at relatere anmodningerne i scriptet til brugerhandlingerne i applikationen.
Rendezvous Point i VuGen Script
Hvis vi har et scenarie, hvor et større antal brugere udfører en handling samtidigt på applikationen (som at kontrollere resultater), og hvis vi skal simulere det samme i vores præstationstest, kan vi bruge et 'Rendezvous-punkt'.
Et 'Rendezvous-punkt' er en enkelt og enkel funktion i et VuGen-script, der instruerer load runner (under en test med flere brugere) til at vente på et bestemt trin i scriptet, indtil alle Vusers (udførelse af scriptet) kommer til dette trin, så at efterfølgende anmodning kan udføres samtidigt.
Syntaksen for Rendezvous-funktionen er:
lr_rendezvous(“MeaningfulName”);
Denne funktion kan indsættes under optagelse og også manuelt, når scriptet er optaget.
Antag, at vi vil lægge en samtidig belastning på betalingstrinnet i vores 'Web Tours' -applikation. Under optagelse på det trin (inden du indsender betalingsoplysninger), skal du klikke på ikonet 'Indsæt møde' på den flydende optagelinje.
Og indtast navnet på stævnestedet (ethvert meningsfuldt navn).
Efter optagelse kan vi se rendezvous-funktionen i scriptet sådan.
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 );
Når vi nu kører dette script med flere brugere i Controller, udføres scriptet uafhængigt af Vusers, men Vusers venter på dette 'betaling'-trin, indtil alle (eller en procentdel af Vusers defineret i Rendezvous-politik) når dette trin, hvorefter de udfører dette trin samtidigt.
Vi vil se mere om rendezvous-politikken (valgmuligheder) i Controller-selvstudiet.
Konklusion
Indtil nu har vi diskuteret korrelation og parametrisering i de tidligere tutorials og transaktioner, tekst / billedkontrol, kommentarer og Rendezvous-punkter i denne tutorial, vi har også dækket de vigtigste script-forbedringsmetoder.
I vores næste vejledning vil vi se nogle flere scripting-udfordringer sammen med måderne at håndtere dem på.
=> Besøg her for en komplet serie af LoadRunner-vejledninger
PREV-vejledning | NÆSTE vejledning
Anbefalet læsning
- Load Testing med HP LoadRunner-vejledninger
- Introduktion til Micro Focus LoadRunner - LoadRing med LoadRunner Tutorial # 1
- Korrelation - Load Testing med LoadRunner
- LoadRunner-selvstudie til begyndere (gratis 8-dages dybdegående kursus)
- Testresultatanalyse og rapporter - Load Testing med LoadRunner
- Test af webtjenester præstation ved hjælp af LoadRunner VuGen Scripting
- Forskellen mellem LoadRunner og Performance Center
- Sådan opsættes LoadRunner VuGen-scriptfiler og kørselsindstillinger