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 et 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 URL. De mulige værdier er ALLE eller et tal. Klik på RelFrameID Attribut for en detaljeret beskrivelse. Denne egenskab 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.