Parametrering, funktioner, transaktioner i LoadRunner

Ett inspelat skript kan simulera en virtuell anvรคndare; dock kanske enbart inspelning inte rรคcker fรถr att replikera det "riktiga anvรคndarbeteendet".

Nรคr ett manus spelas in tรคcker det enstaka och raka flรถden av รคmnesansรถkan. Medan en riktig anvรคndare kan utfรถra flera iterationer av vilken process som helst innan han loggar ut. Fรถrdrรถjningen mellan att klicka pรฅ knappar (tรคnk tid) kommer att variera frรฅn person till person. Chansen รคr stor att vissa riktiga anvรคndare fรฅr รฅtkomst till din applikation via DSL och vissa fรฅr รฅtkomst till den via en uppringd. Sรฅ fรถr att fรฅ den verkliga kรคnslan av slutanvรคndare mรฅste vi fรถrbรคttra vรฅra skript fรถr att vara exakt matchande, eller รฅtminstone mycket nรคra verkliga anvรคndares beteende.

Ovanstรฅende รคr den viktigaste faktorn nรคr man genomfรถr "Prestandatesterโ€, men det finns mer i ett VU-skript. Hur kommer du att mรคta den exakta tid det tar fรถr en VUser nรคr SUL genomgรฅr ett prestationstest? Hur skulle du veta om VUser har passerat eller misslyckats vid en viss punkt? Vad รคr orsaken bakom felet, om nรฅgon backend-process misslyckades eller om serverresurserna var begrรคnsade?

Vi mรฅste fรถrbรคttra vรฅrt manus fรถr att hjรคlpa oss att svara pรฅ alla ovanstรฅende frรฅgor.

Anvรคnda transaktioner

Transaktioner รคr mekaniker fรถr att mรคta serverns svarstid fรถr alla operationer. Med enkla ord hjรคlper anvรคndningen av "Transaktion" att mรคta den tid som systemet tar fรถr en viss fรถrfrรฅgan. Det kan vara sรฅ litet som ett klick pรฅ en knapp eller ett AJAX-samtal nรคr du tappar fokus frรฅn textrutan.

Att tillรคmpa transaktioner รคr enkelt. Skriv bara en rad kod innan begรคran gรถrs till servern och stรคng transaktionen nรคr begรคran avslutas. LoadRunner krรคver endast en strรคng som transaktionsnamn.

Fรถr att รถppna en transaktion, anvรคnd denna kodrad:

lr_start_transaction(โ€œTransaction Nameโ€);

Fรถr att avsluta transaktionen, anvรคnd denna kodrad:

lr_end_transaction(โ€œTransaction Nameโ€, <status>);

De talar om fรถr LoadRunner om den hรคr transaktionen var framgรฅngsrik eller misslyckad. De mรถjliga parametrarna kan vara:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Exempelvis:

lr_end_transaction(โ€œMy_Loginโ€, LR_AUTO);
lr_end_transaction(โ€œ001_Opening_Dashboard Nameโ€, LR_PASS);
lr_end_transaction(โ€œBusiness_Workflow_Transaction Nameโ€, LR_FAIL);

Poรคng att notera:

  • Glรถm inte att du arbetar med "C" och det รคr ett skiftlรคgeskรคnsligt sprรฅk.
  • Period (.)-tecken รคr inte tillรฅtet i transaktionsnamn, รคven om du kan anvรคnda mellanslag och understreck.
  • Om du har fรถrgrenat din kod vรคl och lagt till kontrollpunkter fรถr att verifiera svaret frรฅn servern, kan du anvรคnda anpassad felhantering, som LR_PASS eller LR_FAIL. Annars kan du anvรคnda LR_AUTO och LoadRunner kommer automatiskt att hantera serverfel (HTTP 500, 400 etc.)
  • Nรคr du tillรคmpar transaktioner, se till att det inte finns nรฅgot tรคnka_tid utdraget lรคggs in eller annars kommer din transaktion alltid att inkludera den perioden.
  • Eftersom LoadRunner krรคver en konstant strรคng som transaktionsnamn, รคr ett vanligt problem nรคr transaktionen tillรคmpas att strรคngen inte matchar. Om du anger ett annat namn nรคr du รถppnar och avslutar en transaktion kommer du att fรฅ minst 2 fel. Eftersom transaktionen du รถppnade aldrig stรคngdes, kommer LoadRunner att ge ett fel. Dessutom รถppnades aldrig transaktionen du fรถrsรถker stรคnga, vilket resulterade i ett fel.
  • Kan du anvรคnda din intelligens och svara fรถr dig sjรคlv vilket av ovanstรฅende fel som kommer att rapporteras fรถrst? Fรถr att bekrรคfta ditt svar, varfรถr inte gรถra ditt eget misstag? Om du hade svarat rรคtt รคr du pรฅ rรคtt spรฅr. Om du svarade fel mรฅste du fokusera.
  • Eftersom LoadRunner automatiskt tar hand om synkronisering av fรถrfrรฅgningar och svar, behรถver du inte oroa dig fรถr svar nรคr du tillรคmpar transaktioner.

Fรถrstรฅ Think Time, Rendezvous Points och kommentarer

Rendezvous Points

Rendezvous Points betyder "trรคffpunkter". Det รคr bara en rad pรฅstรฅenden som sรคger รฅt LoadRunner att infรถra samtidighet. Du infogar mรถtespunkter i VUser-skript fรถr att emulera tung anvรคndarbelastning pรฅ servern.

Rendezvous points instruerar VUser att vรคnta under testkรถrning pรฅ att flera VUser kommer fram till en viss punkt, sรฅ att de kan utfรถra en uppgift samtidigt. Till exempel, fรถr att efterlikna toppbelastning pรฅ bankservern, kan du infoga en mรถtesplats som instruerar 100 VUser att sรคtta in kontanter pรฅ sina konton samtidigt. Detta kan enkelt uppnรฅs med hjรคlp av rendezvous.

Om mรถtespunkterna inte รคr korrekta platser kommer VUser รฅtkomst till olika delar av applikationen โ€“ รคven fรถr samma skript. Detta beror pรฅ att varje VUser fรฅr olika svarstid och dรคrfรถr ligger fรฅ anvรคndare efter.

Syntax: lr_rendesvous(โ€œLogiskt namnโ€);

Bรคsta metoder:

  • Prefix en mรถtespunkt med "rdv_" fรถr bรคttre kodlรคsbarhet; t.ex. "rdv_Login"
  • Ta bort alla omedelbara tanketider
  • Tillรคmpa mรถtespunkter i en skriptvy (efter inspelning)

Rendezvous Points

Kommentarer

Lรคgg till kommentarer fรถr att beskriva en aktivitet, en kodbit eller en kodrad. Kommentarer hjรคlper till att gรถra koden begriplig fรถr alla som hรคnvisar till den i framtiden. De ger information om specifik operation och separerar tvรฅ sektioner fรถr รฅtskillnad.

Du kan lรคgga till kommentarer

  • Under inspelning (med verktyg)
  • Efter inspelning (skriver direkt i kod)

Bรคsta praxis: Markera eventuella kommentarer รถverst i varje skriptfil

Infoga funktioner via menyn

ร„ven om du direkt kan skriva enkla kodrader, kan du behรถva en ledtrรฅd fรถr att รฅterkalla en funktion. Du kan ocksรฅ anvรคnda Steps Toolbox (kรคnd som Infoga funktion fรถre version 12) fรถr att hitta och infoga valfri funktion direkt i ditt skript.

Du hittar Verktygsfรคltet Steg under Visa ร  Steg Verktygslรฅda.

Infoga funktioner via menyn

Detta รถppnar ett sidofรถnster, titta pรฅ รถgonblicksbilden:

Infoga funktioner via menyn

Vad รคr parametrisering?

A parameter i VUGen รคr en behรฅllare som innehรฅller ett registrerat vรคrde som ersรคtts fรถr olika anvรคndare.

Under kรถrningen av skriptet (i VUGen eller Controller) ersรคtter vรคrdet frรฅn en extern kรคlla (som .txt, XML eller databas) det tidigare vรคrdet pรฅ parametern.

Parametrering รคr anvรคndbart fรถr att skicka dynamiska (eller unika) vรคrden till servern, till exempel; en affรคrsprocess รคr รถnskvรคrd fรถr att kรถra 10 iterationer men vรคlja ett unikt anvรคndarnamn varje gรฅng.

Det hjรคlper ocksรฅ till att stimulera verkligt beteende fรถr รคmnessystemet. Ta en titt pรฅ nedanstรฅende exempel:

Exempel pรฅ problem:

Affรคrsprocessen fungerar endast fรถr det aktuella datumet som kommer frรฅn servern, och kan dรคrfรถr inte skickas som en hรฅrdkodad begรคran.

Ibland skickar klientapplikationen ett unikt ID till servern (till exempel session_id) fรถr att processen ska fortsรคtta (รคven fรถr en enskild anvรคndare) โ€“ I ett sรฅdant fall hjรคlper parametrering.

Ofta upprรคtthรฅller klientapplikationen en cache med data som skickas till och frรฅn servern. Som ett resultat fรฅr servern inte ett riktigt anvรคndarbeteende (om servern kรถr olika algoritmer beroende pรฅ sรถkkriterier). ร„ven om VUser-skriptet kommer att kรถras framgรฅngsrikt, kommer prestationsstatistiken som ritas inte att vara meningsfull. Att anvรคnda olika data genom parametrisering hjรคlper till att emulera serversidans aktivitet (procedurer etc.) och trรคnar systemet.

Ett datum som รคr hรฅrdkodat i VUser under inspelning kanske inte lรคngre รคr giltigt nรคr det datumet har passerat. Genom att parametrera datumet kan kรถrning av VUser lyckas genom att det hรฅrdkodade datumet ersรคtts. Sรฅdana fรคlt eller fรถrfrรฅgningar รคr de rรคtta kandidaterna fรถr parametrering.

Klicka hรคr. om videon inte รคr tillgรคnglig

Kรถrtidsinstรคllningar och deras inverkan pรฅ simulering av fordonsenhet

Kรถrtidsinstรคllningar har lika stor betydelse som ditt VUGen-skript. Med varierande konfigurationer kan du fรฅ olika testdesigner. Det รคr dรคrfรถr du kan hamna i resultat som inte kan upprepas om kรถrtidsinstรคllningarna inte รคr konsekventa. Lรฅt oss diskutera varje attribut en efter en.

Kรถr Logic

Run Logic definierar antalet gรฅnger alla รฅtgรคrder kommer att utfรถras, fรถrutom vuser_init och vuser_end.

Fรถrmodligen gรถr detta tydligare varfรถr LoadRunner fรถreslรฅr att man behรฅller all inloggningskod inom vuser_init, och utloggningsdelen i vuser_end, bรฅda exklusivt.

Om du har skapat flera รฅtgรคrder, lรฅt oss sรคga, Logga in, ร–ppna skรคrm, Berรคkna hyra, Skicka in pengar, Kontrollera saldo och logga ut, sรฅ kommer nedanstรฅende scenario att รคga rum fรถr varje VUser:

Alla VUsers kommer att logga in, kรถra รถppen skรคrm, berรคkna hyra, skicka in pengar, kontrollera saldo โ€“ sedan โ€“ igen ร–ppna skรคrm, berรคkna hyror... och sรฅ vidare โ€“ upprepa 10 gรฅnger โ€“ fรถljt av utloggning (en gรฅng).

Kรถr Logic

Detta รคr en kraftfull instรคllning som gรถr det mรถjligt att agera mer som en riktig anvรคndare. Kom ihรฅg att en riktig anvรคndare inte loggar in och loggar ut varje gรฅng โ€“ han upprepar vanligtvis samma steg.

Hur mรฅnga gรฅnger klickar du pรฅ "inkorgen" nรคr du kollar din e-post innan du loggar ut?

pacing

Det hรคr รคr viktigt. Oftast kan mรคnniskor inte fรถrstรฅ skillnaden mellan pacing och tรคnketid. Den enda skillnaden รคr, "Pacing hรคnvisar till fรถrdrรถjningen mellan iterationer" medan tรคnk tid รคr fรถrdrรถjningen mellan tvรฅ steg.

Rekommenderad instรคllning beror pรฅ testdesignen. Men om du vill ha aggressiv belastning, รถvervรคg att vรคlja "Sรฅ snart den fรถregรฅende iterationen slutar"

pacing

Logga

En logg (som allmรคnt fรถrstรฅs) รคr en bokfรถring av alla hรคndelser medan du kรถr LoadRunner. Du kan aktivera logg fรถr att veta vad som hรคnder mellan din applikation och din server.

LoadRunner ger en kraftfull loggningsmekanism som รคr robust och skalbar pรฅ egen hand. Det lรฅter dig bara behรฅlla "Standardlogg" eller en detaljerad, konfigurerbar utรถkad logg eller inaktivera den helt.

En standardlogg รคr informativ och lรคtt att fรถrstรฅ. Den innehรฅller precis rรคtt mรคngd kunskap som du i allmรคnhet kommer att krรคva fรถr att felsรถka dina VUser-skript.

I fallet med utรถkad logg รคr all standardlogginformation en delmรคngd. Dessutom kan du ha parametersubstitution. Detta talar om fรถr LoadRunner-komponenten att inkludera fullstรคndig information om alla parametrar (frรฅn parameterisering) inklusive fรถrfrรฅgningar, sรฅvรคl som svarsdata.

Om du inkluderar "Data returnerad av server" kommer din logg att bli lรฅng. Detta kommer att inkludera all HTML, taggar, resurser, icke-resurser information som ingรฅr direkt i loggen. Alternativet รคr bara bra om du behรถver seriรถs felsรถkning. Vanligtvis gรถr detta loggfilen mycket stor i storlek och inte lรคtt att fรถrstรฅ.

Som du skulle kunna gissa vid det hรคr laget om du vรคljer "Advance Trace", kommer din loggfil att vara enorm. Du mรฅste ge det ett fรถrsรถk. Du kommer att mรคrka hur lรฅng tid det tar fรถr VUGen ocksรฅ har รถkat avsevรคrt, รคven om detta inte kommer att ha nรฅgon inverkan pรฅ transaktionens svarstid som rapporteras av VUGen. Detta รคr dock mycket fรถrhandsinformation och kanske anvรคndbar om du fรถrstรฅr รคmnesapplikationen, klient-till-server-kommunikationen mellan din applikation och hรฅrdvara samt detaljer pรฅ protokollnivรฅ. Vanligtvis รคr denna information i grunden dรถd eftersom den krรคver extrema anstrรคngningar fรถr att fรถrstรฅ och felsรถka.

Logga

Tips:

  • Oavsett hur lรฅng tid VUGen tar nรคr logg รคr aktiverad, har det ingen inverkan pรฅ transaktionssvarstiden. HP kallar detta fenomen som "modern teknik".
  • Inaktivera loggen om det inte krรคvs.
  • Inaktivera loggen nรคr du รคr klar med dina skript. Inkludering av skript med loggning aktiverad gรถr att kontrollern kรถr lรฅngsammare och rapporterar tjatande meddelanden.
  • Om du inaktiverar loggen รถkar kapaciteten fรถr det maximala antalet anvรคndare som du kan simulera frรฅn LoadRunner.
  • ร–vervรคg att anvรคnda "Skicka meddelande endast nรคr fel uppstรฅr" - detta tystar onรถdiga informationsmeddelanden och rapporterar endast felrelaterade meddelanden.

Think Times

Think Time รคr helt enkelt fรถrdrรถjningen mellan tvรฅ steg.

Think Time hjรคlper till att replikera anvรคndarbeteende eftersom ingen riktig anvรคndare kan anvรคnda nรฅgon applikation som en maskin (VUGen). VUGen genererar tรคnketid automatiskt. Du har fortfarande full kontroll รถver att ta bort, multiplicera eller fluktuera varaktigheten av tanketiden.

Fรถr att fรถrstรฅ mer kan en anvรคndare till exempel รถppna en skรคrm (det vill sรคga ett svar fรถljt av en fรถrfrรฅgan) och sedan ange anvรคndarnamn och lรถsenord innan du trycker pรฅ enter. Nรคsta interaktion mellan applikationen och servern kommer att ske nรคr han klickar pรฅ "Logga in". Tiden det tog en anvรคndare att skriva sitt anvรคndarnamn och lรถsenord รคr Think Time i LoadRunner.

Think Times

Om du vill simulera aggressiv belastning pรฅ applikationen, รถvervรคg att inaktivera tรคnketiden helt.

Men fรถr att simulera ett verkligt liknande beteende kan du "User Random Think Time" och stรคlla in procentsatserna efter รถnskemรฅl.

ร–vervรคg att anvรคnda Limit Think Time till en legitim period. Vanligtvis รคr 30 sekunder ganska bra nog.

Hastighetssimulering

Hastighetssimulering hรคnvisar helt enkelt till bandbreddskapacitet fรถr varje klientdator.

Eftersom vi simulerar tusentals VUser genom LoadRunner, รคr det otroligt hur enkelt LoadRunner har gjort fรถr att styra simuleringen av bandbredd/nรคtverkshastighet.

Om ni รคr kunder som kommer รฅt er applikation รถver 128 Kbps kan ni styra den hรคrifrรฅn. Du kommer att fรฅ simulera "riktigt likt beteende" vilket borde hjรคlpa dig att fรฅ rรคtt prestationsstatistik.

Hastighetssimulering

Den bรคsta rekommendationen รคr att stรคlla in pรฅ Anvรคnd maximal bandbredd. Detta kommer att hjรคlpa till att bortse frรฅn nรคtverksrelaterade prestandaflaskhalsar och fokusera pรฅ eventuella problem i applikationen fรถrst. Du kan alltid kรถra testet flera gรฅnger fรถr att se varierande beteende under olika omstรคndigheter.

Webblรคsaremulering

Anvรคndarupplevelsen beror inte pรฅ vilken webblรคsare en slutanvรคndare anvรคnder. Uppenbarligen ligger detta utanfรถr ramarna fรถr prestationsmรฅtt. Du kan dock vรคlja vilken webblรคsare du vill emulera.

Webblรคsaremulering

Kan du svara fรถr dig sjรคlv nรคr exakt det kommer att spela nรฅgon roll fรถr dig att vรคlja rรคtt webblรคsare i den hรคr konfigurationen?

Du kommer att anvรคnda den hรคr konfigurationen om du รคr fรถremรฅl fรถr ansรถkan รคr en webbapplikation som returnerar olika svar fรถr olika webblรคsare. Till exempel fรฅr du se olika bilder och innehรฅll fรถr IE och Firefox och sรฅ vidare

En annan viktig instรคllning รคr Simulera webblรคsarcache. Om du vill mรคta svarstiden nรคr cache aktiverat, markera den hรคr rutan. Om du letar efter vรคrsta tรคnkbara situationer รคr detta uppenbarligen inte ett รถvervรคgande.

Nedladdning av icke-HTML-resurser lรฅter LoadRunner ladda ner valfri CSS, JS och annan rich media. Detta bรถr fรถrbli kontrollerat. Men om du vill ta bort detta frรฅn din prestandatestdesign kan du avmarkera detta.

Proxy

Det รคr bรคst att eliminera proxy helt frรฅn din Testmiljรถ โ€“ detta kommer att gรถra testresultaten opรฅlitliga. Du kan dock mรถta situationer dรคr det รคr oundvikligt. I en sรฅdan situation underlรคttar LoadRunner dig med proxyinstรคllningar.

Du kommer att arbeta (eller borde arbeta) med Ingen proxy-instรคllning. Du kan hรคmta den frรฅn din standardwebblรคsare. Glรถm dock inte att kontrollera vilken webblรคsare som รคr instรคlld pรฅ standard och vilken proxykonfiguration fรถr standardwebblรคsare som รคr.

Proxy

Om du anvรคnder en proxy och den krรคver autentisering (eller ett skript) kan du klicka pรฅ knappen Autentisera vilket leder till ett nytt fรถnster. Se skรคrmdumpen nedan.

Proxy

Anvรคnd den hรคr skรคrmen fรถr att ange anvรคndarnamn och lรถsenord fรถr att bli autentiserad pรฅ proxyservern. Klicka pรฅ OK fรถr att stรคnga skรคrmen.

Grattis. Du รคr klar med att konfigurera ditt VUGen-skript. Glรถm inte att konfigurera det fรถr alla dina VUser-skript.

Sammanfatta detta inlรคgg med: