loadrunner transactions
beste gratis DVD til AVI-omformer
Introduksjon til grunnleggende forbedringer av VuGen Script:
Vi utforsket Korrelasjon i LoadRunner i detalj i vår forrige opplæring i dette Fullfør opplæringsveiledninger for LoadRunner .
I de to siste veiledningene jobbet vi med å håndtere data i et VuGen-skript (Correlation and Parameterization).
I denne LoadRunner-opplæringen vil vi se de andre grunnleggende forbedringene (oppført nedenfor) som kreves for skriptet vårt:
- Transaksjoner - Å måle hastighet og responstid for brukerhandlingene.
- Tekst- og bildesjekker - For å sikre at svaret som returneres er riktig.
- Kommentarer
- Møtepoeng - Å få Vusers til å utføre en oppgave samtidig.
=> Klikk her for fullstendig serie med LoadRunner-veiledninger
Hva du vil lære:
- Transaksjoner i VuGen Script
- Tekst- og bildekontroller i VuGen-skript
- Kommentarer i VuGen Script
- Rendezvous Point i VuGen Script
- Konklusjon
- Anbefalt lesing
Transaksjoner i VuGen Script
Bare avspilling av ytelsesskript vil bare legge belastningen på applikasjonen, men måler ikke noe. Målet med ethvert ytelseskript er å injisere belastning og måle hastigheten og responstiden for brukerhandlinger på applikasjonen.
For eksempel ,hvor lang tid et produktsøk tok når 100 brukere er på applikasjonen, hvor mange rapporter som genereres i løpet av si 15 minutter og så videre. For å måle disse må vi sette inn transaksjoner i et VuGen-skript (etter testen kan vi se hastigheten og responstiden for disse transaksjonene i resultatene).
‘En transaksjon er en slutt-til-mål-måling av en brukerhandling (eller en gruppe brukerhandlinger) på en applikasjon’.
Transaksjoner kan settes inn på to måter:
- Under opptak
- Etter innspilling (hvor vi setter inn transaksjonsfunksjonene manuelt i skriptet)
La oss sette inn transaksjon for brukerinnstillingen 'Login' i applikasjonen 'Web Tours'.
I vår første opplæring så vi hvordan du registrerer brukerhandlinger. Etter å ha skrevet inn ‘Brukernavn‘og‘ Passord ’på innloggingssiden, mens du tar opp, klikker du på‘ Sett inn starttransaksjon ’-ikonet på den flytende opptaksfeltet, før du klikker på‘ Logg inn ’.
VuGen ber om transaksjonsnavn. Skriv inn et hvilket som helst meningsfylt navn. Vi har gitt ‘Login’ her, men det er en god praksis å følge en konvensjon som denne (transaksjonsnummer, scenarionavn, brukerhandling osv.): 01_WebTours_Launch 02_WebTours_Login (og så videre).
Klikk nå på Påloggingsknapp.
Når vi kommer til hjemmesiden (hovedsiden), klikker du på ikonet 'Sett inn sluttransaksjon' på den flytende opptaksfeltet.
Velg transaksjonen vi vil avslutte (‘Login’ transaksjon her).
Stopp innspillingen og se det genererte skriptet. Vi kan se at transaksjonsstart- og transaksjonsendefunksjoner settes inn i skriptet (uthevet i gult), og alle forespørsel (e) som tilsvarer ‘Login’ brukerhandlingen er innelukket mellom disse funksjonene.
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 til funksjonene 'transaksjonsstart' og 'transaksjonsslut' er ganske enkel. Begge har transaksjonsnavn som det første argumentet. Funksjonen 'slutt transaksjon' har en attributt til - 'LR_AUTO', dette instruerer VuGen om å passere eller mislykkes en transaksjon automatisk (i stedet for at vi eksplisitt spesifiserer en betingelse for et pass eller fail).
Hvis lastløperen støter på feil i utførelsen av forespørsler i en transaksjon, mislykkes den transaksjonen, ellers overfører den transaksjonen.
Tekst- og bildekontroller i VuGen-skript
Tekstkontroller brukes til å verifisere om svaret som returneres for forespørselen, er riktig eller ikke. I 'Correlation' -veiledningen så vi at VuGen noen ganger ikke viser noen feil, men det returnerte svaret er kanskje ikke det riktige. Så for å sikre at svaret er riktig, bruker vi tekstkontroller.
For eksempel, når vi logger inn på web Tours-applikasjonen, går vi til hjemmesiden. La oss kontrollere i skriptet at vi får riktig svar (hjemmesiden) eller ikke når vi logger på.
For å gjøre dette må vi identifisere noe tekst i svaret (hjemmesiden her) som kan si om svaret er riktig eller ikke. ‘Velkommen’ er en slik tekst.
For tekstkontroll bruker vi ‘ web_reg_find ’ funksjon like før forespørselen.
Syntaksen til denne funksjonen er:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Her har vi tre attributter (se VuGen-hjelp for å få den komplette listen over attributter):
‘Tekst’- Brukes til å spesifisere hvilken tekst du vil søke etter.
‘SaveCount’ - Lagrer antall forekomster av den spesifiserte teksten i en parameter som vi spesifiserer.
‘Fail’ - Tar en av de to verdiene -‘Found ’og‘ NotFound ’og mislykkes skriptet tilsvarende.
Så funksjonen, web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', 'Fail = NotFound', SISTE) søker etter teksten 'Welcome' i svaret og lagrer antall forekomster i parameteren 'WelcomeCount' (og mislykkes i skriptet hvis teksten ikke blir funnet).
Manuset ser slik ut:
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 );
Nå hvis vi spiller av skriptet på nytt, får vi en feil for påloggingsforespørselen (se i reléloggen) fordi VuGen ikke fant teksten vi spesifiserte, i svaret. Dette fordi vi ikke fikk den riktige hjemmesiden (som vist i ‘run-time viewer’).
La oss nå korrigere skriptet vårt (korrelere userSession) og spille skriptet på nytt.
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 gangen ser vi ingen feil i omspillingsloggen, men ser en melding om at tekstsjekken var vellykket. Så vi fikk riktig respons denne gangen (da det bekreftes av ‘runtime viewer’).
Vi kan kombinere tekstkontroller med transaksjoner og få VuGen til å overføre en transaksjon hvis tekstkontrollen er vellykket, og mislykkes i en transaksjon hvis en tekstkontroll mislykkes.
Dette vises 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 brukt ‘if statement’ her med ‘SaveCount’ attributt. Parameteren 'WelcomeCount' (som lagrer antall forekomster av teksten) brukes som en betingelse for å overføre / mislykkes i transaksjonen. 'LR_PASS' og 'LR_FAIL' attributter for transaksjonsfunksjoner brukes til å eksplisitt overføre og mislykkes (henholdsvis) en transaksjon.
Merk: Vi brukte to nye funksjoner her - ‘Atoi’ og ‘Lr_eval_string’ . Vi skal snakke om disse funksjonene senere.
Noe mer informasjon om kombinasjonen av funksjonene “web_reg_find”:
# 1) Hvis bare 'Tekst' -attributtet brukes -
Eksempel: web_reg_find (“Text = Welcome”, SISTE) -
VuGen søker etter teksten og mislykkes i skriptet hvis søket mislykkes.
Nr. 2) Hvis bare attributtene 'Tekst' og 'Lagre antall' brukes -
Eksempel: web_reg_find (“Text = Welcome”, “SaveCount = WelcomeCount”, SISTE) - VuGen søker etter teksten og lagrer antall forekomster (selv om den er null) i den angitte parameteren (mislykkes ikke skriptet hvis søket mislykkes ).
# 3) Hvis bare attributtene 'Tekst' og 'Mislykket' brukes -
Eksempel: web_reg_find (“Text = Welcome”, “Fail = NotFound”, SISTE) - VuGen søker etter teksten og mislykkes i skriptet hvis teksten blir funnet / ikke funnet.
Tekstkontroller kan også settes inn under opptak ved å bruke ikonet 'Sett inn tekstkontroll' på den flytende opptaksfeltet. Dette vil sette inn det samme ‘Web_reg_find’ funksjon i skriptet.
Men det er bedre at vi setter inn denne funksjonen manuelt, da vi hovedsakelig vil ha bedre kontroll over attributtene.
Vi har forstått tekstkontroll tydelig. La oss nå gå til bildekontroll.
Bildesjekk brukes til å verifisere tilstedeværelsen av et spesifisert bilde i et svar. ‘ web_image_check ’ funksjonen brukes til bildesjekk. Denne funksjonen må settes etter forespørselen (i svaret som vi forventer bildet).
Eksempel på denne funksjonen:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Der det første attributtet er et hvilket som helst meningsfylt navn, og det andre attributtet (‘Src’) er navnet på bildet / lenken (se VuGen-hjelp for å få en fullstendig liste over attributter).
Kommentarer i VuGen Script
Kommentarer i et VuGen-skript kan legges inn under opptak og også manuelt etter at skriptet er spilt inn.
Klikk på under opptaket ‘Sett inn kommentar’ ikonet på den flytende opptaksfeltet.
Skriv inn kommentaren (si ‘Logg inn’ her).
Etter innspilling kan vi se kommentarene i skriptet 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 å bare sette ‘//’ 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 kobles til ved å sette '/ *' i starten og '* /' til slutt (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'); */
Merk: I eksemplene vist ovenfor kommenterte vi informasjonskapselfunksjonene ( web_add_cookie ). Vi vil snakke om informasjonskapselfunksjoner senere i denne opplæringsserien.
Det er en god praksis å sette inn kommentarer i hvert trinn under opptaket, fordi det vil hjelpe oss å knytte forespørslene i skriptet til brukerhandlingene i applikasjonen.
Rendezvous Point i VuGen Script
Hvis vi har et scenario der et større antall brukere utfører en handling samtidig på applikasjonen (som å sjekke resultater), og hvis vi må simulere det samme i ytelsestesten vår, kan vi bruke et 'Rendezvous-punkt'.
Et 'Rendezvous point' er en enkelt og enkel funksjon i et VuGen-skript som instruerer load runner (under en test med flere brukere) om å vente på et spesifisert trinn i skriptet til alle Vusers (utfører skriptet) kommer til det trinnet at etterfølgende forespørsel kan utføres samtidig.
Syntaksen for Rendezvous-funksjonen er:
lr_rendezvous(“MeaningfulName”);
Denne funksjonen kan settes inn under opptak og også manuelt etter at manuset er spilt inn.
Anta at vi vil legge inn betalingstrinnet i vår ‘Web Tours’ applikasjon samtidig. Under innspillingen på det trinnet (før du sender inn betalingsdetaljene), klikker du på 'Sett inn møte' -ikonet på den flytende opptaksfeltet.
Og skriv inn navnet på stevnemøtet (et hvilket som helst meningsfylt navn).
Etter innspilling kan vi se rendezvous-funksjonen i skriptet slik.
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 kjører dette skriptet med flere brukere i Controller, vil skriptet bli utført av Vusers uavhengig, men Vusers vil vente på dette betalingstrinnet til alle (eller noen prosentandel av Vusers definert i Rendezvous-policyen) når dette trinnet hvoretter de utfører dette trinnet samtidig.
Vi vil se mer om rendezvous-policyen (opsjoner) i Controller-opplæringen.
Konklusjon
Inntil nå har vi diskutert korrelasjon og parametrisering i forrige opplæring og transaksjoner, tekst- / bildekontroller, kommentarer og møteplasser i denne opplæringen, vi har også dekket de viktigste metodene for manusforbedring.
I vår neste opplæring vil vi se noen flere skriptutfordringer sammen med måtene å håndtere dem på.
=> Besøk her for en komplett serie med LoadRunner-opplæringsprogrammer
PREV Opplæring | NESTE veiledning
Anbefalt lesing
- Lastetesting med HP LoadRunner-veiledninger
- Introduksjon til Micro Focus LoadRunner - Load Testing with LoadRunner Tutorial # 1
- Korrelasjon - Lastetesting med LoadRunner
- LoadRunner-veiledning for nybegynnere (gratis 8-dagers dybdekurs)
- Testresultatanalyse og rapporter - Lastetesting med LoadRunner
- Nettjenestetestets ytelsestesting ved bruk av LoadRunner VuGen Scripting
- Forskjellen mellom LoadRunner og Performance Center
- Hvordan sette opp LoadRunner VuGen-skriptfiler og kjøretidsinnstillinger