Korrelation i LoadRunner med web_reg_save_param Eksempel
⚡ Smart opsummering
Korrelation i LoadRunner registrerer en dynamisk serverværdi, såsom et sessions-ID, og bruger den til senere anmodninger, så et optaget VuGen-script afspilles korrekt i stedet for at fejle på forældede data.

Hvad er korrelation?
Korrelation er, som navnet antyder, en mekanisme til at definere en sammenhæng mellem to variabler eller enheder. En ordbog definerer det som "en statistisk sammenhæng mellem to eller flere variabler, således at systematiske ændringer i den anden ledsager systematiske ændringer i værdien af den ene variabel".
Mærkebemærkning: dette værktøj blev leveret som HP og derefter Micro Focus LoadRunnerog er nu OpenText Professionel præstationsteknikAlle korrelationsfunktioner nedenfor er uændrede, og leverandøren staver scriptgeneratoren VuGen.
Hvorfor har vi brug for korrelation?
Lad os forstå sammenhængen med følgende scenarie.
Forestil dig, at du indspiller et manuskript ved hjælp af LoadRunner.
Klient-server-kommunikationen under optagelsen kører som følger, og diagrammet opsummerer det:
- Under optagelsen 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.
- Klienten starter sessionen med ID ABC og sender en anmodning til en server om at tillade den at optage
- Serveren genkender ID'et ABC og tillader klienten at optage scriptet
Lad os nu studere klient-server-kommunikationen under afspilning, vist efter disse trin:
- 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 det tidligere registrerede sessions-ID ABC og sender en anmodning til serveren om at tillade optagelse.
- 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, der kan registrere og analysere den dynamiske værdi, der sendes under kørsel, og returnere denne værdi tilbage til serveren. Sådan vil klient-server-kommunikationen se ud med denne løsning, som diagrammet nedenfor viser:
- 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.
Den korte video nedenfor gennemgår det samme optagelses- og afspilningsproblem.
Klik link. hvis videoen ikke er tilgængelig
I tilfælde af VuGen er korrelation en bindende relation mellem et svar og enhver foregående anmodning.
Der er forskellige situationer, hvor en anmodning er baseret på et tidligere modtaget svar fra serveren, såsom et sessions-ID eller en serverdato og -tidspunkt, der hentes fra serveren. Disse værdier er forskellige, hver gang du kører et program eller optager et script. Hvis udførelsen af scriptet afhænger af en værdi, der returneres af serveren, betyder det naturligvis, at du skal finde en mekanisme, hvor du kan "fange" serversvaret og knytte det til de anmodninger, som serveren forventer. Dette kaldes typisk korrelation 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 varierende 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 | Detekter og korreler dynamiske data for applikationsservere understøttet af 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 => Optageindstillinger (eller klik på Ctrl + F7), som vist i menuen nedenfor,
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 kan fungere, skal du sørge for, at Regelscanning er markeret som afkrydset. Hvis du klikker på korreler automatisk fundne værdier, vil VuGen ikke bede dig om valget, når 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å værktøjslinjeknappen vist her fra menuen, og VuGen vil regenerere scriptet (uden at skulle optage) med nye konfigurationer. VuGen vil automatisk tilføje et nødvendigt stykke kode til at håndtere korrelation. Vi vil se nærmere på eksemplet 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);
Code noter: Begge uddrag fremstår præcis som de er blevet offentliggjort. Se ordenstallene: Ord=l og RelFrameId=l brug et lille L, og VuGen forventer cifferet 1.
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 serversvaret, 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
Versionsnotat: nuværende VuGen-udgivelser godbid web_reg_save_param_ex som efterfølger til den oprindelige funktion, og web_reg_save_param_regexp som valget, når selve grænserne ændres. Det oprindelige eksempel gælder stadig.
Selvom der her gives en kort introduktion, kan du for en detaljeret forståelse af funktioner og deres parametre åbne VuGen, skrive en funktion (eller bruge Steps Toolbox), flytte en markør over funktionen og klikke på F1 – bliv bekendt med VuGen-hjælp og gør det til 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
Tabellen nedenfor samler alle attributter, som funktionen accepterer, om de er obligatoriske, og hvad den styrer.
| Attribut | Nødvendig? | Hvad gør den |
| Konverter | Valgfri | HTML_TO_URL konverterer HTML-kodede data til en URL-kodet dataformat. HTML_TO_TEXT konverterer HTML-kodede data til almindeligt tekstformat. |
| Ignorer omdirigeringer | Valgfri, standardindstilling "Ignorer omdirigeringer = Nej" | Når den er indstillet til Ja, og serversvaret er omdirigeringsoplysninger (HTTP-statuskode 300-303, 307), søges der ikke efter det svar. GET-anmodningen går til den omdirigerede placering, og søgningen kører på svaret derfra. |
| LB | påkrævet | Venstre grænse for parameteren eller de dynamiske data. Hvis du ikke angiver en LB-værdi, bruges alle tegnene fra begyndelsen af dataene som en grænse. Grænseparametre skelner mellem store og små bogstaver. For yderligere at tilpasse søgeteksten skal du bruge et eller flere tekstflag. |
| IKKE FUNDET | Valgfri, standard "fejl" | Håndtering når en grænse ikke findes, og en tom streng genereres. "Not found=error" genererer en fejl. "Not found=advarsel" ("Not found=tom" i tidligere versioner) sætter i stedet parameterantallet til 0 og fortsætter, hvilket er ideelt, når du vil se, om strengen blev fundet uden at fejle scriptet. Med Fortsæt ved fejl aktiveret fortsætter scriptet selv under "fejl", men den udvidede log registrerer det. |
| DSB | Valgfri, standard 1 | Angiver den ordinære position eller instans af matchen. Hvis du angiver "Alle", gemmes parameterværdierne i et array. Brugen af Instance i stedet for ORD understøttes af hensyn til bagudkompatibilitet, men er udfaset. |
| RB | påkrævet | Den højre grænse for parameteren eller de dynamiske data. Hvis du ikke angiver en RB-værdi, bruges alle tegn indtil slutningen af dataene som en grænse. Grænseparametre skelner mellem store og små bogstaver. For yderligere at tilpasse søgeteksten skal du bruge et eller flere tekstflag. |
| RelFrameID | Valgfri | HTML-sidens hierarkiniveau i forhold til den anmodede URLDe mulige værdier er ALL eller et tal. RelFrameID understøttes ikke i scripts på GUI-niveau. |
| GemLen | Valgfri, standard -1 | Længden af en understreng af den fundne værdi, fra den angivne offset, som gemmes i parameteren. Standardværdien gemmes i slutningen af strengen. |
| GemOffset | Valgfri, standard 0 | Offsetværdien for en understreng af den fundne værdi, som skal gemmes i parameteren. Offsetværdien må ikke være negativ. |
| Søg | Valgfrit, standard ALLE | Søgningens omfang — hvor der skal søges efter de afgrænsede data. De mulige værdier er Overskrifter (søg kun i overskrifterne), Brødtekst (søg kun i brødtekstdata, ikke overskrifter), Ingen ressource (søg kun i HTML-brødteksten, eksklusive alle overskrifter og ressourcer) eller ALLE (søg i brødtekst, overskrifter og ressourcer). |
Når scriptet afspilles rent, tilføj parametrisering, transaktioner og runtime-indstillinger, kør den fra controllerog læs resultatet i Analyse som en del af en bredere Test af ydeevne og Load Testing.







