Corelația în LoadRunner cu Exemplul Web_Reg_Save_Param
Ce este corelația?
Corelația, așa cum sugerează și numele, este un mecanism de definire a unei relații între două variabile sau entități. Un dicționar o definește ca „relație statistică între două sau mai multe variabile, astfel încât modificările sistematice ale celeilalte însoțesc schimbările sistematice ale valorii unei variabile”.
De ce avem nevoie de corelare?
Să înțelegem corelația cu următorul scenariu.
Considerați că înregistrați un script folosind LoadRunner.
Comunicare client-server
- În timpul înregistrării, clientul trimite o cerere către server pentru a începe o sesiune
- Un server primește cererea și alocă un nou ID de sesiune ABC
- Clientul stochează ID-ul de sesiune ABC în script.
- Clientul începe sesiunea cu ID ABC și trimite o solicitare către un server pentru a-i permite înregistrarea
- Serverul recunoaște ID-ul ABC și permite clientului să înregistreze scriptul
- Acum, să studiem comunicarea client-server în timpul reluării
- În timpul reluării, un client trimite o cerere către server pentru a începe o sesiune
- Un server primește cererea și alocă un nou ID de sesiune XYZ
- Un client începe sesiunea cu ID-ul de sesiune ABC înregistrat anterior și trimite cererea către server pentru a-i permite înregistrarea
- Un server nu poate identifica ID-ul ABC deoarece se aștepta la ID-ul XYZ pe care l-a alocat și sesiunea eșuează.
Avem nevoie de o soluție prin care să captăm să analizăm valoarea dinamică trimisă în timpul execuției și să returnăm această valoare înapoi la server. Iată cum va arăta comunicarea client-server cu această soluție
- În timpul reluării, un client trimite o cerere către server pentru a începe o sesiune
- Un server primește cererea și alocă un nou ID de sesiune ZZZ
- Un client analizează acest nou ID de sesiune ZZZ din cerere.
- Un client trimite o solicitare de a începe sesiunea cu id ZZZ
- Un server recunoaște ID-ul ZZZ și permite clientului să redea scriptul
Aceasta nu este altceva decât corelație.
Clic aici dacă videoclipul nu este accesibil
În cazul VUGen, corelația este o relație obligatorie între un răspuns și orice cerere anterioară.
Există diverse situații când o solicitare se bazează pe un răspuns primit anterior de la server, cum ar fi un ID de sesiune, data/ora serverului care este preluat de pe server. Aceste valori sunt diferite de fiecare dată când rulați o aplicație sau înregistrați un script. Evident, dacă execuția scriptului depinde de o valoare returnată de server, înseamnă că trebuie să găsiți un mecanism prin care să puteți „prinde” răspunsul serverului și să le atașați la acele solicitări pe care le așteaptă serverul. Aceasta se numește de obicei corelație în LoadRunner.
Cu cuvinte simple, soluția prin utilizarea corelației este:
- Capturați valoarea de ieșire dintr-un pas
- Utilizați valoarea captată de mai sus pentru a servi ca intrare pentru toți pașii următori
Corelația este clasificată în 2 categorii în VUGen/LoadRunner:
- Corelație automată
- Corelație manuală
Corelație automată
LoadRunner oferă un mecanism pentru a realiza cu ușurință corelarea în mod automat.
VUGen vă va cere să rulați un script înregistrat de cel puțin două ori, astfel încât să poată compara în interior diferitele valori din răspunsul serverului.
Corelația automată poate fi clasificată în 3 categorii:
- Auto-Detectare corelație
- Corelație bazată pe reguli
- Corelarea tuturor afirmațiilor
Numele regulii | Când să utilizați |
---|---|
Detectează automat corelația | Detectați și corelați datele dinamice pentru serverele de aplicații acceptate de HP LoadRunner |
Bazat pe reguli | Folosit atunci când lucrați cu un server de aplicații neacceptat pentru care contextul este cunoscut. |
Corelați toate | Ajută la corelarea tuturor datelor dinamice într-o manieră oarbă. |
Deși corelarea automată pare mai simplă, poate fi predispusă la erori și funcționează în cel mult 5% din cazuri. Este întotdeauna recomandabil să folosiți corelarea manuală.
Pentru a configura corelarea automată în momentul înregistrării, efectuați configurația de mai jos în Setarea timpului de înregistrare după ce a fost înregistrat un script.
Faceți clic pe Înregistrare => Opțiuni de înregistrare (sau faceți clic pe Ctrl +F7),
Fereastra de mai jos se va deschide:
Faceți clic pe Corelation =>Configuration – se va deschide fereastra de mai jos.
Aici, trebuie să marcați ca verificat față de toate aplicațiile (ASPNET) etc., care sunt utilizate în aplicația subiect. În partea dreaptă, puteți vedea regulile care vor detecta posibili candidați pentru corelare, de exemplu _VIEWSTATE. De asemenea, puteți adăuga mai multe aplicații sau reguli personalizate făcând clic pe butonul Regulă nouă.
De asemenea, puteți face clic pe REGULI, veți vedea după cum urmează:
Pentru ca corelația automată să funcționeze, trebuie să vă asigurați că Scanarea regulilor este marcată ca bifată. Dacă faceți clic pe corelarea automată a valorilor găsite, VUGen nu vă va solicita alegerea odată ce este găsit un candidat de corelare, ci doar le va corela.
Vom înțelege API-ul folosit pentru corelare mai târziu. Cu toate acestea, este recomandabil să utilizați comparația HTML în loc de compararea text.
După ce ați selectat orice regulă, faceți clic pe butonul OK pentru a închide ferestrele.
Faceţi clic pe din meniu și VUGen va regenera scriptul (fără a fi nevoie să înregistreze) cu noi configurații. VUGen va adăuga automat o bucată de cod necesară pentru a gestiona corelarea. Vom analiza eșantionul mai detaliat în Corelarea manuală.
Vă rugăm să rețineți, dacă efectuați corelarea manual sau utilizați corelarea automată, fragmentul de cod va conține exact aceeași sintaxă și funcție.
Pași pentru a corela automat un script:
- Înregistrați un scenariu
- Redare script
- Identificați valorile care trebuie corelate
- Selectați valorile și faceți clic pe butonul de corelare automată
- Verificați scriptul rulând din nou. O rulare reușită înseamnă o corelare reușită.
Sfat:
- Corelația vă ajută să rulați scriptul cu valori diferite
- Corelația reduce, de asemenea, dimensiunea scriptului
Corelație manuală
Corelarea manuală se referă la scrierea codului direct în scriptul dvs. pentru a satisface valorile în continuă schimbare. Îl putem împărți în pașii de mai jos:
- Determinați valoarea de capturat
- Găsiți limitele textului din dreapta și din stânga ale valorii de capturat (WEB)
- Găsiți ce apariție a limitelor textului ar trebui utilizată
- Adăugați o funcție web_reg_save_param la script, deasupra piesei de cod care solicită pagina cu valoarea de capturat
- Adăugați un nume de parametru, limita stângă, limita dreaptă și apariția funcției
- Parametrizați valoarea dinamică în script de fiecare dată când apare
- Verificați execuția corectă
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
Corelarea manuală se poate face prin VUser Comparison. Pașii din metoda de corelare VUser Comparison pot fi împărțiți după cum urmează:
- Identificați valorile dinamice care trebuie corelate
- Găsiți răspunsul serverelor care conține valoarea dinamică
- Capturați valoarea dinamică într-un parametru
- Înlocuiți fiecare apariție a valorii dinamice cu parametrul
- Verificați modificările
Înțelegerea funcției Web_reg_save_param
VUGen oferă mai multe funcții sau API-uri pentru a corela candidații, inclusiv:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
În timp ce aici este oferită o scurtă introducere, pentru o înțelegere detaliată a funcțiilor și a parametrilor acestora, deschideți VUGen, scrieți funcția (sau utilizați Steps Toolbox), mutați un cursor pe funcție și faceți clic pe F1 – familiarizați-vă cu ajutorul VUGen și faceți o obicei. Va trebui să te descurci cu asta când lucrezi în industrie.
Aici mergem cu detaliile funcției:
web_reg_save_param(Numele parametrului, Limita stângă, Limita dreaptă)
Lista atributelor
Convertit: Valorile posibile sunt:
HTML_TO_URL: convertiți datele codificate HTML într-un format de date codificate URL
HTML_TO_TEXT: convertiți datele codificate HTML în format text simplu; acest atribut este opțional.
Ignorați redirecționările: Dacă este specificat „Ignorare redirecționări=Da” și răspunsul serverului este informații de redirecționare (codul de stare HTTP 300-303, 307), răspunsul nu este căutat. În schimb, după primirea unui răspuns de redirecționare, cererea GET este trimisă la locația redirecționată, iar căutarea este efectuată pe răspunsul din acea locație.
Acest atribut este opțional. Valoarea implicită este „Ignorare redirecționări=Nu”.
LIVRE: Limita stângă a parametrului sau a datelor dinamice. Dacă nu specificați o valoare LB, aceasta utilizează toate caracterele de la începutul datelor ca limită. Parametrii limită sunt sensibile la majuscule. Pentru a personaliza în continuare textul de căutare, utilizați unul sau mai multe semnalizatoare de text. Acest atribut este obligatoriu. Consultați secțiunea Argumente de limită.
NU A FOST GĂSIT: Opțiunea de gestionare când nu este găsită o limită și este generat un șir gol.
„Not found=error”, valoarea implicită, face ca o eroare să fie ridicată atunci când nu este găsită o limită.
„Negăsit=avertisment” („Negăsit=gol” în versiunile anterioare), nu emite o eroare. Dacă limita nu este găsită, setează numărul de parametri la 0 și continuă executarea scriptului. Opțiunea „avertizare” este ideală dacă doriți să vedeți dacă șirul a fost găsit, dar nu doriți ca scriptul să eșueze.
notițe: Dacă Continue on Error este activat pentru script, atunci chiar și atunci când NOTFOUND este setat la „eroare”, scriptul continuă atunci când limita nu este găsită, dar un mesaj de eroare este scris în fișierul jurnal extins.
Acest atribut este, de asemenea, opțional.
ORD: indică poziția ordinală sau instanța potrivirii. Instanța implicită este 1. Dacă specificați „Toate”, aceasta salvează valorile parametrilor într-o matrice. Acest atribut este opțional.
Notă: Utilizarea Instance în loc de ORD este acceptată pentru compatibilitate cu versiunea anterioară, dar este depreciată.
RB: Limita dreaptă a parametrului sau a datelor dinamice. Dacă nu specificați o valoare RB, aceasta folosește toate caracterele până la sfârșitul datelor ca limită. Parametrii limită sunt sensibile la majuscule. Pentru a personaliza în continuare textul de căutare, utilizați unul sau mai multe semnalizatoare de text. Acest atribut este obligatoriu. Consultați secțiunea Argumente de limită.
RelFrameID: nivelul ierarhic al paginii HTML în raport cu adresa URL solicitată. Valorile posibile sunt ALL sau un număr. Faceți clic pe Atribut RelFrameID pentru o descriere detaliată. Acest atribut este opțional.
Notă: RelFrameID nu este acceptat în scripturile la nivel GUI.
SalvațiLen: Lungimea unui sub-șir al valorii găsite, de la offset-ul specificat, pentru a salva în parametru. Acest atribut este opțional. Valoarea implicită este -1, indicând salvarea până la sfârșitul șirului.
SalvațiOffset: Offset-ul unui sub-șir al valorii găsite, pentru a salva în parametru. Valoarea offset-ului trebuie să fie nenegativă. Valoarea implicită este 0. Acest atribut este opțional.
Căutare: Domeniul de aplicare al căutării-unde se caută datele delimitate. Valorile posibile sunt Anteturi (Căutați numai anteturile), Corp (căutați numai datele corpului, nu antete), Fără resursă (căutați numai corpul HTML, excluzând toate anteturile și resursele) sau Toate colectiile (corp de căutare, anteturi și resurse). Valoarea implicită este ALL. Acest atribut este opțional, dar în general preferat.