tranzacții LoadRunner, verificări de Text și imagine, comentarii și puncte de întâlnire

Introducere în îmbunătățirile de bază ale scriptului VuGen:

am explorat corelația în LoadRunner în detaliu în tutorialul nostru anterior în acest tutorial complet de instruire LoadRunner.

în ultimele două tutoriale, am lucrat la manipularea datelor într-un script VuGen (corelație și parametrizare).

în acest tutorial LoadRunner, vom vedea celelalte îmbunătățiri de bază (enumerate mai jos) care sunt necesare pentru scriptul nostru:

  1. tranzacții – pentru a măsura rata și timpul de răspuns al acțiunilor utilizatorului.
  2. verificări Text și imagine – pentru a vă asigura că răspunsul returnat este corect.
  3. Rendezvous points – pentru a face Vusers efectua o sarcină simultan.

=> Click aici pentru o serie completa de tutoriale LoadRunner

tranzacții, verificări de text și imagine, comentarii și puncte de întâlniretranzacții, verificări de text și imagine, comentarii și puncte de întâlnire

tranzacții în scriptul VuGen

simpla reluare a scripturilor de performanță va pune doar o sarcină pe aplicație, dar nu măsoară nimic. Scopul final al oricărui script de performanță este de a injecta sarcina și de a măsura rata și timpul de răspuns al acțiunilor utilizatorului asupra aplicației.

de exemplu, cât timp a durat o căutare de produse atunci când 100 de utilizatori sunt în aplicație, câte rapoarte sunt generate într-un timp de 15 minute și așa mai departe. Pentru a le măsura, trebuie să inserăm tranzacții într-un script VuGen (după test, putem vedea rata și timpul de răspuns al acestor tranzacții în rezultate).

‘o tranzacție este o măsurare de la un capăt la altul a unei acțiuni a utilizatorului (sau a unui grup de acțiuni ale utilizatorului) asupra unei aplicații’.

tranzacțiile pot fi inserate în două moduri:

  1. în timpul înregistrării
  2. după înregistrare (unde introducem manual funcțiile tranzacției în script)

să inserăm tranzacția pentru acțiunea utilizatorului’ Login’ în aplicația noastră ‘Web Tours’.

în primul nostru tutorial, am văzut cum să înregistrăm acțiunile utilizatorilor. În timpul înregistrării, după introducerea ‘Username ‘și’ Password ‘pe pagina de conectare, chiar înainte de a face clic pe butonul’ Login’, faceți clic pe pictograma’ Insert start Transaction ‘ din bara de înregistrare plutitoare.

1.În timpul înregistrării

vugen solicită numele tranzacției. Introduceți orice nume semnificativ. Am dat ‘Login’ aici, dar este o bună practică de a urma o convenție ca aceasta (numărul tranzacției, numele scenariului, acțiunea utilizatorului etc.): 01_WebTours_Launch 02_WebTours_Login (și așa mai departe).

2.Vugen solicită numele tranzacției

Acum faceți clic pe butonul Login.

3.Acum faceți clic pe butonul Login

odată ce ajungem la pagina principală (pagina principală), faceți clic pe pictograma ‘Insert end Transaction’ din bara de înregistrare plutitoare.

4.faceți clic pe pictograma' Insert end Transaction ' din bara de înregistrare plutitoare.

selectați tranzacția pe care dorim să o încheiem (tranzacția’Login’ aici).

5. 'Login' tranzacție pe care dorim să se încheie

opri înregistrarea și a vedea script-ul generat. Putem vedea că funcțiile de început și Sfârșit de tranzacție sunt inserate în script (evidențiate în galben) și toate cererile corespunzătoare acțiunii utilizatorului de conectare sunt incluse între aceste funcții.

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

sintaxa funcțiilor ‘începutul tranzacției’ și ‘sfârșitul tranzacției’ este destul de simplă. Ambele au numele tranzacției ca primul argument. Funcția ‘ end transaction ‘are încă un atribut – ‘LR_AUTO’, acest lucru îl instruiește pe VuGen să treacă sau să eșueze automat o tranzacție (în loc să specificăm în mod explicit o condiție pentru o trecere sau eșec).

dacă alergătorul de încărcare întâmpină erori în executarea cererilor în cadrul unei tranzacții, atunci nu reușește tranzacția, altfel trece tranzacția.

verificările Text și imagine în scriptul VuGen

verificările Text sunt utilizate pentru a verifica dacă răspunsul returnat pentru solicitare este corect sau nu. În tutorialul ‘corelație’, am văzut că uneori VuGen poate să nu arate nicio eroare, dar răspunsul returnat poate să nu fie cel corect. Deci, pentru a ne asigura că răspunsul este corect, folosim verificări de text.

de exemplu, când ne conectăm la aplicația Web Tours, mergem la pagina principală. Să verificăm în script că primim răspunsul corect (pagina de pornire) sau nu atunci când ne conectăm.

pentru a face acest lucru, trebuie să identificăm un text în răspuns (pagina de pornire aici) care poate spune dacă răspunsul este corect sau nu. Bun venit este un astfel de text.

6.Verificări Text și imagine

pentru Verificarea textului, folosim funcția ‘web_reg_find’ chiar înainte de solicitare.

sintaxa acestei funcții este:

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

aici avem trei atribute (consultați ajutorul VuGen pentru a obține lista completă de atribute):

‘Text’- folosit pentru a specifica ce text să căutați.

‘SaveCount’ – Salvează numărul de apariții ale textului specificat într-un parametru pe care îl specificăm.

‘Fail’ – ia una dintre cele două valori -‘Found’ și ‘NotFound’ și eșuează scriptul în consecință.

deci funcția, web_reg_find(“Text=Welcome”,”SaveCount=WelcomeCount”,”Fail=NotFound”, LAST) Caută textul “Welcome” în răspuns și salvează numărul de apariții în parametrul “WelcomeCount” (și eșuează scriptul dacă textul nu este găsit).

scenariul arată astfel:

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

acum, dacă redăm scriptul, vom primi o eroare pentru solicitarea de conectare (vezi în Jurnalul releului), deoarece VuGen nu a găsit textul pe care l-am specificat, în răspuns. Acest lucru se datorează faptului că nu am primit pagina de pornire corectă (așa cum se arată în ‘run-time viewer’).

7.dacă redăm scriptul, vom primi o eroare pentru solicitarea de conectare

acum să corectăm scriptul nostru (corelăm userSession) și să redăm scriptul din nou.

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

de data aceasta nu vedem nicio eroare în Jurnalul de redare, dar vedem un mesaj că Verificarea textului nostru a avut succes. Așa că am primit răspunsul corect de data aceasta (așa cum este coroborat de ‘runtime viewer’).

8.corectați scriptul nostru (corelați utilizatorulsesiune) și redați din nou scriptul.

putem combina verificările text cu tranzacțiile și putem face ca VuGen să treacă o tranzacție dacă verificarea text este reușită și să eșueze o tranzacție dacă o verificare text este eșuată.

acest lucru este prezentat mai jos:

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

am folosit ‘dacă declarație ‘ aici cu’ SaveCount ‘ atribut. Parametrul ‘WelcomeCount’ (care salvează numărul de apariții ale textului) este folosit ca o condiție pentru a trece/eșua tranzacția. Atributele’ LR_PASS ‘și’ lr_fail ‘ ale funcțiilor de tranzacție sunt utilizate pentru a trece în mod explicit și a eșua (respectiv) o tranzacție.

Notă: Am folosit două funcții noi aici – ‘atoi’ și ‘lr_eval_string’. Vom vorbi despre aceste funcții mai târziu.

mai multe informații despre combinația atributelor funcției’ web_reg_find’:

#1) Dacă se utilizează numai atributul’ Text ‘ –

exemplu: web_reg_find (“Text=Welcome”, LAST) –

VuGen Caută textul și eșuează scriptul dacă căutarea nu reușește.

#2) Dacă sunt utilizate doar atributele”Text”și”SaveCount” –

exemplu: web_reg_find (“Text=Welcome”, “SaveCount=WelcomeCount”, LAST) – VuGen Caută textul și salvează numărul de apariții (chiar dacă este zero) în parametrul specificat (nu eșuează scriptul dacă căutarea nu reușește).

# 3) Dacă sunt utilizate doar atributele’ Text ‘și’ Fail ‘ –

exemplu: web_reg_find(“Text=Welcome”,”Fail=NotFound”, LAST) – VuGen Caută textul și eșuează scriptul dacă textul este găsit/nu a fost găsit.

verificările de Text pot fi inserate și în timpul înregistrării utilizând pictograma ‘Insert text check’ din bara de înregistrare plutitoare. Aceasta va insera aceeași funcție ‘web_reg_find’ în script.

9.Pictograma 'Insert text check'

dar este mai bine să introducem această funcție manual, deoarece vom avea un control mai bun în principal asupra atributelor.

am înțeles clar Verificarea textului, acum să mergem la verificarea imaginii.

Image check este utilizat pentru a verifica prezența unei imagini specificate într-un răspuns. funcția ‘web_image_check’ este utilizată pentru verificarea imaginii. Această funcție trebuie pusă după solicitare (în răspunsul căruia așteptăm imaginea).

exemplu de această funcție:

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

în cazul în care primul atribut este orice nume semnificativ și al doilea atribut (‘Src’) este numele imaginii/link-ul (consultați ajutorul VuGen pentru a obține lista completă de atribute).

comentarii în scriptul VuGen

comentariile dintr-un script VuGen pot fi introduse în timpul înregistrării și, de asemenea, manual după înregistrarea scriptului.

în timpul înregistrării, faceți clic pe pictograma ‘Inserare comentariu’ din bara de înregistrare plutitoare.

10.'Introduceți comentariul' pictograma

introduceți comentariul (spuneți ‘autentificare’ aici).

11.Introduceți comentariul

după înregistrare, putem vedea comentariile din script așa cum se arată mai jos.

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

în VuGen, o singură linie poate fi comentată doar punând ‘/ / ‘ înaintea liniei așa cum se arată mai jos:

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

și mai multe linii pot fi conectate prin punerea ‘/ * ‘la început și’ * / ‘ la sfârșit (așa cum se arată mai jos)

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

notă: în exemplele prezentate mai sus, am comentat funcțiile cookie (web_add_cookie). Vom vorbi despre funcțiile cookie mai târziu în această serie de tutoriale.

este o bună practică să inserați comentarii la fiecare pas în timpul înregistrării, deoarece ne va ajuta să corelăm cererile din script cu acțiunile utilizatorului din aplicație.

punct de întâlnire în scriptul VuGen

dacă avem un scenariu în care un număr mai mare de utilizatori efectuează o acțiune simultan asupra aplicației (cum ar fi verificarea rezultatelor) și dacă trebuie să simulăm același lucru în testul nostru de performanță, putem folosi un ‘punct de întâlnire’.

un ‘punct de întâlnire’ este o funcție unică și simplă într-un script VuGen care instruiește load runner (în timpul unui test cu mai mulți utilizatori) să aștepte la un pas specificat în script până când toți Vuserii (care execută scriptul) ajung la acel pas, astfel încât cererea ulterioară să poată fi executată simultan.

sintaxa pentru funcția Rendezvous este:

lr_rendezvous("MeaningfulName"); 

această funcție poate fi inserată în timpul înregistrării și, de asemenea, manual după înregistrarea scriptului.

să presupunem că dorim să încărcăm simultan pasul de plată în aplicația noastră’ web Tours’. În timpul înregistrării la acel pas (înainte de a trimite detaliile de plată ), faceți clic pe pictograma ‘Insert Rendezvous’ din bara de înregistrare plutitoare.

12.detalii de plată

și introduceți numele punctului de întâlnire (orice nume semnificativ).

13.introduceți numele punctului de întâlnire

după înregistrare, putem vedea funcția de întâlnire în script ca aceasta.

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

acum, când vom rula acest script cu mai mulți utilizatori în controler, script-ul va fi executat de către Vusers independent, dar Vusers va aștepta la acest pas ‘plată’ până când toate (sau un procent de Vusers definite în Politica Rendezvous) ajunge la acest pas, după care efectuează acest pas simultan.

vom vedea mai multe despre politica de întâlnire (opțiuni) în tutorialul controlerului.

concluzie

până acum am discutat corelarea și parametrizarea în tutorialele și tranzacțiile anterioare, verificări de Text/imagine, comentarii și puncte de întâlnire în acest tutorial, am acoperit și cele mai importante metode de îmbunătățire a scriptului.

în următorul nostru tutorial, vom vedea câteva provocări de scripting, împreună cu modalitățile de a le gestiona.

=> vizitați aici pentru seria completă de tutoriale LoadRunner

tutorial anterior / Tutorial următor

Leave a Reply