Korrelasjon i LoadRunner med Web_Reg_Save_Param Eksempel
Hva er korrelasjon?
Korrelasjon, som navnet antyder, er en mekanisme for รฅ definere et forhold mellom to variabler eller enheter. En ordbok definerer det som "statistisk forhold mellom to eller flere variabler slik at systematiske endringer i den andre fรธlger med systematiske endringer i verdien av en variabel".
Hvorfor trenger vi korrelasjon?
La oss forstรฅ sammenhengen med fรธlgende scenario.
Tenk pรฅ at du spiller inn et skript med LoadRunner.
Klient-server kommunikasjon
- Under Record sender klienten en forespรธrsel til serveren om รฅ starte en รธkt
- En server mottar forespรธrselen og tildeler en ny sesjons-ID ABC
- Klienten lagrer รธkt-ID-en ABC i skriptet.
- Klienten starter รธkten med ID ABC og sender en forespรธrsel til en server for รฅ tillate den รฅ ta opp
- Serveren gjenkjenner ID ABC og lar klienten ta opp skriptet
- La oss nรฅ studere klient-server-kommunikasjonen under replay
- Under Replay sender en klient en forespรธrsel til serveren om รฅ starte en รธkt
- En server mottar forespรธrselen og tildeler en ny sesjons-ID XYZ
- En klient starter รธkten med tidligere registrert sesjons-ID ABC og sender forespรธrsel til serveren for รฅ tillate den รฅ ta opp
- En server er ikke i stand til รฅ identifisere ID ABC ettersom den forventet ID XYZ som den har tildelt og รธkten mislykkes.
Vi trenger en lรธsning som kan analysere den dynamiske verdien som sendes under kjรธring og returnere denne verdien tilbake til serveren. Her er hvordan klient-server-kommunikasjonen vil se ut med denne lรธsningen
- Under Replay sender en klient en forespรธrsel til serveren om รฅ starte en รธkt
- En server mottar forespรธrselen og tildeler en ny sesjons-ID ZZZ
- En klient analyserer denne nye รธkt-ID-en ZZZ fra forespรธrselen.
- En klient sender en forespรธrsel om รฅ starte รธkten med ID ZZZ
- En server gjenkjenner ID-en ZZZ og lar klienten spille av skriptet pรฅ nytt
Dette er ingenting annet enn korrelasjon.
Klikk her. hvis videoen ikke er tilgjengelig
Nรฅr det gjelder VUGen, er korrelasjon et bindende forhold mellom et svar og enhver tidligere forespรธrsel.
Det er forskjellige situasjoner nรฅr en forespรธrsel er basert pรฅ et tidligere mottatt svar fra serveren, for eksempel en รธkt-ID, serverdato/klokkeslett som hentes fra serveren. Disse verdiene er forskjellige hver gang du kjรธrer et program eller tar opp et skript. Selvsagt, hvis kjรธringen av skriptet avhenger av en verdi returnert av serveren, betyr det at du mรฅ finne en mekanisme der du kan "fange" serversvaret og knytte til de forespรธrslene som serveren forventer. Dette kalles vanligvis korrelasjon i LoadRunner.
Med enkle ord er lรธsningen ved รฅ bruke korrelasjon:
- Fang ut verdi fra et trinn
- Bruk over fanget verdi for รฅ tjene som input til alle pรฅfรธlgende trinn
Korrelasjon er klassifisert i 2 kategorier i VUGen/LoadRunner:
- Automatisk korrelasjon
- Manuell korrelasjon
Automatisk korrelasjon
LoadRunner gir en mekanisme for enkelt รฅ utfรธre korrelasjon pรฅ automatisk mรฅte.
VUGen vil kreve at du kjรธrer et innspilt skript minst to ganger slik at det internt kan sammenligne de varierende verdiene i serverresponsen.
Automatisk korrelasjon kan deles inn i 3 kategorier:
- Automatisk oppdage korrelasjon
- Regelbasert korrelasjon
- Korrelerer alle utsagn
| Regelnavn | Nรฅr skal du bruke |
|---|---|
| Auto-oppdag korrelasjon | Oppdag og korreler dynamiske data for applikasjonsservere som stรธttes av HP LoadRunner |
| Regelbasert | Brukes nรฅr du arbeider med en ikke-stรธttet applikasjonsserver som konteksten er kjent for. |
| Korreler alle | Hjelper med รฅ korrelere alle dynamiske data pรฅ en blind mรฅte. |
Selv om automatisk korrelasjon virker enklere, kan den vรฆre utsatt for feil og fungerer i ikke mer enn 5 % av tilfellene. Det er alltid tilrรฅdelig รฅ bruke manuell korrelasjon.
For รฅ konfigurere automatisk korrelasjon pรฅ opptakstidspunktet, utfรธr nedenstรฅende konfigurasjon i Record Time Setting etter at et skript har blitt tatt opp.
Klikk pรฅ Spill inn =>Opptaksalternativer (eller klikk Ctrl + F7),
Vinduet nedenfor รฅpnes:
Klikk pรฅ Korrelasjon => Konfigurasjon โ vinduet nedenfor รฅpnes.
Her mรฅ du merke som avkrysset mot alle sรธknader (ASPNET) etc. som brukes i din fagsรธknad. Pรฅ hรธyre side kan du se reglene som vil oppdage mulige kandidater for korrelasjon, f.eks. _VIEWSTATE. Du kan ogsรฅ legge til flere applikasjoner eller egendefinerte regler ved รฅ klikke pรฅ knappen Ny regel.
Du kan ogsรฅ klikke pรฅ REGLER, du vil se som nedenfor:
For at automatisk korrelasjon skal fungere, mรฅ du sรธrge for at Rules Scan er merket som avmerket. Hvis du klikker pรฅ automatisk korreler verdier funnet, vil ikke VUGen be deg om valget nรฅr en korrelasjonskandidat er funnet, i stedet vil den bare korrelere dem.
Vi vil forstรฅ API brukt for korrelasjon senere. Det er imidlertid tilrรฅdelig รฅ bruke HTML-sammenligning i stedet for tekstsammenligning.
Nรฅr du har valgt noen regler, klikker du pรฅ OK-knappen for รฅ lukke vinduene.
Klikk pรฅ fra menyen og VUGen vil regenerere skript (uten รฅ mรฅtte ta opp) med nye konfigurasjoner. VUGen vil automatisk legge til et nรธdvendig kodestykke for รฅ hรฅndtere korrelasjon. Vi vil se pรฅ utvalget mer detaljert i Manuell korrelasjon.
Vรฆr oppmerksom pรฅ at hvis du utfรธrer korrelasjon manuelt eller bruker automatisk korrelasjon, vil kodestykket inneholde nรธyaktig samme syntaks og funksjon.
Trinn for รฅ autokorrelere et skript:
- Ta opp et manus
- Spill av manuset pรฅ nytt
- Identifiser verdiene som skal korreleres
- Velg verdiene og klikk pรฅ autokorreler-knappen
- Bekreft skriptet ved รฅ kjรธre pรฅ nytt. Et vellykket lรธp betyr vellykket korrelasjon.
Tips:
- Korrelasjon hjelper deg med รฅ kjรธre skriptet ditt med forskjellige verdier
- Korrelasjon reduserer ogsรฅ stรธrrelsen pรฅ skriptet ditt
Manuell korrelasjon
Manuell korrelasjon handler om รฅ skrive kode direkte inn i skriptet ditt for รฅ imรธtekomme stadig skiftende verdier. Vi kan dele det inn i trinnene nedenfor:
- Bestem verdien som skal fanges
- Finn hรธyre og venstre tekstgrense for verdien som skal fanges (WEB)
- Finn hvilken forekomst av tekstgrensene som skal brukes
- Legg til en web_reg_save_param-funksjon i skriptet, over kodestykket som ber siden med verdien fange opp
- Legg til et parameternavn, venstre grense, hรธyre grense og forekomst til funksjonen
- Parametriser den dynamiske verdien i skriptet hver gang det oppstรฅr
- Bekreft korrekt utfรธrelse
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);
Manuell korrelasjon kan gjรธres av VUser Comparison. Trinn i VUser Comparison metode for korrelasjon kan deles som nedenfor:
- Identifiser dynamiske verdier som mรฅ korreleres
- Finn serversvar som inneholder den dynamiske verdien
- Fang den dynamiske verdien i en parameter
- Erstatt hver forekomst av den dynamiske verdien med parameteren
- Bekreft endringer
Forstรฅ funksjonen Web_reg_save_param
VUGen tilbyr flere funksjoner eller APIer for รฅ korrelere kandidater, inkludert:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Mens en kort introduksjon blir gitt her, for en detaljert forstรฅelse av funksjoner og deres parametere, รฅpne VUGen, skrivefunksjon (eller bruk Steps Toolbox), flytt en markรธr pรฅ funksjonen og klikk F1 โ gjรธr deg kjent med VUGen-hjelpen og lag en vane. Du vil mรฅtte hรฅndtere det mye nรฅr du jobber i bransjen.
Her gรฅr vi med funksjonsdetaljene:
web_reg_save_param(Parameternavn , Venstre grense , Hรธyre grense )
Liste over attributter
Konverter: De mulige verdiene er:
HTML_TO_URL: konverter HTML-kodede data til et URL-kodet dataformat
HTML_TO_TEXT: konverter HTML-kodede data til vanlig tekstformat; dette attributtet er valgfritt.
Ignorer omdirigeringer: Hvis "Ignorer omdirigeringer=Ja" er spesifisert og serversvaret er omdirigeringsinformasjon (HTTP-statuskode 300-303, 307), sรธkes ikke svaret. I stedet, etter รฅ ha mottatt et omdirigeringssvar, sendes GET-forespรธrselen til det omdirigerte stedet, og sรธket utfรธres pรฅ svaret fra det stedet.
Dette attributtet er valgfritt. Standard er "Ignorer omdirigeringer=Nei".
LB: Den venstre grensen for parameteren eller de dynamiske dataene. Hvis du ikke angir en LB-verdi, bruker den alle tegnene fra begynnelsen av dataene som en grense. Grenseparametere skiller mellom store og smรฅ bokstaver. For รฅ tilpasse sรธketeksten ytterligere, bruk ett eller flere tekstflagg. Dette attributtet er obligatorisk. Se avsnittet om grenseargumenter.
IKKE FUNNET: Hรฅndteringsalternativet nรฅr en grense ikke er funnet, og en tom streng genereres.
"Ikke funnet=feil", standardverdien, fรธrer til at en feil oppstรฅr nรฅr en grense ikke blir funnet.
ยซIkke funnet=advarselยป (ยซIkke funnet=tomยป i tidligere versjoner), gir ingen feil. Hvis grensen ikke blir funnet, setter den parametertellingen til 0 og fortsetter รฅ kjรธre skriptet. Alternativet "advarsel" er ideelt hvis du vil se om strengen ble funnet, men du ikke vil at skriptet skal mislykkes.
Merknader: Hvis Continue on Error er aktivert for skriptet, sรฅ fortsetter skriptet selv nรฅr NOTFOUND er satt til "error", nรฅr grensen ikke blir funnet, men en feilmelding blir skrevet til den utvidede loggfilen.
Dette attributtet er ogsรฅ valgfritt.
ORD: Indikerer ordinรฆr posisjon eller forekomst av kampen. Standardforekomsten er 1. Hvis du angir "Alle", lagrer den parameterverdiene i en matrise. Dette attributtet er valgfritt.
Merk: Bruken av Instance i stedet for ORD stรธttes for bakoverkompatibilitet, men er avviklet.
RB: Hรธyre grense for parameteren eller de dynamiske dataene. Hvis du ikke angir en RB-verdi, bruker den alle tegnene til slutten av dataene som en grense. Grenseparametere skiller mellom store og smรฅ bokstaver. For รฅ tilpasse sรธketeksten ytterligere, bruk ett eller flere tekstflagg. Dette attributtet er obligatorisk. Se avsnittet om grenseargumenter.
RelFrameID: Hierarkinivรฅet til HTML-siden i forhold til den forespurte nettadressen. De mulige verdiene er ALL eller et tall. Klikk pรฅ RelFrameID Attribut for en detaljert beskrivelse. Dette attributtet er valgfritt.
OBS: RelFrameID stรธttes ikke i skript pรฅ GUI-nivรฅ.
SaveLen: Lengden pรฅ en understreng av den funnet verdien, fra spesifisert offset, som skal lagres til parameteren. Dette attributtet er valgfritt. Standard er -1, noe som indikerer รฅ lagre til slutten av strengen.
LagreOffset: Forskyvningen av en understreng av den funnet verdien, for รฅ lagre til parameteren. Offsetverdien mรฅ vรฆre ikke-negativ. Standard er 0. Dette attributtet er valgfritt.
Sรธke: Omfanget av sรธket - hvor skal man sรธke etter de avgrensede dataene. De mulige verdiene er overskrifter (sรธk bare i overskriftene), Brรธdtekst (sรธk kun i kroppsdata, ikke overskrifter), Ingen ressurs (sรธk kun i HTML-teksten, unntatt alle overskrifter og ressurser), eller ALLE (sรธketekst, overskrifter og ressurser). Standardverdien er ALLE. Dette attributtet er valgfritt, men generelt foretrukket.







