Prestanda testtutorial: Vad är, typer, mätvärden & Exempel

Innehållsförteckning:

Anonim

Prestandatester

Prestandatestning är en programvarutestningsprocess som används för att testa hastighet, svarstid, stabilitet, tillförlitlighet, skalbarhet och resursanvändning för en programvara under särskild arbetsbelastning. Huvudsyftet med prestandatestning är att identifiera och eliminera prestandaflaskhalsarna i programvaran. Det är en delmängd av prestanda och även känd som "Perf Testing".

Fokus för Performance Testing är att kontrollera ett program

  • Hastighet - Avgör om applikationen svarar snabbt
  • Skalbarhet - Bestämmer maximal användarbelastning som programvaran kan hantera.
  • Stabilitet - Avgör om applikationen är stabil under olika belastningar

I den här handledningen lär du dig-

  • Vad är prestandatestning?
  • Varför testar vi prestanda?
  • Typer av prestandatestning
  • Vanliga prestandaproblem
  • Process för testning av prestanda
  • Mätvärden för prestandatestning: övervakade parametrar
  • Exempel på prestanda testfall
  • Prestandatestverktyg
  • FAQ

Varför testar vi prestanda?

Funktioner och funktionalitet som stöds av ett mjukvarusystem är inte det enda problemet. Programvarans prestanda som dess svarstid, tillförlitlighet, resursanvändning och skalbarhet spelar roll. Målet med Performance Testing är inte att hitta buggar utan att eliminera flaskhalsar.

Prestandatestning görs för att ge intressenter information om deras applikation angående hastighet, stabilitet och skalbarhet. Ännu viktigare är att Performance Testing avslöjar vad som behöver förbättras innan produkten går ut på marknaden. Utan prestandatestning kommer program sannolikt att drabbas av problem som: att köra långsamt medan flera användare använder den samtidigt, inkonsekvenser mellan olika operativsystem och dålig användbarhet.

Prestandatest kommer att avgöra om deras programvara uppfyller krav på hastighet, skalbarhet och stabilitet under förväntade arbetsbelastningar. Applikationer som skickas till marknaden med dåliga prestandamätvärden på grund av obefintlig eller dålig prestandatestning kommer sannolikt att få ett dåligt rykte och inte uppnå de förväntade försäljningsmålen.

Dessutom bör uppdragskritiska applikationer som rymdstartprogram eller livräddande medicinsk utrustning testas för att säkerställa att de körs under en lång period utan avvikelser.

Enligt Dunn & Bradstreet upplever 59% av Fortune 500-företag cirka 1,6 timmars stillestånd varje vecka. Med tanke på det genomsnittliga Fortune 500-företaget med minst 10 000 anställda betalar 56 dollar per timme, skulle arbetskraftsdelen av stilleståndskostnaderna för en sådan organisation vara 896 000 dollar per vecka, vilket innebär mer än 46 miljoner dollar per år.

Bara en 5-minuters stilleståndstid från Google.com (19-augusti-13) beräknas kosta sökjätten så mycket som 545 000 dollar.

Det uppskattas att företag tappade försäljningen till ett värde av 1100 dollar per sekund på grund av ett nyligen avbrott i Amazon Web Service.

Därför är prestandatestning viktigt.

Typer av prestandatestning

  • Lasttestning - kontrollerar applikationens förmåga att utföra under förväntade användarbelastningar. Målet är att identifiera flaskhalsar för prestanda innan programvaran startas.
  • Stresstestning - innebär att testa en applikation under extrema arbetsbelastningar för att se hur den hanterar hög trafik eller databehandling. Målet är att identifiera brytpunkten för en applikation.
  • Uthållighetstestning - görs för att säkerställa att programvaran klarar den förväntade belastningen under lång tid.
  • Spikprovning - testar programvarans reaktion på plötsliga stora spikar i belastningen som genereras av användarna.
  • Volymtestning - Under Volymtest stort nr. av. Data fylls i en databas och det övergripande mjukvarusystemets beteende övervakas. Målet är att kontrollera programvarans prestanda under varierande databasvolymer.
  • Skalbarhetstestning - Målet med skalbarhetstestning är att bestämma programapplikationens effektivitet vid "skalning" för att stödja en ökning av användarbelastningen. Det hjälper till att planera kapacitetstillägg till ditt programsystem.

Vanliga prestandaproblem

De flesta prestandaproblem kretsar kring hastighet, svarstid, laddningstid och dålig skalbarhet. Hastighet är ofta en av de viktigaste attributen för en applikation. En långsamt applikation kommer att förlora potentiella användare. Prestandatestning görs för att säkerställa att en app går tillräckligt snabbt för att behålla användarens uppmärksamhet och intresse. Ta en titt på följande lista över vanliga prestationsproblem och märk hur hastighet är en vanlig faktor i många av dem:

  • Lång laddningstid - Laddningstid är normalt den första tiden det tar att starta en applikation. Detta bör i allmänhet hållas på ett minimum. Medan vissa applikationer är omöjliga att ladda på under en minut, bör laddningstiden hållas under några sekunder om möjligt.
  • Dålig svarstid - Svarstid är den tid det tar från när en användare matar in data i applikationen tills applikationen matar ut ett svar på den ingången. I allmänhet borde detta vara mycket snabbt. Återigen om en användare måste vänta för länge förlorar de intresset.
  • Dålig skalbarhet - En programvaruprodukt lider av dålig skalbarhet när den inte kan hantera det förväntade antalet användare eller när den inte rymmer ett tillräckligt stort antal användare. Lasttestning bör göras för att vara säker på att applikationen klarar det förväntade antalet användare.
  • Flaskhalsning - Flaskhalsar är hinder i ett system som försämrar systemets totala prestanda. Flaskhalsning är när antingen kodfel eller hårdvaruproblem orsakar en minskning av genomströmningen under vissa belastningar. Flaskhalsning orsakas ofta av en felaktig kodsektion. Nyckeln till att åtgärda ett problem med flaskhalsning är att hitta den koddel som orsakar avmattningen och försöka fixa den där. Flaskhalsning fixas vanligtvis genom att antingen fixa dåliga körprocesser eller lägga till ytterligare hårdvara. Några vanliga prestanda flaskhalsar är
    • CPU-användning
    • Minneutnyttjande
    • Nätverksanvändning
    • Begränsningar för operativsystemet
    • Diskanvändning

Process för testning av prestanda

Metoden som använts för prestandatestning kan variera mycket men målet för prestandatestar förblir densamma. Det kan hjälpa till att visa att ditt mjukvarusystem uppfyller vissa fördefinierade prestandakriterier. Eller det kan hjälpa till att jämföra prestandan hos två programvarusystem. Det kan också hjälpa till att identifiera delar av ditt programvarusystem som försämrar dess prestanda.

Nedan följer en generisk process för hur man utför prestandatest

  1. Identifiera din testmiljö - Känn din fysiska testmiljö, produktionsmiljö och vilka testverktyg som finns tillgängliga. Förstå detaljer om hårdvaru-, programvaru- och nätverkskonfigurationer som används under testningen innan du börjar testprocessen. Det hjälper testare att skapa effektivare tester. Det hjälper också till att identifiera möjliga utmaningar som testare kan stöta på under prestandatestprocedurerna.
  2. Identifiera kriterierna för prestationsacceptans - Detta inkluderar mål och begränsningar för genomströmning, svarstider och resurstilldelning. Det är också nödvändigt att identifiera framgångskriterier för projekt utanför dessa mål och begränsningar. Testare bör ha befogenhet att ställa in prestationskriterier och mål eftersom projektspecifikationerna ofta inte innehåller ett tillräckligt stort antal prestandamätvärden. Ibland kan det inte finnas någon alls. Om det är möjligt att hitta en liknande applikation att jämföra med är ett bra sätt att sätta prestationsmål.
  3. Planera och utforma prestandatester - Bestäm hur användningen sannolikt kan variera mellan slutanvändarna och identifiera viktiga scenarier för att testa för alla möjliga användningsfall. Det är nödvändigt att simulera en mängd slutanvändare, planera prestandatestdata och beskriva vilka mätvärden som kommer att samlas in.
  4. Konfigurera testmiljön - Förbered testmiljön före körning. Ordna också verktyg och andra resurser.
  5. Implementera testdesign - Skapa prestandatester enligt din testdesign.
  6. Kör testerna - Utför och övervaka testerna.
  7. Analysera, ställa in och testa igen - Konsolidera, analysera och dela testresultat. Finjustera sedan och testa igen för att se om det finns en förbättring eller minskning av prestanda. Eftersom förbättringar i allmänhet blir mindre för varje omprovning, sluta när flaskhalsningen orsakas av CPU: n. Då kan du överväga alternativet att öka CPU-effekten.

Mätvärden för prestandatestning: övervakade parametrar

De grundläggande parametrarna som övervakas under prestandatestning inkluderar:

  • Processoranvändning - en tidsprocessor spenderar på att köra icke-lediga trådar.
  • Minnesanvändning - mängden fysiskt minne som är tillgängligt för processer på en dator.
  • Disktid - hur länge disk är upptagen med att utföra en läs- eller skrivförfrågan.
  • Bandbredd - visar bitarna per sekund som används av ett nätverksgränssnitt.
  • Privata byte - antal byte som en process har tilldelats som inte kan delas mellan andra processer. Dessa används för att mäta minnesläckor och användning.
  • Engagerat minne - mängden virtuellt minne som används.
  • Minnessidor / sekund - antal sidor som skrivits till eller lästs från hårddisken för att lösa fel på hårda sidor. Fel på hårda sidor är när koden inte från den aktuella arbetsuppsättningen anropas från andra håll och hämtas från en disk.
  • Sidfel / sekund - den totala hastigheten i vilken felsidor behandlas av processorn. Detta inträffar igen när en process kräver kod från dess arbetsuppsättning.
  • CPU-avbrott per sekund - är genomsnittet. antalet maskinvarustörningar som en processor tar emot och bearbetar varje sekund.
  • Diskköns längd - är genomsnittlig Nej. av läs- och skrivförfrågningar i kö för den valda disken under ett provintervall.
  • Nätverksutmatningskö längd - längd på utdatapaketkön i paket. Allt mer än två innebär en fördröjning och flaskhalsningen måste stoppas.
  • Nätverksbyte totalt per sekund - hastighet som byte skickas och tas emot på gränssnittet inklusive inramningstecken.
  • Svarstid - tid från det att en användare anger en begäran tills svarets första tecken tas emot.
  • Genomströmningshastighet en dator eller ett nätverk tar emot förfrågningar per sekund.
  • Antal anslutningspooler - antalet användarförfrågningar som möts av poolade anslutningar. Ju fler förfrågningar som möts av anslutningar i poolen, desto bättre blir prestanda.
  • Maximalt antal aktiva sessioner - det maximala antalet sessioner som kan vara aktiva samtidigt.
  • Hit ratio - Detta har att göra med antalet SQL-satser som hanteras av cachad data istället för dyra I / O-operationer. Det här är ett bra ställe att börja för att lösa problem med flaskhalsning.
  • Träffar per sekund - nej. träffar på en webbserver under varje sekund av ett belastningstest.
  • Återgångssegment - mängden data som kan återställas när som helst.
  • Databaslås - låsning av tabeller och databaser måste övervakas och justeras noggrant.
  • Toppväntan - övervakas för att bestämma vilka väntetider som kan minskas när man hanterar hur snabbt data hämtas från minnet
  • Trådantal - En applikationshälsa kan mätas med nej. av trådar som är igång och för närvarande aktiva.
  • Avfallssamling - Det har att göra med att återställa oanvänt minne till systemet. Avfallshantering måste övervakas för effektivitet.

Exempel på prestanda testfall

  • Kontrollera att svarstiden inte är längre än 4 sekunder när 1000 användare besöker webbplatsen samtidigt.
  • Kontrollera att svarstiden för applikationen under belastning ligger inom ett acceptabelt intervall när nätverksanslutningen är långsam
  • Kontrollera det maximala antalet användare som applikationen kan hantera innan den kraschar.
  • Kontrollera databasens exekveringstid när 500 poster läses / skrivs samtidigt.
  • Kontrollera CPU- och minnesanvändningen av applikationen och databasservern under toppbelastningsförhållanden
  • Verifiera svarstiden för applikationen under låga, normala, måttliga och tunga belastningsförhållanden.

Under det faktiska utförandet av prestandatestet ersätts vaga termer som acceptabelt intervall, tung belastning etc. med konkreta siffror. Prestandatekniker ställer in dessa siffror enligt företagets krav och applikationens tekniska landskap.

Prestandatestverktyg

Det finns ett brett utbud av prestandatestverktyg tillgängliga på marknaden. Verktyget du väljer för testning beror på många faktorer som typer av protokoll som stöds, licenskostnad, hårdvarukrav, plattformssupport osv. Nedan följer en lista över populära testverktyg.

  • LoadNinja - revolutionerar hur vi laddar test. Detta molnbaserade lasttestverktyg ger team möjlighet att spela in och spela direkt omfattande lasttester utan komplex dynamisk korrelation och köra dessa lasttest i riktiga webbläsare i stor skala. Team kan öka testtäckningen. & minska belastningstesttiden med över 60%.
  • NeoLoad - är plattformen för prestandatestning designad för DevOps som integreras sömlöst i din befintliga pipeline för kontinuerlig leverans. Med NeoLoad testar team tio gånger snabbare än med traditionella verktyg för att möta den nya kravnivån under hela Agile-programvaruutvecklingen - från komponent till hela systemomfattande belastningstester.
  • HP LoadRunner - är det mest populära prestandatestverktyget på marknaden idag. Detta verktyg kan simulera hundratusentals användare, placera applikationer under verkliga belastningar för att bestämma deras beteende under förväntade belastningar. Loadrunner har en virtuell användargenerator som simulerar åtgärder från levande mänskliga användare.
  • Jmeter - ett av de ledande verktygen som används för lasttestning av webb- och applikationsservrar.

FAQ

Vilka applikationer ska vi prestanda testa?

Prestandatestning görs alltid endast för klientserverbaserade system. Detta innebär att alla applikationer som inte är en klientserverbaserad arkitektur inte behöver kräva prestandatestning.

Till exempel är Microsoft Calculator varken klientserverbaserad eller den kör flera användare; det är därför inte en kandidat för prestandatestning.

Vad är skillnaden mellan Performance Testing & Performance Engineering

Det är av betydelse att förstå skillnaden mellan Performance Testing och Performance Engineering. En förståelse delas nedan:

Prestandatestning är en disciplin som handlar om att testa och rapportera den aktuella prestandan för en programvara under olika parametrar.

Prestandateknik är den process genom vilken programvara testas och ställs in i syfte att förverkliga den prestanda som krävs. Denna process syftar till att optimera de viktigaste egenskaperna för applikationsprestanda, dvs. användarupplevelse.

Historiskt har testning och tuning varit tydligt separata och ofta konkurrerande områden. Under de senaste åren har dock flera fickor av testare och utvecklare samarbetat oberoende för att skapa tuningteam. Eftersom dessa lag har uppnått betydande framgångar har konceptet att koppla prestandatestning med prestandastämning fångat upp, och nu kallar vi det prestandateknik.

Slutsats

Inom programvaruteknik är prestandatestning nödvändig innan du marknadsför någon programvaruprodukt. Det säkerställer kundnöjdhet och skyddar en investerares investering mot produktfel. Kostnader för prestandatestning är vanligtvis mer än kompenserade med förbättrad kundnöjdhet, lojalitet och kvarhållande.