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

  1. Under Record sender klienten en forespørsel til serveren om å starte en økt
  2. En server mottar forespørselen og tildeler en ny sesjons-ID ABC
  3. Klienten lagrer økt-ID-en ABC i skriptet.
  4. Klienten starter økten med ID ABC og sender en forespørsel til en server for å tillate den å ta opp
  5. Serveren gjenkjenner ID ABC og lar klienten ta opp skriptet

Korrelasjon under opptak

  1. La oss nå studere klient-server-kommunikasjonen under replay
  2. Under Replay sender en klient en forespørsel til serveren om å starte en økt
  3. En server mottar forespørselen og tildeler en ny sesjons-ID XYZ
  4. En klient starter økten med tidligere registrert sesjons-ID ABC og sender forespørsel til serveren for å tillate den å ta opp
  5. En server er ikke i stand til å identifisere ID ABC ettersom den forventet ID XYZ som den har tildelt og økten mislykkes.

Korrelasjon under avspilling

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

  1. Under Replay sender en klient en forespørsel til serveren om å starte en økt
  2. En server mottar forespørselen og tildeler en ny sesjons-ID ZZZ
  3. En klient analyserer denne nye økt-ID-en ZZZ fra forespørselen.
  4. En klient sender en forespørsel om å starte økten med ID ZZZ
  5. En server gjenkjenner ID-en ZZZ og lar klienten spille av skriptet på nytt

Vi trenger korrelasjon

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:

  1. Fang ut verdi fra et trinn
  2. 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),

Automatisk korrelasjon

Vinduet nedenfor åpnes:

Automatisk korrelasjon

Klikk på Korrelasjon => Konfigurasjon – vinduet nedenfor åpnes.

Automatisk korrelasjon

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:

Automatisk korrelasjon

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å Automatisk korrelasjonfra 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:

  1. Ta opp et manus
  2. Spill av manuset på nytt
  3. Identifiser verdiene som skal korreleres
  4. Velg verdiene og klikk på autokorreler-knappen
  5. 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:

  1. Bestem verdien som skal fanges
  2. Finn høyre og venstre tekstgrense for verdien som skal fanges (WEB)
  3. Finn hvilken forekomst av tekstgrensene som skal brukes
  4. Legg til en web_reg_save_param-funksjon i skriptet, over kodestykket som ber siden med verdien fange opp
  5. Legg til et parameternavn, venstre grense, høyre grense og forekomst til funksjonen
  6. Parametriser den dynamiske verdien i skriptet hver gang det oppstår
  7. 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:

  1. Identifiser dynamiske verdier som må korreleres
  2. Finn serversvar som inneholder den dynamiske verdien
  3. Fang den dynamiske verdien i en parameter
  4. Erstatt hver forekomst av den dynamiske verdien med parameteren
  5. 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.