Corelație în LoadRunner cu exemplu de web_reg_save_param
⚡ Rezumat inteligent
Corelația în LoadRunner capturează o valoare dinamică a serverului, cum ar fi un ID de sesiune, și o transmite înapoi în solicitările ulterioare, astfel încât un script VuGen înregistrat să fie redat cu succes în loc să eșueze din cauza datelor învechite.
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 modificările sistematice ale valorii uneia dintre variabile”.
Notă despre marcă: acest instrument a fost livrat ca HP și apoi Micro Focus LoadRunner, și este acum OpenText Inginerie profesională a performanțeiFiecare funcție de corelație de mai jos este neschimbată, iar furnizorul scrie generatorul de scripturi. VuGen.
De ce avem nevoie de corelare?
Să înțelegem corelația cu următorul scenariu.
Să presupunem că înregistrezi un script folosind LoadRunner.
Comunicarea client-server în timpul înregistrărilor este următoarea, iar diagrama o rezumă:
- Î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-ul ABC și trimite o cerere către un server pentru a-i permite să înregistreze
- Serverul recunoaște ID-ul ABC și permite clientului să înregistreze scriptul
Acum, să studiem comunicarea client-server în timpul redării, așa cum se arată după acești pași:
- Î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 înregistrat anterior ABC și trimite o cerere către server pentru a-i permite să înregistreze.
- 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 care poate captura și analiza valoarea dinamică trimisă la momentul execuției și returna această valoare serverului. Iată cum va arăta comunicarea client-server cu această soluție, așa cum arată diagrama de mai jos:
- Î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.
Scurt videoclip de mai jos prezintă aceeași problemă de înregistrare și redare.
Clic aici dacă videoclipul nu este accesibil
În cazul VuGen, corelația este o relație obligatorie între un răspuns și orice solicitare precedentă.
Există diverse situații în care o cerere se bazează pe un răspuns primit anterior de la server, cum ar fi un ID de sesiune sau o dată și o oră a serverului, preluate de la 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ă îl atașați acelor cereri pe care serverul le așteaptă. 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 solicita să rulați un script înregistrat de cel puțin două ori pentru a putea compara intern valorile variabile 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 | Detectează și corelează datele dinamice pentru serverele de aplicații acceptate de 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), afișat în meniul de mai jos,
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 funcția Corelație automată să funcționeze, trebuie să vă asigurați că opțiunea Scanare reguli este bifată. Dacă faceți clic pe corelarea automată a valorilor găsite, VuGen nu vă va solicita o opțiune odată ce este găsit un candidat de corelare, ci doar îl 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 butonul din bara de instrumente afișat aici din meniu, iar VuGen va regenera scriptul (fără a fi nevoie să înregistreze) cu noile configurații. VuGen va adăuga automat o porțiune de cod necesară pentru a gestiona corelarea. Vom analiza exemplul mai detaliat în secțiunea Corelație 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);
Code Note: Ambele fragmente apar exact așa cum au fost publicate. Urmăriți numerele ordinale: Ord=l și RelFrameId=l folosiți un L minuscul, iar VuGen așteaptă cifra 1.
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 serverului 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 corelarea candidaților, inclusiv:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Notă privind versiunea: versiunile actuale de VuGen tratează web_reg_save_param_ex ca succesor al funcției originale și web_reg_save_param_regexp ca alegere atunci când limitele în sine se schimbă. Exemplul original încă funcționează.
Deși 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 cursorul pe funcție și faceți clic pe F1 – familiarizați-vă cu Ajutor VuGen și formează-ți un obicei. Va trebui să te confrunți mult cu asta atunci când lucrezi în industrie.
Aici mergem cu detaliile funcției:
web_reg_save_param(Numele parametrului, Limita stângă, Limita dreaptă)
Lista atributelor
Tabelul de mai jos prezintă fiecare atribut pe care îl acceptă funcția, dacă este obligatoriu și ce controlează.
| Atribut | Necesar? | Ce face |
| Converti | Opțional | HTML_TO_URL convertește datele codificate HTML într-un URL-format de date codificat. HTML_TO_TEXT convertește datele codificate HTML în format text simplu. |
| Ignorați redirecționările | Opțional, implicit „Ignoră redirecționări=Nu” | Când este setat la Da și răspunsul serverului este informații de redirecționare (cod de stare HTTP 300-303, 307), acel răspuns nu este căutat. Cererea GET merge la locația redirecționată, iar căutarea rulează pe răspuns de acolo. |
| LB | Necesar | Limita stângă a parametrului sau a datelor dinamice. Dacă nu specificați o valoare LB, se utilizează toate caracterele de la începutul datelor ca limită. Parametrii limită sunt sensibili la majuscule/minuscule. Pentru a personaliza textul de căutare, utilizați unul sau mai multe semnalizatoare de text. |
| NU A FOST GĂSIT | Opțional, „eroare” implicită | Gestionarea situațiilor în care o limită nu este găsită și este generat un șir gol. „Not found=error” (Nu a fost găsit=eroare) generează o eroare. „Not found=warning” („Not found=empty” în versiunile anterioare) setează în schimb numărul de parametri la 0 și continuă, ceea ce este ideal atunci când doriți să vedeți dacă șirul a fost găsit fără a eșua scriptul. Cu opțiunea Continue on Error activată, scriptul continuă chiar și sub „eroare”, dar jurnalul extins îl înregistrează. |
| ORD | Opțional, implicit 1 | Indică poziția ordinală sau instanța potrivirii. Dacă specificați „Toate”, valorile parametrilor sunt salvate într-o matrice. Utilizarea Instance în loc de ORD este acceptată pentru compatibilitate inversă, dar este depreciată. |
| RB | Necesar | Limita dreaptă a parametrului sau a datelor dinamice. Dacă nu specificați o valoare RB, se utilizează toate caracterele până la sfârșitul datelor ca limită. Parametrii limită sunt sensibili la majuscule/minuscule. Pentru a personaliza textul de căutare, utilizați unul sau mai multe semnalizatoare de text. |
| RelFrameID | Opțional | Nivelul ierarhic al paginii HTML relativ la solicitat URLValorile posibile sunt ALL sau un număr. RelFrameID nu este acceptat în scripturile la nivel de GUI. |
| SalvațiLen | Opțional, implicit -1 | Lungimea unui subșir al valorii găsite, de la offset-ul specificat, pentru salvarea în parametru. Implicit, se salvează la sfârșitul șirului. |
| SalvațiOffset | Opțional, implicit 0 | Offset-ul unui subșir al valorii găsite, pentru a fi salvat în parametru. Valoarea offset-ului trebuie să fie non-negativă. |
| Căutare | Opțional, implicit TOATE | Domeniul de aplicare al căutării — unde se caută datele delimitate. Valorile posibile sunt Anteturi (se caută doar în anteturi), Corp (se caută doar în datele corpului, nu în anteturi), Fără resursă (se caută doar în corpul HTML, excluzând toate anteturile și resursele) sau TOATE (se caută în corp, anteturi și resurse). |
După ce scriptul se redă curat, adăugați parametrizare, tranzacții și setări în timpul execuției, rulați-l din operator de date cu caracter personal, și citește rezultatul în Analiză ca parte a unui plan mai larg Test de performanta și Încărcarea testelor.







