Parametrering, funktioner, transaktioner i LoadRunner
โก Smart opsummering
Parametrisering, transaktioner og runtime-indstillinger er de tre forbedringer, der forvandler en almindelig VuGen-optagelse til et script, der opfรธrer sig som en rigtig bruger og rapporterer timings, du rent faktisk kan stole pรฅ.
Et optaget script kan simulere en virtuel bruger; dog er en simpel optagelse muligvis ikke nok til at genskabe den reelle brugeradfรฆrd.
Nรฅr et script optages, dรฆkker det en enkelt, lige proces gennem den pรฅgรฆldende applikation. En rigtig bruger kan udfรธre flere iterationer af en proces, fรธr vedkommende logger ud. Forsinkelsen mellem at klikke pรฅ knapper (betรฆnkningstiden) varierer fra person til person, og nogle brugere nรฅr din applikation via en hurtig forbindelse, mens andre ikke gรธr. Sรฅ for at fรฅ den virkelige fornemmelse af en slutbruger, er vi nรธdt til at forbedre vores scripts, sรฅ de opfรธrer sig meget tรฆt pรฅ rigtige brugere.
Det er den vigtigste overvejelse, nรฅr man udfรธrer "Test af ydeevne", men der er mere i et VUser-script. Hvordan mรฅler man den tid, det tager for en VUser, mens System Under Load (SUL) testes? Hvordan ved man, om VUser'en bestod eller mislykkedes pรฅ et bestemt tidspunkt, og om en backend-proces mislykkedes, eller om serverressourcerne lรธb tรธr for strรธm?
Vi er nรธdt til at forbedre vores manuskript for at kunne besvare alle ovenstรฅende spรธrgsmรฅl.
Mรฆrkebemรฆrkning: VuGen blev lanceret som HP, derefter Micro Focus, og er nu en del af OpenText Professionel prรฆstationsteknikFunktionerne og indstillingerne nedenfor er uรฆndrede.
Brug af transaktioner
Transaktioner mรฅler serverens svartid for enhver handling. Kort sagt mรฅler en "transaktion" den tid, systemet bruger pรฅ en bestemt anmodning. Det kan vรฆre sรฅ lille som et klik pรฅ en knap eller et AJAX-kald, der udlรธses, nรฅr en tekstboks mister fokus.
Det er ligetil at anvende transaktioner. Skriv รฉn linje kode, fรธr anmodningen foretages, og luk transaktionen, nรฅr anmodningen slutter. LoadRunner krรฆver kun en streng som transaktionsnavn.
For at รฅbne en transaktion skal du bruge denne kodelinje:
lr_start_transaction(โTransaction Nameโ);
For at lukke transaktionen skal du bruge denne kodelinje:
lr_end_transaction(โTransaction Nameโ, <status>);
Det fortรฆller LoadRunner, om netop denne transaktion var vellykket eller mislykket. De mulige parametre kunne vรฆre:
- LR_AUTO
- LR_PASS
- LR_FAIL
Eksempel:
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);
Code noter: Uddragene gengives prรฆcis som de er udgivet, inklusive typografiske citater. Et rigtigt VuGen-script krรฆver direkte ASCII-dobbelte anfรธrselstegn, sรฅ skriv dem igen, hvis du kopierer denne kode.
Bemรฆrk:
- Glem ikke, du arbejder med "C", og det er et sprog, der skelner mellem store og smรฅ bogstaver.
- Punktumtegnet (.) er ikke tilladt i et transaktionsnavn, selvom du kan bruge mellemrum og understregninger.
- Hvis du har forgrenet din kode godt og tilfรธjet checkpoints for at verificere svaret fra serveren, kan du bruge brugerdefineret fejlhรฅndtering sรฅsom LR_PASS eller LR_FAIL. Ellers kan du bruge LR_AUTO, og LoadRunner vil automatisk hรฅndtere serverfejl (HTTP 500, 400 osv.).
- Nรฅr du anvender transaktioner, skal du sรธrge for, at der ikke er nogen tanketidsopgรธrelse klemt inde i transaktionen, ellers vil den periode altid blive inkluderet i transaktionen.
- Da LoadRunner krรฆver en konstant streng som transaktionsnavn, er et almindeligt problem ved anvendelse af transaktioner en uoverensstemmelse mellem strengene. Hvis du angiver et forskelligt navn, nรฅr du รฅbner og lukker en transaktion, vil du fรฅ mindst 2 fejl. Den transaktion, du รฅbnede, blev aldrig lukket, sรฅ LoadRunner giver en fejl; og den transaktion, du forsรธger at lukke, blev aldrig รฅbnet, hvilket giver en anden fejl.
- Begge fejl vises i afspilningsloggen, sรฅ nรฅr en af โโdem rapporteres, skal du fรธrst kontrollere transaktionsnavnet pรฅ รฅbnings- og slutopgรธrelserne.
- Da LoadRunner automatisk tager sig af synkronisering af anmodninger og svar, behรธver du ikke bekymre dig om svaret, nรฅr du anvender transaktioner.
Mรธdepunkter, kommentarer og scriptfunktioner
Tre mindre forbedringer fรฅr et script til at opfรธre sig og lรฆse som produktionskode: mรธdesteder, kommentarer og funktionsbrowseren, der er indbygget i VuGen.
Rendezvous Points
Et mรธdested er et "mรธdested". Det er en enkelt sรฆtning, der fortรฆller LoadRunner at introducere samtidighed. Du indsรฆtter mรธdesteder i VUser-scripts for at emulere en hรธj brugerbelastning pรฅ serveren.
Mรธdepunkter instruerer en V-bruger til at vente under udfรธrelsen, indtil flere V-brugere ankommer til et bestemt punkt, sรฅ de kan udfรธre en opgave samtidigt. For eksempel, for at efterligne spidsbelastning pรฅ en bankserver, indsรฆt et mรธdepunkt, der instruerer 100 V-brugere til at indsรฆtte kontanter pรฅ samme tid.
Hvis mรธdestederne ikke er placeret korrekt, vil V-brugerne tilgรฅ forskellige dele af applikationen, selv for det samme script. Dette skyldes, at hver V-bruger fรฅr en forskellig svartid, og derfor halter nogle fรฅ brugere bagefter.
Syntaks:
lr_rendezvous(โLogical Nameโ);
Rettelsesnotat: den udgivne side staver dette lr_rendesvousDet korrekte funktionsnavn er lr_rendezvous; den stavefejlagtigt stavede formular vil ikke kompileres.
Bedste praksis:
- Prรฆfiks et mรธdepunkt med "rdv_" for bedre kodelรฆsbarhed; f.eks. "rdv_Login"
- Fjern alle umiddelbart tilstรธdende tรฆnketidsudsagn
- Anvend mรธdesteder i scriptvisning efter optagelse
Scriptvisningen nedenfor viser en rendezvous-sรฆtning indsat i en optaget handling:
Kommentarer
Tilfรธj kommentarer for at beskrive en aktivitet, et stykke kode eller en linje kode. Kommentarer hjรฆlper med at gรธre koden forstรฅelig for alle, der henviser til den i fremtiden. De giver information om en specifik handling og adskiller to sektioner for at skelne mellem dem.
Du kan tilfรธje kommentarer
- Under optagelse (ved brug af vรฆrktรธjet)
- Efter optagelse (direkte skrivning i kode)
Bedste รธvelse: Marker eventuelle kommentarer รธverst i hver scriptfil.
Indsรฆttelse af funktioner via menuen
Selvom du kan skrive simple kodelinjer direkte, skal du muligvis bruge et fingerpeg for at huske en funktion. Du kan ogsรฅ bruge Steps Toolbox (kendt som Insert Function fรธr version 12) til at finde og indsรฆtte enhver funktion direkte i dit script.
Du kan finde Trinvรฆrktรธjskassen under Vis โ Trinvรฆrktรธjskasse, som vist nedenfor.
Dette รฅbner et sidevindue. Se pรฅ snapshottet:
Hvad er parametrisering?
En parameter i VuGen er en beholder, der indeholder en registreret vรฆrdi, som erstattes for forskellige brugere.
Under udfรธrelsen af โโscriptet (i VuGen eller controller), erstatter en vรฆrdi fra en ekstern kilde (f.eks. en .txt-fil, XML eller en database) den forrige vรฆrdi af parameteren.
Parameterisering er nyttig til at sende dynamiske (eller unikke) vรฆrdier til serveren. For eksempel kan en forretningsproces vรฆre nรธdt til at kรธre 10 iterationer, mens der vรฆlges et unikt brugernavn hver gang.
Det hjรฆlper ogsรฅ med at simulere adfรฆrd i virkeligheden i forhold til det pรฅgรฆldende system. Se pรฅ eksemplerne nedenfor.
Eksempler pรฅ problemer:
- En forretningsproces fungerer kun for den aktuelle dato, som kommer fra serveren, sรฅ den kan ikke sendes som en hardcoded anmodning.
- Nogle gange sender klientapplikationen et unikt ID til serveren (for eksempel session_id), sรฅ processen kan fortsรฆtte, selv for en enkelt bruger. I sรฅdanne tilfรฆlde hjรฆlper parametrisering.
- Klientapplikationen vedligeholder ofte en cache af de data, der sendes til og fra serveren. Som fรธlge heraf modtager serveren ikke reel brugeradfรฆrd (hvor serveren kรธrer en anden algoritme afhรฆngigt af sรธgekriterierne). VUser-scriptet vil udfรธres korrekt, men den tegnede prรฆstationsstatistik vil ikke vรฆre meningsfuld. Brug af forskellige data via parametrisering hjรฆlper med at emulere serversideaktivitet sรฅsom lagrede procedurer og trรฆner systemet.
- En dato, der er hardkodet i VUser under optagelse, er muligvis ikke lรฆngere gyldig, nรฅr datoen er overskredet. Parameterisering af datoen gรธr det muligt for VUser-udfรธrelsen at lykkes ved at erstatte den hardkodede dato. Sรฅdanne felter eller anmodninger er de rette kandidater til parametrisering.
Du opretter en ved at hรธjreklikke pรฅ den registrerede vรฆrdi i scriptvisning og vรฆlge Erstat med en parameter. VuGen spรธrger derefter, hvilken type der leverer vรฆrdien:
| Parametertype | Vรฆrdi det leverer |
|---|---|
| File (Felt) | Vรฆrdier lรฆst fra en kolonne i en .dat-fil. |
| Bordlampe | En blok af rรฆkker og kolonner pรฅ รฉn gang. |
| Dato / tid | Aktuel dato og klokkeslรฆt i et valgt format. |
| Tilfรฆldigt tal | Et tal fra et interval, du angiver. |
| Enkelt nummer | Et distinkt tal pr. VUser, ud fra en startvรฆrdi og en blokstรธrrelse. |
| Iterationsnummer | Det nuvรฆrende iterationsantal. |
| Bruger-ID | Det identifikator, der tildeles ved afspilning. |
| Gruppe / Indlรฆs Generator Navn | VUser-gruppen eller generatormaskinen. |
| XML | Et fragment fra et XML-datasรฆt. |
| Brugerdefineret funktion | En vรฆrdi returneret af din egen biblioteksfunktion. |
To yderligere muligheder bestemmer, hvordan data forbruges pรฅ tvรฆrs af iterationer:
| Option | Choices | Hvad den kontrollerer |
|---|---|---|
| Vรฆlg nรฆste rรฆkke | Sekventiel, tilfรฆldig, unik | Hvilken rรฆkke en VUser lรฆser derefter. |
| Opdater vรฆrdi den | Hver iteration, Hver forekomst, รn gang | Nรฅr vรฆrdien opdateres. |
Gennemgangen nedenfor viser parametrisering anvendt pรฅ et optaget script:
Klik link. hvis videoen ikke er tilgรฆngelig.
Kรธretidsindstillinger og deres indvirkning pรฅ VUser-simulering
Kรธretidsindstillinger er lige sรฅ vigtige som dit VuGen-script. Med varierende konfigurationer kan du opnรฅ helt forskellige testdesigns, hvilket er grunden til, at inkonsistente kรธretidsindstillinger er den sรฆdvanlige รฅrsag til ikke-gentagelige resultater. Lad os diskutere hver attribut รฉn efter รฉn.
Kรธr Logic
Run Logic definerer antallet af gange, alle handlinger vil blive udfรธrt, undtagen vuser_init og vuser_end.
Dette gรธr det sandsynligvis tydeligere, hvorfor LoadRunner foreslรฅr keeping al login-koden i vuser_init og logout-delen i vuser_end, begge eksklusivt.
Hvis du har oprettet flere handlinger โ f.eks. Log ind, ร bn skรฆrm, Beregn leje, Indsend penge, Tjek saldo og Log ud โ sรฅ vil nedenstรฅende scenarie finde sted for hver V-bruger:
Alle V-brugere logger ind, udfรธrer ร bn skรฆrm, Beregn leje, Indsend midler og Tjek saldo, derefter igen ร bn skรฆrm, Beregn leje osv., gentaget 10 gange, efterfulgt af log ud (รฉn gang).
Dette er en effektiv indstilling, der lader scriptet opfรธre sig mere som en rigtig bruger. Husk, at en rigtig bruger ikke logger ind og ud hver gang; de gentager normalt de samme trin.
Hvor mange gange klikker du pรฅ "indbakke", nรฅr du tjekker din e-mail, fรธr du logger ud?
pacing
Dette er vigtigt. De fleste mennesker er ikke i stand til at forstรฅ forskellen mellem pacing og tรฆnketid. Den eneste forskel er, at pacing refererer til forsinkelsen mellem iterationer, hvorimod tรฆnketid er forsinkelsen mellem to trin.
Den anbefalede indstilling afhรฆnger af testdesignet. Hvis du dog รธnsker at anvende aggressiv belastning, bรธr du overveje at vรฆlge "Sรฅ snart den forrige iteration slutter", som vist nedenfor.
Log
En log er, som det generelt forstรฅs, en registrering af alle hรฆndelser, mens du kรธrer LoadRunner. Du kan aktivere loggen til at vide, hvad der sker mellem din applikation og din server.
LoadRunner tilbyder en kraftfuld logfรธringsmekanisme, der er robust og skalerbar i sig selv. Den giver dig mulighed for kun at gemme en "Standardlog", en detaljeret og konfigurerbar udvidet log eller helt at deaktivere logfรธring.
En standardlog er informativ og letforstรฅelig. Den indeholder prรฆcis den rette mรฆngde information, du generelt har brug for til at fejlfinde dine VUser-scripts.
I tilfรฆlde af den udvidede log er alle standardlogoplysninger en delmรฆngde. Derudover kan du have parametersubstitution. Dette fortรฆller LoadRunner-komponenten, at den skal inkludere komplette oplysninger om alle parametrene (fra parameterisering), inklusive anmodninger sรฅvel som svardata.
Hvis du inkluderer "Data returneret af server", vil din log blive lรฆngere. Den vil inkludere al HTML, tags, ressourcer og ikke-ressourceoplysninger direkte i loggen. Denne mulighed er kun god, hvis du har brug for seriรธs fejlfinding. Dette gรธr normalt logfilen meget stor og ikke letforstรฅelig.
Som du mรฅske har gรฆttet nu, hvis du vรฆlger "Avanceret Trace" din logfil vil vรฆre enorm. Du skal prรธve det. Du vil bemรฆrke, at den tid, VuGen bruger, ogsรฅ รธges betydeligt, selvom dette ikke har nogen indflydelse pรฅ den transaktionsresponstid, der rapporteres af VuGen. Dette er meget avanceret information, og den er kun nyttig, hvis du forstรฅr den pรฅgรฆldende applikation, klient-til-server-kommunikationen mellem din applikation og hardware samt detaljer pรฅ protokolniveau. Normalt krรฆver disse oplysninger en ekstrem indsats at lรฆse og fejlfinde.
tips:
- Uanset hvor lang tid VuGen bruger, nรฅr loggen er aktiveret, har det ingen indflydelse pรฅ transaktionsresponstiden โ logfรธringsoverhead er ikke inkluderet i den mรฅlte tid.
- Deaktiver loggen, hvis den ikke er nรธdvendig.
- Deaktiver loggen, nรฅr du er fรฆrdig med dine scripts. Hvis du inkluderer scripts med loggen aktiveret, vil controlleren kรธre langsommere og rapportere irriterende meddelelser.
- Deaktivering af loggen vil รธge det maksimale antal brugere, du kan simulere fra LoadRunner.
- Overvej at bruge "Send kun beskeder, nรฅr der opstรฅr en fejl" โ dette dรฆmper unรธdvendige informationsmeddelelser og rapporterer kun fejlrelaterede beskeder.
Tรฆnk Tider
Think Time er simpelthen forsinkelsen mellem to trin.
Tรฆnketid hjรฆlper med at replikere brugeradfรฆrd, da ingen rigtig bruger kan bruge en applikation som en maskine. VuGen genererer tรฆnketid automatisk. Du har stadig fuld kontrol over at fjerne, multiplicere eller variere varigheden af โโtรฆnketiden.
For at forstรฅ det bedre: en bruger kan รฅbne en skรฆrm (et svar efterfulgt af en anmodning) og derefter indtaste et brugernavn og en adgangskode, fรธr vedkommende trykker pรฅ Enter. Den nรฆste interaktion mellem applikationen og serveren sker, nรฅr brugeren klikker pรฅ "Log ind". Den tid, det tog brugeren at indtaste brugernavn og adgangskode, er Think Time i LoadRunner.
Hvis du รธnsker at simulere aggressiv belastning pรฅ applikationen, skal du overveje at deaktivere tรฆnketid fuldstรฆndigt.
For at simulere adfรฆrd i virkeligheden kan du dog vรฆlge "Brug tilfรฆldig tรฆnketid" og indstille procentdelene som รธnsket.
Overvej at bruge "Limit Think Time" til at begrรฆnse det til et legitimt tidsrum. Normalt er 30 sekunder ret godt nok.
Hastighedssimulering
Hastighedssimulering refererer simpelthen til bรฅndbreddekapaciteten for hver klientmaskine.
Da vi simulerer tusindvis af V-brugere via LoadRunner, er det bemรฆrkelsesvรฆrdigt, hvor simpel LoadRunner har gjort simuleringen af โโbรฅndbredde og netvรฆrkshastighed.
Hvis dine kunder tilgรฅr din applikation over 128 Kbps, kan du styre det herfra. Du vil kunne simulere adfรฆrd i virkeligheden, hvilket burde hjรฆlpe dig med at fรฅ den rigtige prรฆstationsstatistik.
Den bedste anbefaling er at indstille Brug maksimal bรฅndbredde. Dette hjรฆlper dig med at ignorere eventuelle netvรฆrksrelaterede flaskehalse i ydeevnen og fokusere pรฅ potentielle problemer i applikationen fรธrst. Du kan altid kรธre testen flere gange for at se varierende adfรฆrd under forskellige omstรฆndigheder.
Browseremulering
Brugeroplevelsen afhรฆnger ikke af den browser, en slutbruger bruger, sรฅ dette ligger i vid udstrรฆkning uden for rammerne af ydeevnemรฅlinger. Du kan dog vรฆlge, hvilken browser du รธnsker at emulere, som ruden nedenfor viser.
Hvornรฅr er det egentlig ligegyldigt, hvilken browser du vรฆlger i denne konfiguration?
Du skal bruge denne konfiguration, hvis din emneapplikation er en webapplikation, der returnerer forskellige svar for forskellige browsere. For eksempel kan du se forskellige billeder og indhold for Internet Explorer og Firefox.
En anden vigtig indstilling er Simuler browsercache. Hvis du vil mรฅle svartid med cachen aktiveret, skal du markere dette felt. Hvis du leder efter den vรฆrst tรฆnkelige situation, er det naturligvis ikke en overvejelse.
Hvis du downloader ikke-HTML-ressourcer, kan LoadRunner downloade CSS, JS og andre rich media-ressourcer. Dette skal forblive markeret. Hvis du รธnsker at fjerne det fra dit performancetestdesign, kan du fjerne markeringen.
proxy
Det er bedst at fjerne proxyen helt fra din Testmiljรธ โ en proxy, der sidder i stien, gรธr testresultaterne upรฅlidelige. Du kan dog stรธde pรฅ situationer, hvor det er uundgรฅeligt. I en sรฅdan situation tilbyder LoadRunner proxyindstillinger.
Du vil arbejde (eller burde arbejde) med indstillingen Ingen proxy. Du kan hente den fra din standardbrowser. Glem dog ikke at kontrollere, hvilken browser der er indstillet som standard, og hvad proxykonfigurationen for den pรฅgรฆldende browser er.
Hvis du bruger en proxy, og det krรฆver godkendelse (eller et script), kan du klikke pรฅ knappen Godkend, hvilket fรธrer til et nyt vindue. Se skรฆrmbilledet nedenfor.
Brug denne skรฆrm til at angive et brugernavn og en adgangskode for at blive godkendt pรฅ proxyserveren. Klik pรฅ OK for at lukke skรฆrmbilledet.
Tillykke. Du er fรฆrdig med at konfigurere dit VuGen-script. Glem ikke at konfigurere det for alle dine VUser-scripts.
Nรฆste kommer korrelation, kรธrer scenariet i controller, og lรฆsning resulterer i LoadRunner-analyse. Se LoadRunner-arkitektur og Load Testing vejledninger.











