LoadRunner-Transaksjoner, Tekst-Og Bildekontroller, Kommentarer Og Rendezvous-Poeng
Introduksjon til grunnleggende forbedringer Av VuGen-Skriptet:
vi utforsket Korrelasjon I LoadRunner i detalj i vår forrige opplæring i Denne Komplette LoadRunner-Opplæringsopplæringen.
i de to siste opplæringene jobbet vi med å håndtere data i Et VuGen-skript (Korrelasjon og Parameterisering).
i Denne LoadRunner-opplæringen ser vi de andre grunnleggende forbedringene (oppført nedenfor) som kreves for skriptet vårt:
- Transaksjoner – for å måle hastighet og responstid for brukerens handlinger.
- Tekst-og Bildesjekker – for å sikre at svaret som returneres er riktig.
- Rendezvous poeng – å gjøre Vusers utføre en oppgave samtidig.
=> Klikk Her For Komplett Serie Av Loadrunner Tutorials
Transaksjoner I VuGen Script
bare replay av ytelse skript vil bare sette en belastning på programmet, men måler ikke noe. Det endelige målet for noen ytelse script er å injisere last og måle hastigheten og responstiden for brukerhandlinger på programmet.
for eksempel, hvor mye tid et produktsøk tok når 100 brukere er på programmet, hvor mange rapporter genereres i en tid på si 15 minutter og så videre. For å måle disse må vi sette inn transaksjoner i Et VuGen-skript (etter testen kan vi se frekvensen og responstiden for disse transaksjonene i resultatene).
‘en transaksjon er en ende-til-ende-måling av en brukerhandling (eller en gruppe brukerhandlinger) i et program’.
Transaksjoner kan settes inn på to måter:
- Under Opptak
- etter Opptak (der vi manuelt setter inn transaksjonsfunksjonene i skriptet)
La oss sette inn transaksjon for’ Logg inn ‘brukerhandling på vår’ Web Tours ‘ søknad.
i vår første veiledning så vi hvordan du tar opp brukerhandlinger. Under opptak, etter å ha skrevet Inn ‘Brukernavn ‘og’ Passord ‘På Påloggingssiden, like før du klikker På’ Logg inn ‘- knappen, klikker du på’ Sett Inn Start Transaksjon ‘ – ikonet på den flytende opptakslinjen.
VuGen ber om transaksjonsnavn. Skriv inn et meningsfylt navn. Vi har gitt ‘Logg inn’ her, men det er en god praksis å følge en konvensjon som dette(transaksjonsnummer, Scenarionavn, brukerhandling etc.): 01_WebTours_Launch 02_WebTours_Login (og så videre).
klikk Nå På Logg inn-knappen.
Når vi kommer til hjemmesiden (hovedsiden), klikk på ‘Sett Inn Slutttransaksjon’ – ikonet på den flytende opptakslinjen.
Velg transaksjonen som vi ønsker å avslutte (‘Logg inn’ transaksjon her).
Stopp opptaket og se det genererte skriptet. Vi kan se at transaksjonsstart og transaksjonssluttfunksjoner settes inn i skriptet(uthevet i gult), og all forespørsel (er) som svarer til ‘Logg inn’ brukerhandling er vedlagt 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 ‘transaksjonsslutt’ er ganske enkel. Begge har transaksjonsnavn som det første argumentet. ‘End transaction’ – funksjonen har et annet attributt – ‘LR_AUTO’, dette instruerer VuGen om Å Passere eller Mislykkes en transaksjon automatisk (i stedet for at vi eksplisitt angir en betingelse for et pass eller mislykkes).
hvis load runner møter noen feil i å utføre forespørsler i en transaksjon så mislykkes transaksjonen ellers passerer transaksjonen.
Tekst – Og Bildesjekker I VuGen Script
Tekstsjekker brukes til å kontrollere om svaret som returneres for forespørselen, er riktig eller ikke. I ‘Correlation’ opplæringen så vi at Noen Ganger VuGen kanskje ikke viser noen feil, men det returnerte svaret kan ikke være det riktige. Så, for å sikre at svaret er riktig, bruker vi tekstkontroller.
for eksempel, når vi logger inn på Web Tours-programmet, går vi til hjemmesiden. La oss bekrefte i skriptet at vi får riktig svar (hjemmeside) eller ikke når vi logger inn.
for å gjøre dette må vi identifisere noe tekst i svaret (hjemmeside her) som kan si om svaret er riktig eller ikke. Velkommen er en slik tekst.
for tekstkontroll bruker vi ‘web_reg_find’ – funksjonen 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 å angi hvilken tekst du skal søke etter.
‘ SaveCount – – Lagrer antall forekomster av den angitte teksten i en parameter som vi angir.
‘Fail’ – Tar en av de to verdiene – ‘Found’ og ‘NotFound’ og mislykkes skriptet tilsvarende.
så funksjonen, web_reg_find (“Text=Welcomecount”,”SaveCount=WelcomeCount”,” Fail=NotFound”, LAST) søker etter teksten “Velkommen” i svaret og lagrer antall forekomster i parameteren “WelcomeCount” (og mislykkes skriptet hvis teksten ikke blir funnet).
skriptet 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 skriptet, får Vi en feil for påloggingsforespørselen (se i relay log) fordi VuGen ikke fant teksten som vi angav, i svaret. Dette skyldes at vi ikke fikk den riktige hjemmesiden(som vist i ‘run-time viewer’).
la Oss nå rette skriptet vårt (korrelere userSession) og spille av skriptet igjen.
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 replay-loggen, men ser en melding om at vår tekstkontroll var vellykket. Så vi fikk riktig svar denne gangen (som det er bekreftet av ‘runtime viewer’).
Vi kan kombinere tekst sjekker med transaksjoner og gjøre VuGen passere en transaksjon hvis tekst sjekk er vellykket og mislykkes en transaksjon hvis en tekst sjekk er mislyktes.
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 brukt ‘if statement’ her med ‘SaveCount’ attributt. Parameteren WelcomeCount (som lagrer antall forekomster av teksten) brukes som en betingelse for å passere / mislykkes transaksjonen. ‘Lr_pass’ og ‘LR_FAIL’ attributter av transaksjonsfunksjoner brukes til å eksplisitt passere og mislykkes (henholdsvis) en transaksjon.
Merk: vi brukte to nye funksjoner her – ‘atoi’ og ‘lr_eval_string’. Vi skal snakke om disse funksjonene senere.
litt mer informasjon om kombinasjonen av’ web_reg_find ‘funksjonsattributter:
#1) Hvis bare’ Tekst ‘ attributt brukes –
Eksempel: web_reg_find (“Text=Welcome”, LAST) –
VuGen søker etter teksten og mislykkes skriptet hvis søket mislykkes.
#2) hvis bare’ Text ‘og’ SaveCount ‘ attributter brukes –
Eksempel: web_reg_find (“Text=Welcomecount”, “SaveCount=WelcomeCount”, LAST) – VuGen søker etter teksten og lagrer antall forekomster (selv om det er null) i den angitte parameteren (mislykkes ikke skriptet hvis søket mislykkes).
# 3) hvis bare’ Tekst ‘og’ Fail ‘ attributter brukes –
Eksempel: web_reg_find (“Text=Welcome”,” Fail=NotFound”, LAST) – VuGen søker etter teksten og mislykkes skriptet hvis teksten er funnet/ikke funnet.
Tekstkontroller kan også settes inn under opptak ved hjelp Av’ Sett inn tekstkontroll ‘ – ikonet på den flytende opptaksfeltet. Dette vil sette inn samme ‘web_reg_find’ – funksjon i skriptet.
Men det er bedre at vi setter inn denne funksjonen manuelt som vi vil ha bedre kontroll hovedsakelig på attributtene.
vi har forstått tekstkontroll klart, la oss nå gå til bildekontroll.
Bildekontroll brukes til å verifisere tilstedeværelsen av et angitt bilde i et svar. ‘web_image_check’ – funksjonen brukes til bildekontroll. 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)
Hvor det første attributtet er et meningsfylt navn og det andre attributtet (‘Src’) er bildenavnet / lenken (se VuGen hjelp for å få den komplette listen over attributter).
Kommentarer I VuGen Script
Kommentarer i En VuGen script kan legges inn under opptak og også manuelt etter skriptet er registrert.
under opptak klikker du på’ Sett Inn Kommentar ‘ – ikonet på den flytende opptakslinjen.
Skriv inn kommentaren (si ‘Logg inn’ her).
etter opptak 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 ‘/ / ‘ før 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 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 cookie-funksjonene (web_add_cookie). Vi vil snakke om cookie funksjoner senere i denne opplæringen serien.
det er en god praksis å sette inn kommentarer på hvert trinn under opptak fordi det vil hjelpe oss å relatere forespørslene i skriptet til brukerhandlingene på programmet.
Rendezvous Punkt I VuGen Script
hvis vi har et scenario der et større antall brukere utfører en handling samtidig på programmet (som å sjekke resultater), og hvis vi må simulere det samme i vår ytelsestest, 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) å vente på et angitt trinn i skriptet til alle Vusers (utfører skriptet) kommer til det trinnet slik 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 skriptet er registrert.
Anta at vi vil legge en samtidig belastning på betalingstrinnet i vår’ Web Tours ‘ – applikasjon. Under opptak på det trinnet (før du sender betalingsdetaljene ), klikk på ‘Sett Inn Rendezvous’ – ikonet på den flytende opptakslinjen.
og skriv inn rendezvous point-navnet(hvilket som helst meningsfullt navn).
etter opptak kan vi se rendezvous-funksjonen i skriptet som dette.
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å når vi kjører dette skriptet med flere brukere I Kontrolleren, vil skriptet bli utført av Vusers uavhengig, men Vusers vil vente på Dette Betalingstrinnet til alle (eller en prosentandel Av Vusers definert i Rendezvous policy) når dette trinnet, hvoretter de utfører dette trinnet samtidig.
vi vil se mer på rendezvous policy (alternativer) I Kontrolleren opplæringen.
Konklusjon
Inntil nå har vi diskutert Korrelasjon og Parameterisering i tidligere tutorials og Transaksjoner, Tekst / Bilde sjekker, Kommentarer og Rendezvous poeng i denne opplæringen, har vi også dekket de viktigste script ekstrautstyr metoder.
i vår neste veiledning vil vi se noen flere skriptutfordringer sammen med måtene å håndtere dem.
=> Besøk Her For Komplett Serie Av LoadRunner Tutorials
FORRIGE Tutorial / NESTE Tutorial
Leave a Reply