loadrunner transactions
cel mai bun program de curățare pentru Windows 10
Introducere în îmbunătățirile de bază ale scriptului VuGen:
Am explorat Corelația în LoadRunner în detaliu în tutorialul nostru anterior Tutoriale complete de instruire LoadRunner .
În ultimele două tutoriale, am lucrat la gestionarea datelor într-un script VuGen (Corelare și parametrizare).
În acest tutorial LoadRunner, vom vedea celelalte îmbunătățiri de bază (enumerate mai jos) care sunt necesare pentru scriptul nostru:
- Tranzacții - Pentru a măsura rata și timpul de răspuns al acțiunilor utilizatorului.
- Verificări text și imagine - Pentru a vă asigura că răspunsul returnat este corect.
- Comentarii
- Puncte de întâlnire - Pentru a-i face pe Vusers să efectueze o sarcină simultan.
=> Faceți clic aici pentru o serie completă de tutoriale LoadRunner
Ce veți învăța:
- Tranzacții în VuGen Script
- Verificări de text și imagine în scriptul VuGen
- Comentarii în VuGen Script
- Punct de întâlnire în scriptul VuGen
- Concluzie
- Lectură recomandată
Tranzacții în VuGen Script
Simpla reluare a scripturilor de performanță va pune doar o sarcină asupra aplicației, dar nu măsoară nimic. Scopul final al oricărui script de performanță este de a injecta încărcarea și de a măsura rata și timpul de răspuns al acțiunilor utilizatorului în aplicație.
De exemplu ,cât timp a durat o căutare de produs 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ă introducem 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 măsurarea capăt la cap a unei acțiuni a utilizatorului (sau a unui grup de acțiuni ale utilizatorului) pe o aplicație”.
Tranzacțiile pot fi inserate în două moduri:
- În timpul înregistrării
- După înregistrare (unde introducem manual funcțiile tranzacției în script)
Permiteți-ne să introducem tranzacția pentru acțiunea utilizatorului „Conectare” în aplicația noastră „Tururi web”.
În primul nostru tutorial, am văzut cum să înregistrăm acțiunile utilizatorului. În timpul înregistrării, după introducerea „Nume utilizator” și „Parolă” pe pagina de autentificare, chiar înainte de a face clic pe butonul „Autentificare”, faceți clic pe pictograma „Inserați tranzacția inițială” de pe bara de înregistrare plutitoare.

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

Acum faceți clic pe Buton de autentificare.

Odată ce am ajuns la pagina principală (pagina principală), faceți clic pe pictograma „Inserare tranzacție finală” de pe bara de înregistrare plutitoare.

Selectați tranzacția pe care dorim să o încheiem (tranzacția „Conectare” aici).

Opriți înregistrarea și vedeți scriptul generat. Putem vedea că funcțiile de începere a tranzacției și de finalizare a tranzacției sunt inserate în script (evidențiate în galben) și toate cererile corespunzătoare acțiunii utilizatorului „Conectare” sunt încadrate î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 „început tranzacție” și „sfârșit tranzacție” este destul de simplă. Ambele au numele tranzacției ca primul argument. Funcția „încheie tranzacția” are încă un atribut - „LR_AUTO”, aceasta instruiește 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 o eroare).
Dacă alergătorul de încărcare întâmpină erori în executarea cererilor în cadrul unei tranzacții, atunci eșuează tranzacția, altfel trece tranzacția.
Verificări de text și imagine în scriptul VuGen
Verificările de text sunt utilizate pentru a verifica dacă răspunsul returnat pentru cerere este corect sau nu. În tutorialul „Corelație”, am văzut că uneori VuGen nu poate afișa 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 Tours web, 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.

Pentru verificarea textului, folosim „ web_reg_find ' funcționează 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ă a atributelor):
„Text” - folosit pentru a specifica ce text să căutați.
„SaveCount” - Salvează numărul de apariții al textului specificat într-un parametru pe care îl specificăm.
„Eșuează” - preia una dintre cele două valori - „Găsit” și „Nu găsit” ș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).
Scriptul 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 de releu), deoarece VuGen nu a găsit textul pe care l-am specificat, în răspuns. Acest lucru se datorează faptului că nu am obținut pagina de pornire corectă (așa cum se arată în „vizualizatorul în timp de execuție”).

Acum, să corectăm scriptul nostru (corelăm sesiunea utilizatorului) și să redăm din nou scriptul.
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 reluare, dar vedem un mesaj conform căruia verificarea textului nostru a avut succes. Așadar, am primit răspunsul corect de data aceasta (deoarece este confirmat de „vizualizatorul de execuție”).

Putem combina verificările textului cu tranzacțiile și să facem ca VuGen să treacă o tranzacție dacă verificarea textului reușește și eșuează o tranzacție dacă o verificare text eșuează.
Aceasta 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 „declarație if” aici cu atributul „SaveCount”. Parametrul „WelcomeCount” (care salvează numărul de apariții al textului) este utilizat ca o condiție pentru a trece / eșua tranzacția. Atributele „LR_PASS” și „LR_FAIL” ale funcțiilor tranzacției sunt utilizate pentru a trece în mod explicit și a eșua (respectiv) o tranzacție.
Notă: Am folosit două noi funcții aici - „Atoi” și „Lr_eval_string” . Vom vorbi despre aceste funcții mai târziu.
Mai multe informații despre combinația de atribute ale funcției „web_reg_find”:
# 1) Dacă se utilizează numai atributul „Text” -
Exemplu: web_reg_find („Text = Bun venit”, ULTIMA) -
VuGen caută textul și nu reușește scriptul dacă căutarea nu reușește.
# 2) Dacă sunt folosite numai atributele „Text” și „SalvareCont” -
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 folosite numai atributele „Text” și „Eșec” -
Exemplu: web_reg_find („Text = Welcome”, „Fail = NotFound”, LAST) - VuGen caută textul și eșuează scriptul dacă textul este găsit / nu este găsit.
Verificările de text pot fi de asemenea inserate în timpul înregistrării folosind pictograma „Inserare verificare de text” de pe bara de înregistrare plutitoare. Aceasta va insera la fel „Web_reg_find” funcționează în script.

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ă trecem la verificarea imaginii.
Verificarea imaginii este utilizată pentru a verifica prezența unei imagini specificate într-un răspuns. ‘ web_image_check ' funcția este utilizată pentru verificarea imaginii. Această funcție trebuie pusă după cerere (în răspunsul căreia așteptăm imaginea).
Exemplul acestei funcții:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST) În cazul în care primul atribut este un nume semnificativ, iar al doilea atribut („Src”) este numele / linkul imaginii (consultați ajutorul VuGen pentru a obține lista completă de atribute).
Comentarii în VuGen Script
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 „Inserați un comentariu” pictogramă pe bara de înregistrare plutitoare.

Introduceți comentariul (spuneți „Autentificare” aici).

După înregistrare, putem vedea comentariile în 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 prin plasarea „//” î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 punând „/ *” la început și „* /” la final (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-urilor mai târziu în această serie de tutoriale.
Este o bună practică să inserăm comentarii la fiecare pas în timpul înregistrării, deoarece ne va ajuta să raportăm solicitările 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 simplă și simplă într-un script VuGen care instruiește runnerul de sarcină (î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ă poate fi executată simultan.
Sintaxa funcției 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ă vrem să punem o încărcare simultană pe etapa de plată în aplicația noastră „Tururi web”. În timpul înregistrării la acel pas (înainte de a trimite detaliile de plată), faceți clic pe pictograma „Inserați întâlnirea” de pe bara de înregistrare plutitoare.

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

După înregistrare, putem vedea funcția de întâlnire în script astfel.
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, atunci când rulăm acest script cu mai mulți utilizatori în Controler, scriptul va fi executat de Vusers independent, dar Vusers va aștepta la acest pas „Plată” până când toți (sau un procent de Vusers definit în politica Rendezvous) vor atinge acest pas după care vor efectua acest pas simultan.
Vom vedea mai multe despre politica de întâlnire (opțiuni) în tutorialul controlerului.
Concluzie
Până acum am discutat despre corelare și parametrizare în tutoriale și tranzacții 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 gestionare a acestora.
=> Vizitați aici pentru o serie completă de tutoriale LoadRunner
Lectură recomandată
- Testarea încărcării cu tutoriale HP LoadRunner
- Introducere în Micro Focus LoadRunner - Testarea încărcării cu LoadRunner Tutorial # 1
- Corelație - Testarea încărcării cu LoadRunner
- LoadRunner Tutorial pentru începători (curs gratuit în profunzime de 8 zile)
- Analiza și rapoartele rezultatelor testelor - Testarea încărcării cu LoadRunner
- Servicii Web Testarea performanței utilizând LoadRunner VuGen Scripting
- Diferența dintre LoadRunner și Performance Center
- Cum se configurează LoadRunner VuGen Script Files și Runtime Settings