LoadRunner Transactions, Text and Image Checks, Comments and Rendezvous Points

Johdatus vugen Scriptin perusparannuksiin:

tutkimme Loadrunnerin korrelaatiota yksityiskohtaisesti edellisessä opetusvideossamme tässä täydellisessä LoadRunner Training Tutorialsissa.

kahdessa viimeisessä tutoriaalissa työstimme tiedon käsittelyä VuGen-skriptillä (korrelaatio ja Parametrisointi).

tässä LoadRunner-opetusohjelmassa näemme muut perusparannukset (lueteltu alla), joita skriptimme tarvitsee:

  1. Transactions-to measure rate and response time of the user actions.
  2. tekstin ja kuvan tarkistus-sen varmistamiseksi, että palautettu vastaus on oikea.
  3. Kohtauspaikat – jotta Vuserit suorittaisivat tehtävän samanaikaisesti.

=> Klikkaa tästä saadaksesi täydellisen sarjan LoadRunner-opetusohjelmia

tapahtumat, tekstien ja kuvien tarkistukset, kommentit ja kohtauspaikattapahtumat, tekstien ja kuvien tarkistukset, kommentit ja kohtauspaikat

tapahtumat VuGen-skripteissä

pelkkä suorituskomentojen toisto vain kuormittaa sovellusta, mutta ei mittaa mitään. Performance script-toiminnon päätavoite on ladata ja mitata käyttäjän toimien nopeus ja vasteaika sovelluksessa.

esimerkiksi, kuinka paljon aikaa tuotehaku kesti, kun 100 käyttäjää on sovelluksessa, kuinka monta raporttia syntyy vaikkapa 15 minuutin aikana ja niin edelleen. Näiden mittaamiseksi meidän on lisättävä tapahtumat vugen-komentosarjaan (testin jälkeen näemme näiden tapahtumien nopeuden ja vasteajan tuloksissa).

“tapahtuma on sovelluksen käyttäjätoiminnon (tai käyttäjätoimintojen ryhmän) päästä päähän-mittaus”.

tapahtumat voidaan lisätä kahdella tavalla:

  1. tallennuksen aikana
  2. tallennuksen jälkeen (jossa asetamme transaktiofunktiot manuaalisesti komentosarjaan)

olkaamme lisätä tapahtuma ‘Kirjaudu’ käyttäjän toimia meidän ‘Web Tours’ sovellus.

ensimmäisessä opetusohjelmassamme näimme, miten käyttäjän toimet kirjataan ylös. Kun tallennus, syötettyään ‘käyttäjätunnus’ ja ‘ salasana ‘kirjautumissivulla, juuri ennen klikkaamalla’ Kirjaudu ‘painiketta, klikkaa’ Lisää Käynnistä tapahtuma ‘ kuvaketta kelluva tallennuspalkki.

1.Tallennuksen aikana

vugen pyytää tapahtuman nimeä. Anna jokin merkityksellinen nimi. Olemme antaneet “kirjautumisen” täällä, mutta se on hyvä käytäntö noudattaa tällaista käytäntöä (tapahtuman numero, skenaarion nimi, käyttäjän toiminta jne.): 01_WebTours_Launch 02_WebTours_Login (ja niin edelleen).

2.Vugen pyytää tapahtuman nimeä

nyt klikkaa kirjautumispainiketta.

3.Napsauta nyt kirjautumispainiketta

kun pääsemme etusivulle (pääsivulle), Napsauta kelluvan tallennuspalkin ‘Insert End Transaction’ – kuvaketta.

4.klikkaa 'Lisää End Transaction' kuvaketta kelluva tallennuspalkki.

Valitse tapahtuma, jonka haluamme lopettaa (“Kirjaudu” tapahtuma täällä).

5.

Lopeta tallennus ja katso luotu skripti. Voimme nähdä, että transaction start-ja transaction end-toiminnot lisätään komentosarjaan (korostettu keltaisella) ja kaikki pyynnöt, jotka vastaavat “Login” – käyttäjän toimintaa, on liitetty näiden toimintojen väliin.

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);

“transaction start” – ja “transaction end” – funktioiden syntaksi on melko yksinkertainen. Molemmilla on tapahtuman nimi ensimmäisenä argumenttina. “End transaction” – funktiolla on vielä yksi attribuutti – “LR_AUTO”, tämä ohjeistaa Vugenia läpäisemään tai hylkäämään Tapahtuman automaattisesti (sen sijaan, että määrittäisimme nimenomaisesti hyväksymisen tai hylkäämisen ehdon).

jos lataaja havaitsee virheitä suorittaessaan pyyntöjä transaktiossa, se epäonnistuu transaktiossa muuten se läpäisee transaktion.

teksti-ja Kuvatarkistuksilla VuGen-skriptissä

Tekstitarkistuksilla tarkistetaan, onko pyyntöön annettu vastaus oikea vai ei. Vuonna “korrelaatio” opetusohjelma, näimme, että joskus VuGen ei näytä mitään virhettä, mutta palautettu vastaus ei välttämättä ole oikea. Niin, varmistaa, että vastaus on oikea, käytämme tekstitarkistuksia.

esimerkiksi Nettikierrokset-sovellukseen kirjauduttaessa siirrytään kotisivulle. Tarkistetaan skriptissä, että saamme oikean vastauksen (kotisivu) tai ei, kun kirjaudumme sisään.

tätä varten meidän on tunnistettava vastauksesta jokin teksti (Kotisivu tässä), joka voi sanoa, onko vastaus oikea vai ei. “Tervetuloa” on yksi tällainen teksti.

6.Teksti-ja Kuvatarkistukset

tekstitarkistuksessa käytetään funktiota “web_reg_find” juuri ennen pyyntöä.

tämän funktion syntaksi on:

web_reg_find("Text=","SaveCount=","Fail=",LAST);

tässä on kolme attribuuttia (katso vugen ohje täydellisen attribuuttiluettelon saamiseksi):

“Text” – käytetään määrittelemään, mitä tekstiä haetaan.

“SaveCount” – tallentaa määrätyn tekstin esiintymien määrän määrittelemäämme parametriin.

“Fail” – ottaa jommankumman kahdesta arvosta – “Found” ja “NotFound” ja epäonnistuu kirjoituksessa vastaavasti.

niinpä funktio web_reg_find (“Text=Welcome”,”SaveCount=WelcomeCount”,” Fail=NotFound”, viimeinen) etsii vastauksessa olevan tekstin “Welcome” ja tallentaa esiintymien määrän parametriin “WelcomeCount” (ja epäonnistuu skriptissä, jos tekstiä ei löydy).

kirjoitus näyttää tältä:

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);

nyt jos toistamme komentosarjan, saamme virheen kirjautumispyynnössä (katso viestilokista), koska VuGen ei löytänyt vastauksesta määrittämäämme tekstiä. Tämä johtuu siitä, että emme saaneet oikeaa kotisivua (kuten “run-time viewer”).

7.jos toistamme komentosarjan, saamme virheen kirjautumispyynnössä

nyt korjataan komentosarjaa (korreloi käyttäjäsessio) ja toistetaan skripti uudelleen.

 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);

tällä kertaa emme näe virhettä uusintalokissa, vaan näemme viestin, että tekstitarkistuksemme onnistui. Joten saimme oikean vastauksen tällä kertaa (koska se on vahvistettu “runtime viewer”).

8.korjaa komentosarjamme (korreloi käyttäjäsessio) ja toista käsikirjoitus uudelleen.

voimme yhdistää tekstitarkistukset transaktioihin ja saada Vugenin läpäisemään transaktion, jos tekstitarkistus onnistuu, ja epäonnistumaan transaktion, jos tekstitarkistus epäonnistuu.

tämä on esitetty alla:

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);}

olemme käyttäneet “if statement” tässä “SaveCount” attribuuttia. “WelcomeCount” – parametria (joka tallentaa tekstin tapahtumamäärän) käytetään ehtona tapahtuman hyväksymiselle/hylkäämiselle. Transaktiofunktioiden attribuutteja “LR_PASS” ja “LR_FAIL” käytetään transaktion (vastaavasti) siirtämiseen ja hylkäämiseen.

Huom: käytimme tässä kahta uutta funktiota – ‘ atoi ‘ja’lr_eval_string’. Puhumme näistä tehtävistä myöhemmin.

lisätietoja funktion “web_reg_find” attribuuttien yhdistelmästä:

#1) Jos käytetään vain attribuuttia “Text” –

esimerkki: web_reg_find (“Text=Welcome”, viimeinen) –

VuGen etsii tekstiä ja epäonnistuu skriptissä, jos haku ei onnistu.

#2) Jos käytetään vain attribuutteja”Text”ja”SaveCount” –

esimerkki: web_reg_find (“Text=Welcome”, “SaveCount=WelcomeCount”, viimeinen) – VuGen etsii tekstin ja tallentaa esiintymien määrän (vaikka se olisi nolla) määritettyyn parametriin (ei epäonnistu skriptiä, jos haku ei onnistu).

#3) Jos käytetään vain attribuutteja “Text” ja “Fail” –

esimerkki: web_reg_find (“Text=Welcome”,” Fail=NotFound”, LAST) – VuGen etsii tekstiä ja epäonnistuu skriptissä, jos teksti löytyy/ei löydy.

Tekstitarkistukset voidaan lisätä myös tallennuksen aikana käyttämällä kelluvan tallennuspalkin “Insert text check” – kuvaketta. Tämä lisää saman ‘web_reg_find’ – funktion komentosarjaan.

9.'Insert text check' - kuvake

, mutta on parempi, että lisäämme tämän toiminnon manuaalisesti, koska hallitsemme paremmin lähinnä attribuutteja.

olemme ymmärtäneet tekstitarkistuksen selvästi, nyt mennään kuvatarkistukseen.

Kuvan tarkistusta käytetään varmentamaan tietyn kuvan esiintyminen vastauksessa. ‘web_image_check’ funktiota käytetään kuvan tarkistamiseen. Tämä toiminto on asetettava pyynnön jälkeen (jonka vastauksessa odotamme kuvaa).

esimerkki tästä funktiosta:

web_image_check("Image","Src=/WebTours/images/flights.gif",LAST)

jossa ensimmäinen attribuutti on mikä tahansa merkityksellinen nimi ja toinen attribuutti (‘Src’) on kuvan nimi/linkki (katso VuGen ohje saadaksesi täydellisen attribuuttiluettelon).

Kommentit vugen-skriptissä

Kommentit vugen-skriptissä voidaan syöttää tallennuksen aikana ja myös manuaalisesti skriptin tallennuksen jälkeen.

äänityksen aikana klikkaa “Lisää kommentti” – kuvaketta kelluvassa nauhoituspalkissa.

10.

Kirjoita kommentti (sano “Kirjaudu” tähän).

11.Kirjoita kommentti

äänityksen jälkeen, näemme Kommentit käsikirjoituksessa kuten alla.

/* 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",

Vugenissa voidaan yhtä riviä kommentoida vain laittamalla “/ / ” rivin eteen kuten alla on esitetty:

// 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");

ja useita rivejä voidaan yhdistää laittamalla “/ * “alkuun ja” * / ” loppuun (kuten alla)

/* 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"); */

Huomautus: edellä esitetyissä esimerkeissä kommentoimme evästetoimintoja (web_add_cookie). Puhumme evästetoiminnoista myöhemmin tässä opetusohjelmassa.

on hyvä käytäntö lisätä kommentteja jokaisessa vaiheessa tallennuksen aikana, koska se auttaa meitä suhteuttamaan skriptin pyynnöt sovelluksen käyttäjän toimiin.

Rendezvous Point vugen Script

jos meillä on skenaario, jossa suurempi määrä käyttäjiä suorittaa toiminnon samanaikaisesti sovelluksessa (kuten tulosten tarkistaminen) ja jos joudumme simuloimaan samaa suorituskykytestissämme, Voimme käyttää “Rendezvous point”.

“Rendezvous point” on yksi ja yksinkertainen funktio VuGen-skriptissä, joka neuvoo load Runneria (testin aikana useiden käyttäjien kanssa) odottamaan komentosarjan tietyssä vaiheessa, kunnes kaikki vuserit (komentosarjan suorittaminen) tulevat tähän vaiheeseen, jotta seuraava pyyntö voidaan suorittaa samanaikaisesti.

Rendezvous-funktion syntaksi on:

lr_rendezvous("MeaningfulName"); 

tämä toiminto voidaan lisätä tallennuksen aikana ja myös manuaalisesti komentosarjan tallennuksen jälkeen.

Oletetaan, että “Nettikierrokset” – sovelluksessamme halutaan kuormittaa maksuvaihetta samanaikaisesti. Tallennuksen aikana tässä vaiheessa (ennen maksutietojen lähettämistä ), klikkaa ‘Lisää Rendezvous’ – kuvaketta kelluvassa tallennuspalkissa.

12.maksutiedot

ja kirjoita kohtauspaikan nimi (mikä tahansa merkityksellinen nimi).

13.anna kohtauspaikan nimi

nauhoituksen jälkeen näemme kohtausfunktion käsikirjoituksessa näin.

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);

nyt kun suoritamme tämän komentosarjan useiden käyttäjien kanssa Controllerissa, vusers suorittaa komentosarjan itsenäisesti, mutta Vusers odottaa tätä “maksu” – vaihetta, kunnes kaikki (tai osa Rendezvous-käytäntöön määritetyistä käyttäjistä) saavuttavat tämän vaiheen, jonka jälkeen he suorittavat tämän vaiheen samanaikaisesti.

Kohtaamiskäytännöstä (vaihtoehdoista) kerrotaan lisää Ohjainohjaimen opetusohjelmassa.

johtopäätös

tähän asti olemme keskustelleet korrelaatiosta ja Parametrisoinnista aiemmissa tutoriaaleissa ja tapahtumissa, tekstin/kuvan tarkistuksista, kommenteista ja kohtaamispaikoista tässä tutoriaalissa, olemme käsitelleet myös tärkeimpiä skriptinparannusmenetelmiä.

seuraavassa opetusohjelmassamme nähdään lisää skriptaushaasteita niiden käsittelytapojen ohella.

=> katso täältä täydellinen sarja LoadRunner Tutorials

PREV Tutorial / NEXT Tutorial

Leave a Reply