Parametrering, funktioner, transaktioner i LoadRunner

Et optaget script kan simulere en virtuel bruger; dog er blot en optagelse mรฅske ikke nok til at replikere den "rigtige brugeradfรฆrd".

Nรฅr et manuskript er optaget, dรฆkker det enkelt og lige flow af emneapplikationen. Mens en rigtig bruger kan udfรธre flere iterationer af enhver proces, fรธr han logger ud. Forsinkelsen mellem at trykke pรฅ knapperne (tรฆnk tid) vil variere fra person til person. Chancerne er, at nogle rigtige brugere fรฅr adgang til din applikation via DSL, og nogle fรฅr adgang til den via en dial-up. Sรฅ for at fรฅ den rigtige fornemmelse af slutbrugeren, er vi nรธdt til at forbedre vores scripts, sรฅ de matcher nรธjagtigt, eller i det mindste meget tรฆt pรฅ virkelige brugeres adfรฆrd.

Ovenstรฅende er den vigtigste overvejelse, nรฅr man udfรธrer "Test af ydeevneโ€, men der er mere i et VU Script. Hvordan vil du mรฅle den nรธjagtige tid, det tager en VUser, nรฅr SUL gennemgรฅr en prรฆstationstest? Hvordan ville du vide, om VUser er gรฅet igennem eller fejlede pรฅ et bestemt tidspunkt? Hvad er รฅrsagen til fejlen, om en eller anden backend-proces mislykkedes, eller om serverressourcerne var begrรฆnsede?

Vi er nรธdt til at forbedre vores script for at hjรฆlpe med at besvare alle ovenstรฅende spรธrgsmรฅl.

Brug af transaktioner

Transaktioner er mekanik til at mรฅle serverens responstid for enhver operation. Med enkle ord hjรฆlper brugen af โ€‹โ€‹"Transaktion" med at mรฅle den tid, det tager systemet for en bestemt anmodning. Det kan vรฆre sรฅ lille som et klik pรฅ en knap eller et AJAX-opkald, nรฅr du mister fokus fra tekstboksen.

Det er ligetil at anvende transaktioner. Bare skriv en linje kode, fรธr anmodningen sendes til serveren, 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(โ€œMit_Loginโ€, LR_AUTO);
lr_end_transaction(โ€œ001_Opening_Dashboard Nameโ€, LR_PASS);
lr_end_transaction("Business_Workflow_Transaction Name", LR_FAIL);

Bemรฆrk:

  • Glem ikke, du arbejder med "C", og det er et sprog, der skelner mellem store og smรฅ bogstaver.
  • Punktum (.) er ikke tilladt i transaktionsnavnet, selvom du kan bruge mellemrum og understregning.
  • Hvis du har forgrenet din kode godt og tilfรธjet kontrolpunkter for at bekrรฆfte svaret fra serveren, kan du bruge tilpasset 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 sikre dig, at der ikke er nogen tรฆnke_tid erklรฆring bliver klemt eller pรฅ anden mรฅde vil din transaktion altid inkludere denne periode.
  • Da LoadRunner krรฆver en konstant streng som transaktionsnavn, er et almindeligt problem ved anvendelse af transaktion uoverensstemmelse mellem streng. Hvis du giver et andet navn, nรฅr du รฅbner og lukker en transaktion, vil du have mindst 2 fejl. Da transaktionen du รฅbnede aldrig blev lukket, vil LoadRunner give en fejl. Desuden blev transaktionen, du forsรธger at lukke, aldrig รฅbnet, hvilket resulterede i en fejl.
  • Kan du bruge din intelligens og svare dig selv pรฅ, hvilken af โ€‹โ€‹ovenstรฅende fejl der vil blive rapporteret fรธrst? For at validere dit svar, hvorfor sรฅ ikke lave din egen fejl? Hvis du har svaret rigtigt, er du pรฅ vej track. Hvis du svarede forkert, skal du fokusere.
  • Da LoadRunner automatisk sรธrger for synkronisering af anmodninger og svar, behรธver du ikke bekymre dig om svar, nรฅr du anvender transaktioner.

Forstรฅ Think Time, Rendezvous Points og Kommentarer

Rendezvous Points

Rendezvous Points betyder "mรธdepunkter". Det er kun รฉn udsagn, der fortรฆller LoadRunner at introducere samtidighed. Du indsรฆtter rendezvous-punkter i VUser-scripts for at efterligne tung brugerbelastning pรฅ serveren.

Rendezvous-punkter instruerer VUser om at vente under testudfรธrelsen pรฅ, at flere VUser ankommer til et bestemt punkt, sรฅ de kan udfรธre en opgave samtidigt. For at efterligne spidsbelastning pรฅ bankserveren kan du f.eks. indsรฆtte et mรธdepunkt, der instruerer 100 VUser om at indbetale kontanter pรฅ deres konti pรฅ samme tid. Dette kan nemt opnรฅs ved hjรฆlp af rendezvous.

Hvis mรธdepunkterne ikke er placeret korrekt, vil VUser fรฅ adgang til forskellige dele af applikationen โ€“ selv for det samme script. Dette skyldes, at hver VUser fรฅr forskellig responstid, og derfor er fรฅ brugere bagud.

Syntaks: lr_rendesvous(โ€œLogisk navnโ€);

Bedste praksis:

  • Prรฆfiks et mรธdepunkt med "rdv_" for bedre kodelรฆsbarhed; f.eks. "rdv_Login"
  • Fjern eventuelle รธjeblikkelige tรฆnketidsudsagn
  • Anvendelse af mรธdepunkter i en scriptvisning (efter optagelse)

Rendezvous Points

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 specifik drift og adskiller to sektioner for at skelne.

Du kan tilfรธje kommentarer

  • Under optagelse (ved hjรฆlp af vรฆrktรธj)
  • Efter optagelse (direkte skrivning i kode)

Bedste Practice: Marker eventuelle kommentarer รธverst pรฅ hver scriptfil

Indsรฆttelse af funktioner gennem menuen

Selvom du direkte kan skrive enkle kodelinjer, har du muligvis brug for et fingerpeg for at genkalde 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 Steps Toolbar under Vis ร Steps Toolbox.

Indsรฆttelse af funktioner via menu

Dette รฅbner et sidevindue, se pรฅ รธjebliksbilledet:

Indsรฆttelse af funktioner via menu

Hvad er parametrisering?

A parameter i VUGen er en container, der indeholder en registreret vรฆrdi, der udskiftes for forskellige brugere.

Under udfรธrelsen af โ€‹โ€‹scriptet (i VUGen eller Controller) erstatter vรฆrdien fra en ekstern kilde (som .txt, XML eller database) den forrige vรฆrdi af parameteren.

Parametrisering er nyttig til at sende dynamiske (eller unikke) vรฆrdier til serveren, for eksempel; en forretningsproces รธnskes til at kรธre 10 iterationer, men vรฆlge unikt brugernavn hver gang.

Det hjรฆlper ogsรฅ med at stimulere virkelig-lignende adfรฆrd til emnesystemet. Tag et kig pรฅ nedenstรฅende eksempel:

Eksempler pรฅ problemer:

Forretningsprocessen fungerer kun for den aktuelle dato, som kommer fra serveren, og kan derfor ikke videregives som en hรฅrdkodet anmodning.

Nogle gange sender klientapplikationen et unikt id til serveren (for eksempel session_id) for at processen kan fortsรฆtte (selv for en enkelt bruger) โ€“ I et sรฅdant tilfรฆlde hjรฆlper parameterisering.

Ofte vedligeholder klientapplikationen en cache af data, der sendes til og fra serveren. Som et resultat modtager serveren ikke en reel brugeradfรฆrd (i tilfรฆlde af at serveren kรธrer forskellige algoritmer afhรฆngigt af sรธgekriterier). Selvom VUser-scriptet vil kรธre med succes, vil de tegnede prรฆstationsstatistikker ikke vรฆre meningsfulde. Brug af forskellige data gennem parameterisering hjรฆlper med at emulere aktivitet pรฅ serversiden (procedurer osv.) og trรฆner systemet.

En dato, der er hรฅrdkodet i VUser under optagelse, er muligvis ikke lรฆngere gyldig, nรฅr denne dato er passeret. Parametrisering af datoen gรธr det muligt for VUser-udfรธrelsen at lykkes ved at erstatte den hรฅrdkodede dato. Sรฅdanne felter eller anmodninger er de rigtige kandidater til parameterisering.

Klik link. hvis videoen ikke er tilgรฆngelig

Kรธrselstidsindstillinger og deres indvirkning pรฅ VU-simulering

Kรธretidsindstillinger har lige sรฅ meget betydning som dit VUGen-script. Med varierende konfigurationer kan du opnรฅ forskellige testdesigns. Det er derfor, du kan ende i ikke-gentagelige resultater, hvis kรธrselstidsindstillingerne ikke er konsistente. Lad os diskutere hver egenskab en efter en.

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, lad os sige, Log ind, ร…bn skรฆrm, Beregn leje, Indsend midler, Tjek saldo og log ud, sรฅ vil nedenstรฅende scenarie finde sted for hver VUser:

Alle VUsers vil logge ind, udfรธre รฅben skรฆrm, beregne leje, indsende midler, kontrollere saldo โ€“ derefter โ€“ igen ร…bne skรฆrm, beregne leje... og sรฅ videre โ€“ gentage 10 gange โ€“ efterfulgt af log ud (รฉn gang).

Kรธr Logic

Dette er en kraftfuld indstilling, der gรธr det muligt at agere mere som en rigtig bruger. Husk, at en rigtig bruger ikke logger ind og logger ud hver gang โ€“ han 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. For det meste er folk ude af stand til at forstรฅ forskellen mellem pacing og tรฆnketid. Den eneste forskel er, "pacing refererer til forsinkelsen mellem iterationer", hvorimod tror tid er forsinkelsen mellem 2 trin.

Den anbefalede indstilling afhรฆnger af testdesignet. Men hvis du รธnsker at have aggressiv belastning, kan du overveje at vรฆlge "Sรฅ snart den forrige iteration slutter"

pacing

Log

En log (som den generelt forstรฅs) er en bogholderping af alle hรฆndelser, mens du kรธrer LoadRunner. Du kan aktivere log for at vide, hvad der sker mellem din applikation og din server.

LoadRunner giver en kraftfuld logningsmekanisme, som er robust og skalerbar i sig selv. Det giver dig mulighed for kun at beholde "Standard Log" eller en detaljeret, konfigurerbar udvidet log eller deaktivere den helt.

En standardlog er informativ og let forstรฅelig. Den indeholder den helt rigtige mรฆngde viden, du vil generelt krรฆve fejlfinding af dine VUser-scripts.

I tilfรฆlde af udvidet log er alle standard logoplysninger en delmรฆngde. Derudover kan du have parametersubstitution. Dette fortรฆller LoadRunner-komponenten at inkludere fuldstรฆndig information om alle parametrene (fra parametrering), inklusive anmodninger, samt svardata.

Hvis du inkluderer "Data returneret af server", vil din log blive lรฆngere. Dette vil inkludere al HTML, tags, ressourcer, ikke-ressourceoplysninger inkluderet direkte i loggen. Muligheden er kun god, hvis du har brug for seriรธs fejlfinding. Normalt gรธr dette logfilen meget stor i stรธrrelse og ikke let forstรฅelig.

Som du mรฅske har gรฆttet nu, hvis du vรฆlger "Forhรฅndsvisning" Traceโ€, vil din logfil vรฆre enorm. Du skal prรธve det. Du vil bemรฆrke, at den tid, som VUGen bruger, ogsรฅ er steget betydeligt, selvom dette ikke vil have nogen indflydelse pรฅ den transaktionsresponstid, der rapporteres af VUGen. Dette er dog meget avanceret information og kan vรฆre nyttig, hvis du forstรฅr den pรฅgรฆldende applikation, klient-til-server-kommunikationen mellem din applikation og hardware samt detaljer pรฅ protokolniveau. Normalt er disse oplysninger dรธde i bund og grund, da det krรฆver en ekstrem indsats at forstรฅ og fejlfinde.

Log

tips:

  • Uanset hvor lang tid VUGen tager, nรฅr log er aktiveret, har det ingen indflydelse pรฅ transaktionens responstid. HP kalder dette fรฆnomen som "state of the art teknologi."
  • Deaktiver log, hvis det ikke er pรฅkrรฆvet.
  • Deaktiver log, nรฅr du er fรฆrdig med dine scripts. Inkludering af scripts med logning aktiveret vil fรฅ controlleren til at kรธre langsommere og rapportere nagende beskeder.
  • Deaktivering af log vil รธge kapaciteten for det maksimale antal brugere, du kan simulere fra LoadRunner.
  • Overvej at bruge "Send kun besked, nรฅr der opstรฅr fejl" - dette vil slรฅ unรธdvendige informationsmeddelelser fra og kun rapportere fejlrelaterede meddelelser.

Tรฆnk Tider

Think Time er simpelthen forsinkelsen mellem to trin.

Think Time hjรฆlper med at replikere brugeradfรฆrd, da ingen rigtig bruger kan bruge nogen applikation som en maskine (VUGen). VUGen genererer tรฆnketid automatisk. Du har stadig fuld kontrol over at fjerne, multiplicere eller svinge varigheden af โ€‹โ€‹tรฆnketiden.

For at forstรฅ mere kan en bruger f.eks. รฅbne en skรฆrm (det vil sige et svar efterfulgt af en anmodning) og derefter angive brugernavnet og adgangskoden, fรธr han trykker pรฅ Enter. Den nรฆste interaktion mellem applikationen og serveren vil ske, nรฅr han klikker pรฅ "Log ind". Den tid, det tog en bruger at indtaste sit brugernavn og password, er Think Time i LoadRunner.

Tรฆnk Tider

Hvis du รธnsker at simulere aggressiv belastning pรฅ applikationen, skal du overveje at deaktivere tรฆnketid fuldstรฆndigt.

Men for at simulere en rigtig lignende adfรฆrd kan du "User Random Think Time" og indstille procenterne som รธnsket.

Overvej at bruge Limit Think Time til en legitim periode. Normalt er 30 sekunder ret godt nok.

Hastighedssimulering

Hastighedssimulering refererer simpelthen til bรฅndbreddekapacitet for hver klientmaskine.

Da vi simulerer tusindvis af VUser'er gennem LoadRunner, er det forblรธffende, hvor enkelt LoadRunner har gjort at styre bรฅndbredde/netvรฆrkshastighedssimuleringen.

Hvis du er kunder, fรฅr adgang til din applikation over 128 Kbps, kan du styre den herfra. Du vil komme til at simulere "rigtig lignende adfรฆrd", hvilket burde hjรฆlpe med at fรฅ den rigtige prรฆstationsstatistik.

Hastighedssimulering

Den bedste anbefaling er at indstille til Brug maksimal bรฅndbredde. Dette vil hjรฆlpe med at se bort fra eventuelle netvรฆrksrelaterede ydeevneflaskehalse og fokusere pรฅ eventuelle 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. Det er klart, at dette ligger uden for rรฆkkevidden af โ€‹โ€‹prรฆstationsmรฅl. Du kan dog vรฆlge, hvilken browser du รธnsker at emulere.

Browseremulering

Kan du svare dig selv pรฅ, hvornรฅr det prรฆcist vil betyde noget for dig at vรฆlge den rigtige browser i denne konfiguration?

Du vil bruge denne konfiguration, hvis din applikation er en webapplikation, der returnerer forskellige svar for forskellige browsere. For eksempel kan du se forskellige billeder og indhold til IE og Firefox etc.

En anden vigtig indstilling er Simuler browsercache. Hvis du vil mรฅle responstiden, nรฅr cache er aktiveret, skal du markere dette felt. Hvis du leder efter worst case situation, er dette naturligvis ikke en overvejelse.

Download ikke-HTML-ressourcer vil lade LoadRunner downloade enhver CSS, JS og andre rich media. Dette bรธr forblive kontrolleret. Men hvis du vil fjerne dette fra dit prรฆstationstestdesign, kan du fjerne markeringen af โ€‹โ€‹dette.

proxy

Det er bedst at fjerne proxy helt fra din Testmiljรธ โ€“ dette vil gรธre testresultaterne upรฅlidelige. Du kan dog komme i situationer, hvor det er uundgรฅeligt. I en sรฅdan situation letter LoadRunner dig med proxyindstillinger.

Du vil arbejde (eller burde arbejde) med Ingen proxy-indstilling. Du kan hente det fra din standardbrowser. Glem dog ikke at tjekke, hvilken browser der er sat til standard, og hvilken proxy-konfiguration for standardbrowseren er.

proxy

Hvis du bruger en proxy, og den krรฆver godkendelse (eller et script), kan du klikke pรฅ knappen Godkend, som fรธrer til et nyt vindue. Se nedenstรฅende skรฆrmbillede.

proxy

Brug denne skรฆrm til at angive brugernavn og adgangskode for at blive godkendt pรฅ proxyserveren. Klik pรฅ OK for at lukke skรฆrmen.

Tillykke. Du er fรฆrdig med at konfigurere dit VUGen-script. Glem ikke at konfigurere det til alle dine VUser-scripts.

Opsummer dette indlรฆg med: