LoadRunner testverktyg: ArchiTekturdiagram och komponenter
โก Smart sammanfattning
LoadRunner รคr verktyget fรถr prestandatestning av fรถretag, som nu sรคljs av OpenText, som simulerar tusentals virtuella anvรคndare รถver VuGen, Controller, belastningsgeneratorer och Analysis fรถr att avslรถja flaskhalsar innan verklig trafik hittar dem.
Vad รคr LoadRunner?
LoadRunner รคr en Prestandatester verktyg som var pionjรคrer av Mercury Interactive 1999. LoadRunner fรถrvรคrvades senare av HP 2006, och HP:s mjukvaruverksamhet slogs samman med Micro Focus i en affรคr som tillkรคnnagavs 2016 och slutfรถrdes 2017.
Varumรคrkesanmรคrkning: OpenText slutfรถrde fรถrvรคrvet av Micro Focus i januari 2023Verktyget sรคljs inte lรคngre som HP eller Micro Focus LoadRunnerLoadRunner Professional รคr nu tillgรคnglig OpenText Professionell prestandateknik, LoadRunner Enterprise รคr OpenText Enterprise Performance Engineering, och LoadRunner Cloud รคr OpenText Kรคrnprestandateknik. Komponentnamnen nedan โ VuGen, Controller, load generators och Analysis โ รคr ofรถrรคndrade.
LoadRunner stรถder olika utvecklingsverktyg, tekniker och kommunikationsprotokoll. Det har ett av de bredaste protokollbiblioteken pรฅ marknaden fรถr att utfรถra prestandatester. Prestandatestresultat som produceras av LoadRunner-programvaran anvรคnds som ett riktmรคrke mot andra verktyg.
LoadRunner-video
Titta pรฅ videon nedan fรถr en snabb introduktion till LoadRunner innan du gรฅr igenom komponenterna.
Varfรถr LoadRunner?
LoadRunner รคr inte bara ett banbrytande verktyg inom prestandatestning, det รคr fortfarande en av marknadsledarna inom prestandatestningsparadigmet och รคr fortfarande den referenspunkt som mรฅnga fรถretag jรคmfรถr sig med.
Protokollomfattningen รคr den tydligaste anledningen till att team vรคljer det, vilket komponentkartan nedan visar.
I stort sett stรถder LoadRunner-verktyget RIA (Rich Internet Applications), Web 2.0 (HTTP/HTML, Ajax, Flex och Silverlight etc.), Mobile, SAP, Oracle, FRรKEN SQL Server, Citrix, RTE, Mail och รถver allt, Windows Socket. Fรฅ konkurrerande verktyg erbjuder ett sรฅ brett utbud av protokoll i ett enda verktyg, vilket protokolllistan nedan illustrerar.
Det som รคr mer รถvertygande att vรคlja LoadRunner fรถr mjukvarutestning รคr verktygets trovรคrdighet. LoadRunner har lรคnge etablerat ett rykte eftersom du ofta hittar kunder som korsverifierar dina prestandamรฅtt med hjรคlp av LoadRunner. Du kommer att finna lรคttnad om du redan anvรคnder LoadRunner fรถr dina prestandatestbehov.
LoadRunner-programvaran รคr tรคtt integrerad med de andra verktygen i samma svit โ Unified Functional Testing (fรถre detta QTP, sรคljs nu som OpenText Funktionstestning) och ALM (Application Lifecycle Management, numera OpenText ALM/Kvalitetscenter) โ vilket ger dig mรถjlighet att utfรถra dina heltรคckande testprocesser.
LoadRunner fungerar enligt principen att simulera virtuella anvรคndare i den aktuella applikationen. Dessa virtuella anvรคndare, รคven kallade V-anvรคndare, replikerar klientens fรถrfrรฅgningar och fรถrvรคntar sig ett motsvarande svar fรถr att genomfรถra en transaktion.
Varfรถr behรถver du prestationstestning?
Branschuppskattningarna nedan รคr allmรคnt citerade och dateras frรฅn bรถrjan av 2010-talet, men mรถnstret de beskriver har inte fรถrรคndrats: lรฅngsamma sidor kostar pengar.
En uppskattad fรถrlust pรฅ 4.4 miljarder dollar i intรคkter redovisas รฅrligen pรฅ grund av dรฅlig webbprestanda.
I dagens Web 2.0-รฅlder klickar anvรคndare bort om en webbplats inte svarar inom 8 sekunder. Tรคnk dig att du vรคntar i 5 sekunder nรคr du sรถker efter Google eller gรถra en vรคnfรถrfrรฅgan pรฅ Facebook. Konsekvenserna av driftstopp รคr ofta mer fรถrรถdande รคn man nรฅgonsin kunnat fรถrestรคlla sig. Det finns vรคlkรคnda exempel som de som drabbade Bank of Americas onlinebanking, Amazon Webbtjรคnster, Intuit och Blackberry.
Enligt Dun & Bradstreet upplever 59 % av Fortune 500-fรถretagen uppskattningsvis 1.6 timmars driftstopp varje vecka. Med tanke pรฅ att ett genomsnittligt Fortune 500-fรถretag med minst 10 000 anstรคllda betalar 56 dollar i timmen, skulle arbetskostnaden fรถr driftstopp fรถr en sรฅdan organisation vara 896 000 dollar i veckan, vilket motsvarar mer รคn 46 miljoner dollar per รฅr.
Bara 5 minuters driftstopp Google.com i augusti 2013 uppskattas ha kostat sรถkjรคtten sรฅ mycket som 545 000 dollar.
Det uppskattas att fรถretag fรถrlorade fรถrsรคljning vรคrd 1 100 dollar per sekund under de senaste รฅren. Amazon Avbrott i webbtjรคnster.
Nรคr ett mjukvarusystem distribueras av en organisation kan det stรถta pรฅ mรฅnga scenarier som kan leda till prestandafรถrdrรถjning. Ett antal faktorer orsakar bromsande prestanda, nรฅgra exempel kan vara:
- รkat antal poster som finns i databasen
- รkat antal samtidiga fรถrfrรฅgningar till systemet
- Ett stรถrre antal anvรคndare som anvรคnder systemet samtidigt jรคmfรถrt med tidigare
Dock รคr inte alla ansรถkningar en kandidat. Lasttestning riktar sig mot klient-server-system med flera anvรคndare, sรฅ ett skrivbordsverktyg fรถr en anvรคndare som det nedan รคr inte vรคrt att testa fรถr prestanda.
Vad รคr LoadRunner Architecture?
Generellt sett รคr arkitekturen i LoadRunner komplex, men รคndรฅ lรคtt att fรถrstรฅ. LoadRunner-arkitekturdiagrammet nedan visar hur de fyra komponenterna samverkar.
Anta att du har i uppdrag att kontrollera prestandan fรถr Amazon.com fรถr 5000 anvรคndare.
I en verklig situation kommer alla dessa 5000 anvรคndare inte att sitta pรฅ hemsidan โ de kommer att vara utspridda รถver olika delar av webbplatsen. Sรฅ hur simulerar vi den skillnaden?
VuGen
VuGen eller virtuell anvรคndare Generator รคr en IDE (Integrated Development Environment) eller en redigerare fรถr avancerad kodning. VuGen anvรคnds fรถr att replikera System Under Load (SUL) beteende. VuGen tillhandahรฅller en "inspelningsfunktion" som spelar in kommunikation till och frรฅn klient och server i form av ett kodat skript โ รคven kallat VUser-skript.
Sรฅ med tanke pรฅ exemplet ovan kan VuGen spela in fรถr att simulera fรถljande affรคrsprocesser:
- Surfa pรฅ produktsidan fรถr Amazon.com
- Till kassan
- Betalning Processing
- Kontrollerar MyAccount-sidan
Nรคr skriptet spelas upp rent mรฅste dynamiska servervรคrden vanligtvis registreras med korrelation innan den kan skalas upp.
Regulator
Nรคr ett VUser-skript รคr fรคrdigstรคllt, Regulator รคr en av huvudkomponenterna i LoadRunner som styr lastsimuleringen genom att hantera, till exempel:
- Hur mรฅnga VUser som ska simuleras mot varje affรคrsprocess eller VUser Group
- VUsers beteende (ramp upp, ramp ner, samtidig eller samtidig karaktรคr etc.)
- Typ av belastning scenario t.ex. verkliga livet eller mรฅlorienterad eller verifierande SLA
- Vilka injektorer som ska anvรคndas, hur mรฅnga VUsers mot varje injektor
- Samla resultat med jรคmna mellanrum
- IP Spoofing
- Felrapportering
- Transaktionsrapportering mm.
Med en analogi frรฅn vรฅrt exempel kommer Controllern att lรคgga till fรถljande parametrar i VuGen-skriptet:
- 3500 anvรคndare surfar pรฅ produktsidan fรถr Amazon.com
- 750 anvรคndare รคr i kassan
- 500 anvรคndare utfรถr betalningsbehandling
- 250 anvรคndare kontrollerar Mitt konto-sidan ENDAST efter att 500 anvรคndare har slutfรถrt betalningsbearbetningen.
รnnu mer komplexa scenarier รคr mรถjliga:
- Initiera 5 VUsers varannan sekund tills en belastning pรฅ 2 VUsers (surfing) Amazon produktsida) uppnรฅs.
- Iterera i 30 minuter
- Stรคng av iteration fรถr 25 VUsers
- Starta om 20 V-anvรคndare
- Initiera 2 anvรคndare (i kassan, betalningshantering, sidan Mina konton) varje sekund.
- 2500 VUsers kommer att genereras vid Machine A
- 2500 VUsers kommer att genereras vid Machine B
Agenter maskin/last Generators/Injektorer
LoadRunner-styrenheten ansvarar fรถr att simulera tusentals VUsers โ dessa VUsers fรถrbrukar hรฅrdvaruresurser, till exempel processor och minne โ vilket sรคtter en grรคns fรถr den maskin som simulerar dem. Dessutom simulerar styrenheten dessa VUsers frรฅn samma maskin (dรคr styrenheten finns) och dรคrfรถr kan resultaten vara oexakta. Fรถr att hantera detta problem รคr alla VUsers utspridda รถver olika maskiner, kallade LoadRunner-styrenheter. Generators eller lastinjektorer.
Som en allmรคn praxis finns Controller pรฅ en annan maskin och lasten simuleras frรฅn andra maskiner. Beroende pรฅ protokollet fรถr VUser-skript och maskinspecifikationer kan ett antal belastningsinjektorer behรถvas fรถr fullstรคndig simulering. Till exempel kommer VUsers fรถr ett HTTP-skript att krรคva 2-4MB per VUser fรถr simulering, dรคrfรถr kommer det att krรคvas 4 maskiner med 4 GB RAM vardera fรถr att simulera en belastning pรฅ 10,000 XNUMX VUser.
Med analogin frรฅn vรฅr Amazon Till exempel รคr utdata frรฅn den hรคr komponenten 5000 V-anvรคndare uppdelade pรฅ tvรฅ injektorer: 2500 V-anvรคndare genererade pรฅ maskin A och 2500 pรฅ maskin B.
Analys
Nรคr belastningsscenarier har kรถrts, spelar rollen fรถr Analys komponenten av LoadRunner kommer in.
Under exekveringen skapar Controller en dump av resultat i rรฅ form och innehรฅller information som vilken version av LoadRunner som skapade denna resultatdump och vad som var konfigurationer.
Alla fel och undantag loggas i en Microsoft Access-databasen output.mdb. Analyskomponenten lรคser denna databasfil fรถr att utfรถra olika typer av analyser och genererar grafer.
Dessa grafer visar olika trender fรถr att fรถrstรฅ resonemanget bakom fel och fel under belastning; hjรคlper alltsรฅ till att rรคkna ut om optimering krรคvs i SUL, Server (t.ex. JBoss, Oracle) eller infrastruktur.
Nedan fรถljer ett exempel dรคr bandbredd kan skapa en flaskhals. Lรฅt oss sรคga att webbservern har en kapacitet pรฅ 1 GBps medan datatrafiken รถverstiger denna kapacitet, vilket orsakar att efterfรถljande anvรคndare lider. Fรถr att avgรถra om systemet tillgodoser dessa behov mรฅste prestandaingenjรถren analysera applikationens beteende vid onormal belastning. Nedan visas ett diagram som LoadRunner genererar fรถr att fรฅ fram bandbredd.
Hur man gรถr prestationstestning
En fรคrdplan fรถr prestandatestning kan i stort sett delas in i fem steg, sammanfattade i fรคrdplanen nedan:
- Planering fรถr belastningstest
- Skapa VuGen-skript
- Skapande av scenarier
- Utfรถrande av scenarie
- Resultatanalys (fรถljt av systemjusteringar)
Med LoadRunner installerat, lรฅt oss fรถrstรฅ stegen som รคr involverade i processen ett efter ett.
Steg 1) Planering fรถr belastningstestet
Planering fรถr prestationstestning skiljer sig frรฅn planering a SIT (System Integration Testing) or UAT (User Acceptance Testing). Planering kan ytterligare delas in i smรฅ steg enligt beskrivningen nedan:
Sรคtt ihop ditt team
Nรคr man bรถrjar med LoadRunner-testning รคr det bรคst att dokumentera vilka som kommer att delta i aktiviteten frรฅn varje team som รคr involverat under processen, vilket framgรฅr av teamdiagrammet nedan.
- Projektledare: Nominera den projektledare som ska รคga denna aktivitet och fungera som punktperson fรถr eskalering.
- Funktionsexpert / Affรคrsanalytiker: Tillhandahรฅller anvรคndningsanalys av SUL och expertis om webbplatsens eller SUL:s affรคrsfunktionalitet.
- Expert pรฅ prestandatestning: Skapar automatiserade prestandatester och kรถr belastningsscenarier.
- Systemkrav Architect: Tillhandahรฅller en ritning fรถr SUL.
- Webbutvecklare och SME: Underhรฅller webbplatsen, tillhandahรฅller รถvervakningsaspekter, utvecklar webbplatsen och รฅtgรคrdar buggar.
- Systemadministratรถr: Underhรฅller involverade servrar under hela testprojektet.
Beskriv applikationer och affรคrsprocesser som รคr involverade
Framgรฅngsrik Lasttestning krรคver att du planerar att genomfรถra en viss affรคrsprocess. En affรคrsprocess bestรฅr av tydligt definierade steg i รถverensstรคmmelse med รถnskade affรคrstransaktioner โ fรถr att uppnรฅ dina belastningstestemรฅl.
Ett kravmรฅtt kan fรถrberedas fรถr att framkalla anvรคndarbelastning pรฅ systemet. Nedan รคr ett exempel pรฅ ett nรคrvarosystem i ett fรถretag:
I exemplet ovan anger siffrorna antalet anvรคndare som รคr anslutna till applikationen (SUL) vid en given timme. Vi kan t.ex.tracdet maximala antalet anvรคndare som รคr anslutna till en affรคrsprocess vid vilken tidpunkt som helst pรฅ dygnet, vilket berรคknas i kolumnerna lรคngst till hรถger.
Pรฅ samma sรคtt kan vi konstatera det totala antalet anvรคndare som รคr anslutna till applikationen (SUL) nรคr som helst pรฅ dygnet. Detta berรคknas i sista raden.
Ovanstรฅende 2 fakta tillsammans ger oss det totala antalet anvรคndare som vi behรถver testa systemet fรถr prestanda.
Definiera testdatahanteringsprocedurer
Statistik och observationer frรฅn prestationstestning pรฅverkas i hรถg grad av ett flertal faktorer, som tidigare beskrivits. Det รคr av avgรถrande betydelse att fรถrbereda testdata fรถr prestationstestning. Ibland fรถrbrukar en viss affรคrsprocess en datamรคngd och producerar en annan datamรคngd. Ta nedanstรฅende exempel:
- En anvรคndare 'A' skapar en finansiell blufftracoch skickar in den fรถr granskning.
- En annan anvรคndare 'B' godkรคnner 200 contracen dag skapad av anvรคndare 'A'
- En annan anvรคndare 'C' betalar cirka 150 contracen dag godkรคnd av anvรคndare 'B'
I den hรคr situationen behรถver anvรคndare B ha 200 contracts 'skapades' i systemet. Dessutom behรถver anvรคndare C 150 contracts som "godkรคnda" fรถr att simulera en belastning pรฅ 150 anvรคndare.
Detta betyder implicit att du mรฅste skapa minst 200 + 150 = 350 contracts.
Efter det, godkรคnn 150 contracts som ska fungera som testdata fรถr anvรคndare C โ de รฅterstรฅende 200 contracts kommer att fungera som testdata fรถr anvรคndare B.
Outline Monitorer
Spekulera i varje faktor som eventuellt kan pรฅverka ett systems prestanda. Till exempel kan minskad hรฅrdvara ha en potentiell inverkan pรฅ SUL-prestanda (System Under Load).
Ta med alla faktorer och stรคll in monitorer sรฅ att du kan mรคta dem. Hรคr รคr nรฅgra exempel:
- Processor (fรถr webbserver, applikationsserver, databasserver och injektorer)
- RAM (fรถr webbserver, applikationsserver, databasserver och injektorer)
- Webb-/appserver (till exempel IIS, JBoss, Jaguar Server, Tomcat etc)
- DB-server (PGA- och SGA-storlek i hรคndelse av Oracle och MSSQL Server, SPs etc.)
- Anvรคndning av nรคtverksbandbredd
- Internt och externt NIC vid klustring
- Load Balancer (och att den fรถrdelar belastningen jรคmnt pรฅ alla noder av kluster)
- Data flux (berรคkna hur mycket data som flyttas till och frรฅn klient och server โ berรคkna sedan om ett nรคtverkskorts kapacitet รคr tillrรคcklig fรถr att simulera X antal anvรคndare)
Steg 2) Skapa VuGen-skript
Nรคsta steg efter planeringen รคr att skapa VUser-skript och lรคgga till parametrisering, transaktioner och kรถrtidsinstรคllningar allt eftersom manuset mognar.
Steg 3) Skapa scenarier
Nรคsta steg รคr att skapa ditt laddningsscenario i kontrollenheten och vรคlja mellan ett manuellt och ett mรฅlinriktat scenario.
Steg 4) Scenarioexekvering
Scenarioexekvering รคr dรคr du emulerar anvรคndarbelastning pรฅ servern genom att instruera flera VUsers att utfรถra uppgifter samtidigt.
Du kan stรคlla in nivรฅn pรฅ en belastning genom att รถka och minska antalet VUser som utfรถr uppgifter samtidigt.
Denna kรถrning kan resultera i att servern gรฅr under pรฅkรคnning och beter sig onormalt. Detta รคr sjรคlva syftet med prestandatestning. Resultaten anvรคnds sedan fรถr detaljerad analys och identifiering av grundorsaker.
Steg 5) Resultatanalys (fรถljt av systemjusteringar)
Under scenariokรถrning registrerar LoadRunner applikationens prestanda under olika belastningar. Statistiken frรฅn testkรถrningen sparas och detaljerad analys utfรถrs. Analysverktyget (med namnet "HP Analysis" i de versioner som denna genomgรฅng baserades pรฅ) genererar olika grafer som hjรคlper till att identifiera grundorsakerna bakom en fรถrsรคmrad systemprestanda, sรฅvรคl som ett systemfel.
Nรฅgra av de erhรฅllna graferna inkluderar:
- Dags till den fรถrsta bufferten
- Transaktionens svarstid
- Genomsnittlig transaktionssvarstid
- Trรคffar per sekund
- Windows Resurser
- Felstatistik
- Transaktionsรถversikt








