Korrelation i LoadRunner med Web_Reg_Save_Param Exempel
Vad är korrelation?
Korrelation, som namnet antyder, är en mekanism för att definiera ett samband mellan två variabler eller enheter. En ordbok definierar det som "statistiskt samband mellan två eller flera variabler så att systematiska förändringar i den andra åtföljer systematiska förändringar i värdet på en variabel".
Varför behöver vi korrelation?
Låt oss förstå samrelationen med följande scenario.
Tänk på att du spelar in ett skript med LoadRunner.
Kommunikation mellan klient och server
- Under Record skickar klienten en begäran till servern om att starta en session
- En server tar emot begäran och tilldelar ett nytt sessions-ID ABC
- Klienten lagrar sessions-id ABC i skriptet.
- Klienten startar sessionen med ID ABC och skickar en begäran till en server för att låta den spela in
- Servern känner igen ID ABC och låter klienten spela in skriptet
- Låt oss nu studera klient-server-kommunikationen under repris
- Under Replay skickar en klient en begäran till servern om att starta en session
- En server tar emot begäran och tilldelar ett nytt sessions-ID XYZ
- En klient startar sessionen med tidigare inspelat sessions-ID ABC och skickar begäran till servern för att låta den spela in
- En server kan inte identifiera ID ABC eftersom den förväntade sig ID XYZ som den har allokerat och sessionen misslyckas.
Vi behöver en lösning som för att fånga analysera det dynamiska värdet som skickas vid körning och returnera detta värde tillbaka till servern. Så här kommer klient-serverkommunikationen att se ut med denna lösning
- Under Replay skickar en klient en begäran till servern om att starta en session
- En server tar emot begäran och tilldelar ett nytt sessions-ID ZZZ
- En klient analyserar detta nya sessions-id ZZZ från begäran.
- En klient skickar en begäran om att starta sessionen med id ZZZ
- En server känner igen ID:t ZZZ och låter klienten spela upp skriptet igen
Detta är inget annat än korrelation.
Klicka här. om videon inte är tillgänglig
I fallet med VUGen är korrelation ett bindande förhållande mellan ett svar och någon föregående begäran.
Det finns olika situationer när en begäran baseras på ett tidigare mottaget svar från servern, såsom ett sessions-ID, serverdatum/tid som hämtas från servern. Dessa värden är olika varje gång du kör ett program eller spelar in ett skript. Självklart, om exekveringen av skript beror på ett värde som returneras av servern, betyder det att du måste hitta en mekanism där du kan "fånga" serversvaret och koppla till de förfrågningar som servern förväntar sig. Detta kallas vanligtvis Correlation i LoadRunner.
Med enkla ord är lösningen genom att använda korrelation:
- Fånga utdatavärde från ett steg
- Använd ovan fångade värde för att fungera som input till alla efterföljande steg
Korrelation klassificeras i 2 kategorier i VUGen/LoadRunner:
- Automatisk korrelation
- Manuell korrelation
Automatisk korrelation
LoadRunner tillhandahåller en mekanism för att enkelt utföra korrelation på automatiskt sätt.
VUGen kommer att kräva att du kör ett inspelat skript minst två gånger så att det internt kan jämföra de varierande värdena i serversvaret.
Automatisk korrelation kan delas in i tre kategorier:
- Autoupptäck korrelation
- Regelbaserad korrelation
- Korrelera alla uttalanden
Regelnamn | När ska du använda |
---|---|
Autoupptäck korrelation | Upptäck och korrelera dynamisk data för applikationsservrar som stöds av HP LoadRunner |
Regelbaserad | Används när du arbetar med en applikationsserver som inte stöds för vilken sammanhanget är känt. |
Korrelera alla | Hjälper till att korrelera all dynamisk data på ett blind sätt. |
Även om automatisk korrelation verkar enklare, kan den vara felbenägen och fungerar i högst 5 % av fallen. Det är alltid lämpligt att använda manuell korrelation.
För att konfigurera automatisk korrelation vid inspelningstillfället, utför nedanstående konfiguration i Record Time Setting efter att ett skript har spelats in.
Klicka på Spela in =>Inspelningsalternativ (eller klicka på Ctrl + F7),
Nedanstående fönster öppnas:
Klicka på Korrelation =>Konfiguration – nedanstående fönster öppnas.
Här behöver du markera som kontrollerat mot alla ansökningar (ASPNET) mm, som används i din ämnesansökan. På höger sida kan du se reglerna som kommer att upptäcka möjliga kandidater för korrelation, t.ex. _VIEWSTATE. Du kan också lägga till fler applikationer eller anpassade regler genom att klicka på knappen Ny regel.
Du kan också klicka på REGLER, du kommer att se nedan:
För att automatisk korrelation ska fungera måste du se till att Rules Scan är markerad som markerad. Om du klickar på automatiskt korrelera värden som hittats kommer VUGen inte att fråga dig om valet när en korrelationskandidat har hittats, istället kommer den bara att korrelera dem.
Vi kommer att förstå API som används för korrelation senare. Det är dock lämpligt att använda HTML-jämförelse istället för textjämförelse.
När du har valt några regler, klicka på OK-knappen för att stänga fönstren.
Klicka på från menyn och VUGen kommer att återskapa skript (utan att behöva spela in) med nya konfigurationer. VUGen kommer automatiskt att lägga till en nödvändig kodbit för att hantera korrelation. Vi kommer att titta på provet mer i detalj i Manuell korrelation.
Observera att om du utför korrelation manuellt eller använder automatisk korrelation, kommer kodbiten att innehålla exakt samma syntax och funktion.
Steg för att autokorrelera ett skript:
- Spela in ett manus
- Spela om manus
- Identifiera de värden som ska korreleras
- Välj värdena och klicka på knappen autokorrelera
- Verifiera skriptet genom att köra igen. En framgångsrik körning betyder framgångsrik korrelation.
Dricks:
- Korrelation hjälper till att köra ditt skript med olika värden
- Korrelation minskar också storleken på ditt skript
Manuell korrelation
Manuell korrelation handlar om att skriva kod direkt i ditt skript för att tillgodose ständigt föränderliga värden. Vi kan dela upp det i följande steg:
- Bestäm värdet som ska fångas
- Hitta höger och vänster textgräns för värdet som ska fångas (WEB)
- Ta reda på vilken förekomst av textgränserna som ska användas
- Lägg till en web_reg_save_param-funktion till skriptet, ovanför kodbiten som begär att sidan med värdet ska fångas
- Lägg till ett parameternamn, vänster gräns, höger gräns och förekomst till funktionen
- Parametrisera det dynamiska värdet i skriptet varje gång det inträffar
- Verifiera korrekt utförande
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 korrelation kan göras av VUser Comparison. Stegen i VUser Comparison-metoden för korrelation kan delas upp enligt nedan:
- Identifiera dynamiska värden som behöver korreleras
- Hitta serversvar som innehåller det dynamiska värdet
- Fånga det dynamiska värdet i en parameter
- Ersätt varje förekomst av det dynamiska värdet med parametern
- Verifiera ändringar
Förstå Web_reg_save_param-funktionen
VUGen tillhandahåller flera funktioner eller API:er för att korrelera kandidater, inklusive:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Medan en kort introduktion ges här, för en detaljerad förståelse av funktioner och deras parametrar, öppna VUGen, skrivfunktion (eller använd Steps Toolbox), flytta en markör på funktionen och klicka på F1 – bekanta dig med VUGens hjälp och gör en vana. Du kommer att behöva hantera det mycket när du arbetar i branschen.
Här går vi med funktionsdetaljerna:
web_reg_save_param(Parameternamn , Vänster gräns , Höger gräns )
Lista över attribut
Konvertera: De möjliga värdena är:
HTML_TO_URL: konvertera HTML-kodad data till ett URL-kodat dataformat
HTML_TO_TEXT: konvertera HTML-kodad data till vanligt textformat; detta attribut är valfritt.
Ignorera omdirigeringar: Om "Ignorera omdirigeringar=Ja" anges och serversvaret är omdirigeringsinformation (HTTP-statuskod 300-303, 307), söks inte svaret. Istället, efter att ha mottagit ett omdirigeringssvar, skickas GET-begäran till den omdirigerade platsen och sökningen utförs på svaret från den platsen.
Det här attributet är valfritt. Standard är "Ignorera omdirigeringar=Nej".
LB: Den vänstra gränsen för parametern eller dynamisk data. Om du inte anger ett LB-värde, använder det alla tecken från början av datan som en gräns. Gränsparametrar är skiftlägeskänsliga. För att ytterligare anpassa söktexten, använd en eller flera textflaggor. Det här attributet är obligatoriskt. Se avsnittet Gränsargument.
HITTADES INTE: Hanteringsalternativet när en gräns inte hittas och en tom sträng genereras.
"Not found=error", standardvärdet, gör att ett fel höjs när en gräns inte hittas.
“Not found=warning” (”Not found=empty” i tidigare versioner), ger inget fel. Om gränsen inte hittas ställer den parameterantalet till 0 och fortsätter att köra skriptet. Alternativet "varning" är idealiskt om du vill se om strängen hittades, men du inte vill att skriptet ska misslyckas.
Anmärkningar: Om Fortsätt vid fel är aktiverat för skriptet, fortsätter skriptet även när NOTFOUND är inställt på "fel", när gränsen inte hittas, men ett felmeddelande skrivs till den utökade loggfilen.
Detta attribut är också valfritt.
ORD: Indikerar ordinarie position eller instans av matchen. Standardinstansen är 1. Om du anger "Alla" sparas parametervärdena i en array. Det här attributet är valfritt.
Obs: Användningen av Instance istället för ORD stöds för bakåtkompatibilitet, men föråldras.
RB: Den högra gränsen för parametern eller dynamisk data. Om du inte anger ett RB-värde, använder det alla tecken till slutet av data som en gräns. Gränsparametrar är skiftlägeskänsliga. För att ytterligare anpassa söktexten, använd en eller flera textflaggor. Det här attributet är obligatoriskt. Se avsnittet Gränsargument.
RelFrameID: Hierarkinivån för HTML-sidan i förhållande till den begärda webbadressen. De möjliga värdena är ALLA eller ett tal. Klicka på RelFrameID Attribut för en detaljerad beskrivning. Det här attributet är valfritt.
Notera: RelFrameID stöds inte i skript på GUI-nivå.
SparaLen: Längden på en delsträng av det hittade värdet, från den angivna offseten, att spara till parametern. Det här attributet är valfritt. Standard är -1, vilket anger att spara till slutet av strängen.
SparaOffset: Förskjutningen av en delsträng av det hittade värdet för att spara till parametern. Offsetvärdet måste vara icke-negativt. Standard är 0. Detta attribut är valfritt.
Sök: Omfattningen av sökningen - var ska man söka efter de avgränsade uppgifterna. De möjliga värdena är Rubriker (sök bara i rubrikerna), Bröd (sök endast kroppsdata, inte rubriker), Ingen resurs (sök bara i HTML-brödtexten, exklusive alla rubriker och resurser) eller ALLA (söktext, rubriker och resurser). Standardvärdet är ALLA. Detta attribut är valfritt men generellt föredraget.