Vad är belastningstestning? (Exempel)
⚡ Smart sammanfattning
Lasttestning mäter hur en programvara beter sig när många användare använder den samtidigt, upp till den förväntade toppen. Den identifierar den maximala driftskapaciteten, de flaskhalsar som begränsar den och om den nuvarande infrastrukturen är tillräcklig.

Vad är belastningstestning?
Lasttestning är en icke-funktionell mjukvarutestprocess där prestandan hos mjukvaruapplikationen testas under en specifik förväntad belastning. Den bestämmer hur programvaran beter sig medan den nås av flera användare samtidigt. Målet med Load Testing är att förbättra prestandaflaskhalsar och att säkerställa stabilitet och smidig funktion hos mjukvaruapplikationen före driftsättning.
Denna testning identifierar vanligtvis -
- Den maximala driftskapaciteten för en applikation
- Bestäm om den nuvarande infrastrukturen är tillräcklig för att köra applikationen
- Applikationens hållbarhet med avseende på maximal användarbelastning
- Antal samtidiga användare som en applikation kan stödja och skalbarhet för att ge fler användare åtkomst till den.
Det är en typ av icke-funktionell testning. Inom mjukvaruteknik används belastningstestning vanligtvis för klienten/servern, webbaserade applikationer – både intranät och internet.
Varför behövs belastningstestning?
Vissa extremt populära webbplatser har drabbats av allvarliga driftstopp när de får enorma trafikvolymer. E-handelswebbplatser investerar mycket i reklamkampanjer, men inte i belastningstestning för att säkerställa optimal systemprestanda, när marknadsföringen drar in trafik.
Exempel på belastningstester
- Toysrus.com kunde inte hantera den trafik som deras egen reklamkampanj genererade, vilket ledde till att både marknadsföringsutgifterna och den försäljning som de var avsedda att producera gick förlorade.
- En flygbolags webbplats kunde inte hantera 10000 XNUMX+ användare under ett festivalerbjudande.
- Encyclopedia Britannica förklarade fri tillgång till deras onlinedatabas som ett kampanjerbjudande. De kunde inte hänga med i trafikens anstormning på flera veckor.
Många webbplatser drabbas av försenade laddningstider när de stöter på tung trafik. Lite fakta -
- Övergivandet ökar kraftigt efter cirka 3 sekunders laddningstid, och effekten förstärks på mobila anslutningar.
- Långsamma sidor kostar e-handelswebbplatser mätbara intäkter vid varje besök, vilket är anledningen till att prestanda behandlas som ett affärsmått snarare än ett tekniskt.
Varför belastningstestning?
- Belastningstestning ger förtroende för systemet och dess tillförlitlighet och prestanda.
- Lasttestning hjälper till att identifiera flaskhalsarna i systemet under svåra användarstressscenarier innan de inträffar i en produktionsmiljö.
- Belastningstestning ger utmärkt skydd mot dålig prestanda och rymmer kompletterande strategier för prestandahantering och övervakning av en produktionsmiljö.
Mål för belastningstestning
Laddningstestning identifierar följande problem innan applikationen flyttas till marknaden eller produktion:
- Svarstid för varje transaktion
- Prestanda för systemkomponenter under olika belastningar
- Prestanda för databaskomponenter under olika belastningar
- Nätverksfördröjning mellan klienten och servern
- Mjukvarudesignproblem
- Serverkonfigurationsproblem som en webbserver, applikationsserver, databasserver etc.
- Hårdvarubegränsningsproblem som CPU-maximering, minnesbegränsningar, nätverksflaskhals etc.
Belastningstestning kommer att avgöra om systemet behöver finjusteras eller modifiering av hårdvara och mjukvara krävs för att förbättra prestandan. För att effektivt genomföra lasttestning kan du använda olika verktyg för prestandatestning som är tillgängliga för att hjälpa dig identifiera förbättringsområden.
Förutsättningar för belastningstestning
Huvudmåttet för belastningstestning är svarstid. Innan du börjar belastningstestning måste du fastställa –
- Huruvida svarstiden redan är uppmätt och jämförd – Kvantitativt
- Huruvida svarstiden är tillämplig på affärsprocessen – Relevant
- Huruvida svarstiden är försvarlig – Realistisk
- Huruvida svarstiden är uppnåbar – Achievable
- Huruvida svarstiden är mätbar med hjälp av ett verktyg eller stoppur – Mätbar
Miljöinstallation före belastningstestning
| Hardware Platform | Programvarukonfiguration |
|---|---|
|
|
Strategier för belastningstestning
Det finns många olika sätt att utföra lasttestning. Följande är några belastningsteststrategier-
- Manuell belastningstestning: Detta är en av strategierna för att utföra belastningstestning, men det ger inte repeterbara resultat, kan inte ge mätbara nivåer av stress på en applikation och är en omöjlig process att samordna.
- Egenutvecklade lasttestverktyg: En organisation som inser vikten av belastningstester kan bygga sina egna verktyg för att utföra belastningstester.
- Lasttestverktyg med öppen källkod: Det finns flera lasttestverktyg tillgängliga som öppen källkod som är gratis. De kanske inte är lika sofistikerade som deras betalda motsvarigheter, men om du har en budget är de det bästa valet.
- Verktyg för belastningstestning i företagsklass: De kommer vanligtvis med inspelnings-/uppspelningsmöjlighet. De stöder ett stort antal protokoll. De kan simulera ett exceptionellt stort antal användare.
Hur man gör belastningstestning
Lasttestningsprocessen kan kort beskrivas enligt nedan –
- Skapa en dedikerad Testmiljö för belastningsprovning
- Definiera belastningstestscenarierna
- Bestäm lasttestningstransaktioner för en applikation
- Förbered data för varje transaktion
- Antalet användare som kommer åt systemet måste förutsägas
- Bestäm anslutningshastigheter. Vissa användare kan vara anslutna via hyrda förbindelser medan andra kan använda uppringd
- Bestäm olika webbläsare och operativsystem som används av användarna
- En konfiguration av alla servrar som webb-, applikations- och DB-servrar
- Utförande och övervakning av testscenario. Samla in olika mått
- Analysera resultaten. Ge rekommendationer
- Finjustera systemet
- Testa om
Riktlinjer för belastningstestning
- Belastningstestning bör planeras när applikationen blir funktionellt stabil.
- Ett stort antal unika data bör vara redo i datapoolen
- Antal användare bör bestämmas för varje scenario eller skript
- Undvik att skapa detaljerade loggar för att spara på diskutrymmet
- Försök att undvika nedladdning av bilder på webbplatsen
- I processen att exekvera testfall för belastningstester, bör konsistensen av svarstiden över den förflutna perioden loggas och densamma bör jämföras med olika testkörningar.
Skillnad mellan belastnings- och stresstestning
| Lasttestning | Stresstestning |
|---|---|
| Belastningstestning identifierar flaskhalsarna i systemet under olika arbetsbelastningar och kontrollerar hur systemet reagerar när belastningen gradvis ökar | Stresstestning bestämmer brytpunkten för systemet för att avslöja den maximala punkten efter vilken det bryts. |
| För att känna igen den övre gränsen för systemet, ställ in SLA för appen och kontrollera hur systemet kan hantera en tung belastning. | För att kolla hur systemet beter sig under extrema belastningar och hur det återhämtar sig efter fel. |
| Att generera ökad belastning på en webbapplikation är huvudsyftet med lasttestning. | Stresstester syftar till att säkerställa att servrarna inte kraschar under en plötslig hög belastning under en längre tid. |
| Attributen som kontrolleras i ett belastningstest är toppprestanda, serverkvantitet och svarstid. | Denna typ av testning kontrollerar stabilitetens svarstid, etc. |
| I belastningstestning är belastningsgränsen en tröskel för ett avbrott. | I stresstester är belastningsgränsen över tröskeln för ett brott. |
Skillnad mellan funktions- och belastningstestning
| funktions~~POS=TRUNC | Lasttestning |
|---|---|
| Resultaten av funktionstester är lätta att förutsäga eftersom vi har korrekta steg och förutsättningar definierade | Resultaten av belastningstester är oförutsägbara |
| Resultaten av funktionstester varierar något | Belastningstestresultaten varierar drastiskt |
| Utförandefrekvens funktions~~POS=TRUNC kommer att vara hög | Frekvensen för att utföra lasttestning kommer att vara låg |
| Resultat av funktionstester är beroende av testdata | Belastningstestning beror på antalet användare. |
Ladda testverktyg
LoadRunner
LoadRunner, ursprungligen från HP och nu en del av OpenText Efter förvärvet av Micro Focus testar den applikationer under normal och maximal belastning. Den genererar belastning genom virtuella användare som emulerar verklig nätverkstrafik och rapporterar resultaten grafiskt.
Läs mer i LoadRunner-handledning.
Apache JMeter
En öppen källkod Java verktyg och det mest använda gratisalternativet. Det stöder HTTP, JDBC, JMS, FTP med mera, lagrar testplaner som XML och integreras i CI-pipelines. Se JMeter handledning för en genomgång.
gatling
Ett verktyg med öppen källkod vars tester skrivs som kod i Scala eller JavaDen hanterar hög samtidighetsnivå på blygsam hårdvara och producerar detaljerade HTML-rapporter, vilket passar team som föredrar versionskontrollerade testskript.
k6
Ett verktyg med öppen källkod och tester skrivna i JavaSkript, utformat för utvecklarägd prestandatestning inuti en CI-pipeline snarare än som en separat QA-aktivitet.
Att välja ett verktyg
Pick JMeter för bredast möjliga protokolltäckning utan kostnad, Gatling eller k6 när teamet vill att tester ska hållas i källkodskontroll tillsammans med applikationen, och ett kommersiellt verktyg som LoadRunner när stöd för företagsprotokoll och leverantörshjälp motiverar licensen.
Fördelar och nackdelar med belastningstestning
Följande är fördelarna med lasttestning:
- Identifiering av prestandaflaskhalsar före produktion
- Förbättrar systemets skalbarhet
- Minimera risken i samband med systemavbrott
- Minskade kostnader för misslyckande
- Öka kundnöjdheten
Nackdelar med lasttestning:
- De flesta verktyg kräver programmeringskunskaper för att skapa realistiska scenarier.
- Verktyg kan vara dyra eftersom priset beror på antalet virtuella användare som stöds.
Viktiga mätvärden att samla in under ett belastningstest
Avsnittet om förkunskaper fastställer svarstid som det viktigaste måttet. I praktiken behöver en belastningstestrapport sexsiffriga tal, eftersom svarstiden ensam inte kan berätta varför ett system saktade ner.
| metrisk | Vad det säger dig | Varningstecken |
|---|---|---|
| Genomsnittlig svarstid | Den typiska användarupplevelsen | Stiger när belastningen ökar |
| 95:e percentilens svarstid | Upplevelsen för de långsammaste användarna | Långt över genomsnittet |
| genomströmning | Antal förfrågningar som hanterats framgångsrikt per sekund | Plattar ut eller faller medan lasten stiger |
| Felhastighet | Andel misslyckade eller tidsgränsade förfrågningar | Varje höjning över det överenskomna tröskelvärdet |
| Samtidiga användare | Faktiska samtidiga sessioner uppnådda | Lägre än det avsedda scenariot |
| Serverresursanvändning | CPU, minne, disk och nätverksutrymme | Alla resurser över ungefär 80 procent |
Läsdataflöde tillsammans med svarstid. Ökande svarstid med ökande dataflöde betyder helt enkelt att systemet är mer upptaget. Ökande svarstid med faller genomströmning innebär att den har överskridit sin kapacitet och nu förlorar arbete, vilket är den punkt testet finns för att hitta.
Rapportera aldrig enbart genomsnittet. Ett genomsnitt på 900 ms med en 95:e percentil på 1.1 sekunder beskriver ett konsekvent system. Samma genomsnitt med en 95:e percentil på 11 sekunder innebär att en användare av tjugo har en oacceptabel upplevelse som genomsnittet döljer.
Hur detta test står sig i jämförelse med andra prestationstester
Prestandatestning är en familj av tester som skiljer sig åt i formen av den applicerade belastningen, vilket är anledningen till att de så lätt förväxlas.
| Testtyp | Vad som ökas | Fråga den svarar |
|---|---|---|
| Lasttestning | Samtidiga användare, till den förväntade toppen | Uppfyller den målen under normal trafiktopp? |
| Volymtestning | Data som lagras i databasen | Klarar den sig av att datamängden växer? |
| Stresstestning | Belastning över kapacitet, tills fel uppstår | Var går den sönder, och hur? |
| Spike testning | Ladda, omedelbart och extremt | Överlever den och återhämtar sig från en chock? |
| Uthållighetstestning | Varaktighet, vid normal belastning | Försämras prestandan med tiden? |
| Blötläggningstestning | Varaktighet, tittar på resurser | Finns det minnes- eller handle-läckor? |
| Stabilitetstestning | Varierande förhållanden | Förblir den tillförlitlig även när förhållandena förändras? |
Den skillnad som är viktigast här: Volymtestning skalar data, belastningstestning skalar användarna. En rapport som körs på två sekunder mot tiotusen rader och två minuter mot tio miljoner rader har ett volymproblem, inte ett belastningsproblem, och ingen extra serverkapacitet kommer att åtgärda det.



