Korrelation i LoadRunner med Web_Reg_Save_Param Eksempel
Hvad er korrelation?
Korrelation, som navnet antyder, er en mekanisme til at definere et forhold mellem to variable eller entiteter. En ordbog definerer det som "statistisk forhold mellem to eller flere variabler, sรฅledes at systematiske รฆndringer i den anden ledsager systematiske รฆndringer i vรฆrdien af โโen variabel".
Hvorfor har vi brug for korrelation?
Lad os forstรฅ sammenhรฆngen med fรธlgende scenarie.
Overvej, at du optager et script ved hjรฆlp af LoadRunner.
Klient-server kommunikation
- Under Record sender klienten en anmodning til serveren om at starte en session
- En server modtager anmodningen og tildeler et nyt sessions-id ABC
- Klienten gemmer sessions-id'et ABC i scriptet.
- Klient starter sessionen med ID ABC og send en anmodning til en server for at tillade den at optage
- Serveren genkender ID'et ABC og tillader klienten at optage scriptet
- Lad os nu studere klient-server-kommunikationen under genafspilning
- Under Replay sender en klient en anmodning til serveren om at starte en session
- En server modtager anmodningen og tildeler et nyt sessions-id XYZ
- En klient starter sessionen med tidligere optaget sessions-id ABC og sender anmodningen til serveren for at tillade den at optage
- En server er ikke i stand til at identificere ID'et ABC, da den forventede ID XYZ, som den har tildelt, og sessionen mislykkes.
Vi har brug for en lรธsning, som kan indfange parse den dynamiske vรฆrdi, der sendes ved kรธrsel og returnere denne vรฆrdi tilbage til serveren. Her er hvordan klient-server-kommunikationen vil se ud med denne lรธsning
- Under Replay sender en klient en anmodning til serveren om at starte en session
- En server modtager anmodningen og tildeler et nyt sessions-id ZZZ
- En klient analyserer dette nye sessions-id ZZZ fra anmodningen.
- En klient sender en anmodning om at starte session med id ZZZ
- En server genkender ID'et ZZZ og tillader klienten at afspille scriptet igen
Dette er intet andet end korrelation.
Klik link. hvis videoen ikke er tilgรฆngelig
I tilfรฆlde af VUGen er korrelation et bindende forhold mellem et svar og enhver forudgรฅende anmodning.
Der er forskellige situationer, hvor en anmodning er baseret pรฅ et tidligere modtaget svar fra serveren, sรฅsom et sessions-id, serverdato/tid, som hentes fra serveren. Disse vรฆrdier er forskellige, hver gang du kรธrer et program eller optager et script. Det er klart, at hvis udfรธrelsen af โโscript afhรฆnger af en vรฆrdi, der returneres af serveren, betyder det, at du skal finde en mekanisme, hvor du kan "fange" serversvaret og vedhรฆfte de anmodninger, som serveren forventer. Dette kaldes typisk Correlation i LoadRunner.
Med enkle ord er lรธsningen ved at bruge korrelation:
- Fang outputvรฆrdi fra et trin
- Brug ovenstรฅende registrerede vรฆrdi til at tjene som input til alle efterfรธlgende trin
Korrelation er klassificeret i 2 kategorier i VUGen/LoadRunner:
- Automatisk korrelation
- Manuel korrelation
Automatisk korrelation
LoadRunner giver en mekanisme til nemt at udfรธre korrelation pรฅ automatisk mรฅde.
VUGen krรฆver, at du kรธrer et optaget script mindst to gange, sรฅ det internt kan sammenligne de forskellige vรฆrdier i serversvaret.
Automatisk korrelation kan klassificeres i 3 kategorier:
- Auto-detekter korrelation
- Regelbaseret korrelation
- Korrelerer alle udsagn
| Regel Name | Hvornรฅr skal den bruges ? |
|---|---|
| Auto-detekter korrelation | Registrer og korreler dynamiske data for applikationsservere, der understรธttes af HP LoadRunner |
| Regelbaseret | Bruges ved arbejde med en ikke-understรธttet applikationsserver, som konteksten er kendt for. |
| Korreler alle | Hjรฆlper med at korrelere alle dynamiske data pรฅ en blind mรฅde. |
Selvom automatisk korrelation virker enklere, kan den vรฆre fejltilbรธjelig og fungerer i ikke mere end 5 % af tilfรฆldene. Det er altid tilrรฅdeligt at bruge manuel korrelation.
For at konfigurere automatisk korrelation pรฅ optagelsestidspunktet skal du udfรธre nedenstรฅende konfiguration i Record Time Setting, efter at et script er blevet optaget.
Klik pรฅ Optag =>Optagelsesindstillinger (eller klik pรฅ Ctrl + F7),
Nedenstรฅende vindue รฅbnes:
Klik pรฅ Korrelation => Konfiguration โ vinduet nedenfor รฅbnes.
Her skal du markere som afkrydset mod alle ansรธgninger (ASPNET) mv., som bruges i din fagansรธgning. Pรฅ hรธjre side kan du se reglerne, som vil opdage mulige kandidater til korrelation, f.eks. _VIEWSTATE. Du kan ogsรฅ tilfรธje flere applikationer eller brugerdefinerede regler ved at klikke pรฅ knappen Ny regel.
Du kan ogsรฅ klikke pรฅ REGLER, du vil se som nedenfor:
For at automatisk korrelation skal fungere, skal du sikre dig, at Rules Scan er markeret som markeret. Hvis du klikker pรฅ automatisk korreler fundne vรฆrdier, vil VUGen ikke bede dig om valget, nรฅr fรธrst en korrelationskandidat er fundet, i stedet vil den blot korrelere dem.
Vi vil forstรฅ API brugt til korrelation senere. Det er dog tilrรฅdeligt at bruge HTML-sammenligning i stedet for tekstsammenligning.
Nรฅr du har valgt nogen regler, skal du klikke pรฅ knappen OK for at lukke vinduerne.
Klik pรฅ fra menu og VUGen vil genskabe script (uden at skulle optage) med nye konfigurationer. VUGen tilfรธjer automatisk et pรฅkrรฆvet stykke kode for at hรฅndtere korrelation. Vi vil se pรฅ prรธven mere detaljeret i Manuel korrelation.
Bemรฆrk venligst, at hvis du udfรธrer korrelation manuelt eller bruger automatisk korrelation, vil kodestykket indeholde nรธjagtig samme syntaks og funktion.
Trin til autokorrelation af et script:
- Optag et manuskript
- Gentag script
- Identificer de vรฆrdier, der skal korreleres
- Vรฆlg vรฆrdierne, og klik pรฅ knappen Autokorreler
- Bekrรฆft scriptet ved at kรธre igen. Et vellykket lรธb betyder vellykket korrelation.
Tip:
- Korrelation hjรฆlper med at kรธre dit script med forskellige vรฆrdier
- Korrelation reducerer ogsรฅ stรธrrelsen af โโdit script
Manuel korrelation
Manuel korrelation handler om at skrive kode direkte ind i dit script for at tage hรธjde for stadigt skiftende vรฆrdier. Vi kan opdele det i nedenstรฅende trin:
- Bestem den vรฆrdi, der skal fanges
- Find de hรธjre og venstre tekstgrรฆnser for den vรฆrdi, der skal fanges (WEB)
- Find hvilken forekomst af tekstgrรฆnserne der skal bruges
- Tilfรธj en web_reg_save_param-funktion til scriptet over det kodestykke, der anmoder siden med vรฆrdien om at fange
- Tilfรธj et parameternavn, venstre grรฆnse, hรธjre grรฆnse og forekomst til funktionen
- Parametrรฉr den dynamiske vรฆrdi i scriptet, hver gang det opstรฅr
- Bekrรฆft korrekt udfรธ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);
Manuel korrelation kan udfรธres af VUser Comparison. Trin i VUser-sammenligningsmetoden til korrelation kan opdeles som nedenfor:
- Identificer dynamiske vรฆrdier, der skal korreleres
- Find serversvar, der indeholder den dynamiske vรฆrdi
- Indfang den dynamiske vรฆrdi i en parameter
- Erstat hver forekomst af den dynamiske vรฆrdi med parameteren
- Bekrรฆft รฆndringer
Forstรฅelse af Web_reg_save_param-funktionen
VUGen tilbyder flere funktioner eller API'er til at korrelere kandidater, herunder:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Mens der gives en kort introduktion her, for at fรฅ en detaljeret forstรฅelse af funktioner og deres parametre, skal du รฅbne VUGen, skrive-funktionen (eller bruge Steps Toolbox), flytte en markรธr pรฅ funktionen og klikke pรฅ F1 โ gรธr dig bekendt med VUGen-hjรฆlpen og lav en vane. Du bliver nรธdt til at hรฅndtere det meget, nรฅr du arbejder i branchen.
Her gรฅr vi med funktionsdetaljerne:
web_reg_save_param(Parameternavn , Venstre grรฆnse , Hรธjre grรฆnse )
Liste over attributter
Konverter: De mulige vรฆrdier er:
HTML_TO_URL: konverter HTML-kodede data til en URL-kodet dataformat
HTML_TO_TEXT: konverter HTML-kodede data til almindeligt tekstformat; denne egenskab er valgfri.
Ignorer omdirigeringer: Hvis "Ignorer omdirigeringer=Ja" er angivet, og serversvaret er omdirigeringsoplysninger (HTTP-statuskode 300-303, 307), sรธges der ikke efter svaret. I stedet, efter at have modtaget et omdirigeringssvar, sendes GET-anmodningen til den omdirigerede placering, og sรธgningen udfรธres pรฅ svaret fra denne placering.
Denne egenskab er valgfri. Standarden er "Ignorer omdirigeringer=Nej".
LB: Den venstre grรฆnse for parameteren eller de dynamiske data. Hvis du ikke angiver en LB-vรฆrdi, bruger den alle tegnene fra begyndelsen af โโdataene som en grรฆnse. Grรฆnseparametre er store og smรฅ bogstaver. Brug et eller flere tekstflag for at tilpasse sรธgeteksten yderligere. Denne egenskab er pรฅkrรฆvet. Se afsnittet Grรฆnseargumenter.
IKKE FUNDET: Hรฅndteringsmuligheden, nรฅr en grรฆnse ikke findes, og en tom streng genereres.
"Ikke fundet=fejl", standardvรฆrdien, forรฅrsager, at en fejl opstรฅr, nรฅr en grรฆnse ikke findes.
โIkke fundet=advarselโ (โIkke fundet=tomโ i tidligere versioner), giver ikke en fejl. Hvis grรฆnsen ikke findes, sรฆtter den parametertรฆllingen til 0 og fortsรฆtter med at udfรธre scriptet. "Advarsel"-indstillingen er ideel, hvis du vil se, om strengen blev fundet, men du ikke รธnsker, at scriptet mislykkes.
Bemรฆrk: Hvis Continue on Error er aktiveret for scriptet, sรฅ fortsรฆtter scriptet, selv nรฅr NOTFOUND er sat til "error", nรฅr grรฆnsen ikke findes, men der skrives en fejlmeddelelse til den udvidede logfil.
Denne egenskab er ogsรฅ valgfri.
DSB: Angiver den ordinรฆre position eller forekomst af kampen. Standardforekomsten er 1. Hvis du angiver "Alle", gemmer den parametervรฆrdierne i et array. Denne egenskab er valgfri.
Bemรฆrk: Brugen af โโInstance i stedet for ORD er understรธttet for bagudkompatibilitet, men forรฆldet.
RB: Den hรธjre grรฆnse for parameteren eller de dynamiske data. Hvis du ikke angiver en RB-vรฆrdi, bruger den alle tegnene indtil slutningen af โโdataene som en grรฆnse. Grรฆnseparametre er store og smรฅ bogstaver. Brug et eller flere tekstflag for at tilpasse sรธgeteksten yderligere. Denne egenskab er pรฅkrรฆvet. Se afsnittet Grรฆnseargumenter.
RelFrameID: Hierarkiniveauet for HTML-siden i forhold til den anmodede URLDe mulige vรฆrdier er ALLE eller et tal. Klik pรฅ RelFrameID Attribute for en detaljeret beskrivelse. Denne attribut er valgfri.
Bemรฆrk: RelFrameID understรธttes ikke i scripts pรฅ GUI-niveau.
GemLen: Lรฆngden af โโen understreng af den fundne vรฆrdi, fra den angivne offset, der skal gemmes til parameteren. Denne egenskab er valgfri. Standarden er -1, hvilket angiver at gemme til slutningen af โโstrengen.
GemOffset: Forskydningen af โโen understreng af den fundne vรฆrdi, der skal gemmes i parameteren. Offsetvรฆrdien skal vรฆre ikke-negativ. Standard er 0. Denne egenskab er valgfri.
Sรธge: Omfanget af sรธgningen - hvor skal man sรธge efter de afgrรฆnsede data. De mulige vรฆrdier er Overskrifter (sรธg kun i overskrifterne), Brรธdtekst (sรธg kun i kropsdata, ikke overskrifter), Ingen ressource (sรธg kun i HTML-brรธdteksten, eksklusive alle overskrifter og ressourcer) eller ALLE (sรธgetekst, overskrifter og ressourcer). Standardvรฆrdien er ALLE. Denne egenskab er valgfri, men generelt foretrukket.







