Hva er belastningstesting? (Eksempler)

Load Testing

Hva er belastningstesting?

Load Testing er en ikke-funksjonell programvaretestprosess der ytelsen til programvareapplikasjonen testes under en bestemt forventet belastning. Den bestemmer hvordan programvareapplikasjonen oppfører seg mens den er tilgjengelig for flere brukere samtidig. Målet med Load Testing er å forbedre ytelsesflaskehalser og sikre stabilitet og jevn funksjon av programvareapplikasjonen før distribusjon.

Denne testen identifiserer vanligvis -

  • Den maksimale driftskapasiteten til en applikasjon
  • Finn ut om den nåværende infrastrukturen er tilstrekkelig til å kjøre applikasjonen
  • Bærekraftig bruk med hensyn til maksimal brukerbelastning
  • Antall samtidige brukere som en applikasjon kan støtte, og skalerbarhet for å la flere brukere få tilgang til den.

Det er en type ikke-funksjonell testing. I programvareteknikk brukes belastningstesting ofte for klienten/serveren, nettbaserte applikasjoner – både intranett og internett.

Behov for belastningstesting

Noen ekstremt populære nettsteder har hatt alvorlige nedetider når de får store trafikkmengder. Nettsteder for netthandel investerer mye i reklamekampanjer, men ikke i belastningstesting for å sikre optimal systemytelse når markedsføringen gir trafikk.

Vurder følgende eksempler på lasttesting

  • Den populære lekebutikken Toysrus.com kunne ikke håndtere den økte trafikken generert av deres reklamekampanje, noe som resulterte i tap av både markedsføringskroner og potensielt leketøyssalg.
  • Et flyselskaps nettsted var ikke i stand til å håndtere 10000+ brukere under et festivaltilbud.
  • Encyclopedia Britannica erklærte fri tilgang til deres online database som et kampanjetilbud. De klarte ikke å holde tritt med trafikkangrepet på flere uker.

Mange nettsteder lider av forsinkede lastetider når de møter stor trafikk. Litt fakta -

  • De fleste brukere klikker seg bort etter 8 sekunders forsinkelse med å laste inn en side
  • $ 4.4 Billion Tapt årlig på grunn av dårlig ytelse

Hvorfor belastningstesting?

  • Lasttesting gir tillit til systemet og dets pålitelighet og ytelse.
  • Belastningstesting hjelper til med å identifisere flaskehalsene i systemet under tunge brukerstressscenarier før de skjer i et produksjonsmiljø.
  • Lasttesting gir utmerket beskyttelse mot dårlig ytelse og rommer komplementære strategier for ytelsesstyring og overvåking av et produksjonsmiljø.

Mål for belastningstesting

Lastetesting identifiserer følgende problemer før applikasjonen flyttes til markedet eller produksjonen:

  • Responstid for hver transaksjon
  • Ytelse av systemkomponenter under ulike belastninger
  • Ytelse av databasekomponenter under ulik belastning
  • Nettverksforsinkelse mellom klienten og serveren
  • Problemer med programvaredesign
  • Serverkonfigurasjonsproblemer som en webserver, applikasjonsserver, databaseserver osv.
  • Maskinvarebegrensningsproblemer som CPU-maksimering, minnebegrensninger, nettverksflaskehals, etc.

Lasttesting vil avgjøre om systemet må finjusteres eller modifikasjon av maskinvare og programvare er nødvendig for å forbedre ytelsen. For å effektivt gjennomføre lasttesting kan du bruke ulike verktøy for ytelsestesting som er tilgjengelige for å hjelpe deg med å identifisere forbedringsområder.

Forutsetninger for lasttesting

Den viktigste beregningen for lasttesting er responstid. Før du begynner belastningstesting, må du bestemme –

  • Om responstiden allerede er målt og sammenlignet – Kvantitativ
  • Om responstiden er relevant for forretningsprosessen – Relevant
  • Om responstiden er forsvarlig – Realistisk
  • Om responstiden er oppnåelig – oppnåelig
  • Om responstiden er målbar ved hjelp av et verktøy eller stoppeklokke – Målbar

Et miljø må settes opp før du starter belastningstesten:

Hardware Platform Programvarekonfigurasjon
  • Servermaskiner
  • Prosessorer
  • Minne
  • Disk lagring
  • Last inn maskinens konfigurasjon
  • Nettverkskonfigurasjon
  • Operating System
  • Serverprogramvare

Strategier for lasttesting

Det er mange måter å utføre lasttesting på. Følgende er noen få lastteststrategier-

Strategier for lasttesting

  • Manuell lasttesting: Dette er en av strategiene for å utføre lasttesting, men det gir ikke repeterbare resultater, kan ikke gi målbare nivåer av stress på en applikasjon og er en umulig prosess å koordinere.
  • Egenutviklet lasttestingsverktøy: En organisasjon som innser viktigheten av belastningstesting, kan bygge sine egne verktøy for å utføre belastningstester.
  • Lasttestingsverktøy for åpen kildekode: Det er flere lasttestingsverktøy tilgjengelig som åpen kildekode som er gratis. De er kanskje ikke like sofistikerte som deres betalte kolleger, men hvis du har et budsjett, er de det beste valget.
  • Verktøy for belastningstesting i bedriftsklassen: De kommer vanligvis med opptaks-/avspillingsfunksjon. De støtter et stort antall protokoller. De kan simulere et eksepsjonelt stort antall brukere.

Slik utfører du belastningstesting

Lasttestingsprosessen kan kort beskrives som nedenfor –

  1. Lag en dedikert Test miljø for lasttesting
  2. Bestem følgende
  3. Lastetestscenarier
  4. Bestem belastningstestetransaksjoner for en applikasjon
    • Forbered data for hver transaksjon
    • Antall brukere som får tilgang til systemet må forutses
    • Bestem tilkoblingshastigheter. Noen brukere kan være tilkoblet via leide linjer, mens andre kan bruke oppringt
    • Bestem forskjellige nettlesere og operativsystemer som brukes av brukerne 
    • En konfigurasjon av alle servere som web-, applikasjons- og DB-servere
  5. Test Scenario utførelse og overvåking. Samle ulike beregninger
  6. Analyser resultatene. Kom med anbefalinger
  7. Finjuster systemet
  8. Test på nytt

Retningslinjer for lasttesting

Retningslinjer for lasttesting

  1. Lasttesting bør planlegges når applikasjonen blir funksjonell stabil.
  2. Et stort antall unike data skal være klare i datapoolen
  3. Antall brukere bør bestemmes for hvert scenario eller skript
  4. Unngå oppretting av detaljerte logger for å spare IO-plass på disken
  5. Prøv å unngå nedlasting av bilder på siden
  6. I prosessen med å utføre testtilfeller for belastningstesting, bør konsistensen av responstiden over den medgåtte perioden logges og det samme bør sammenlignes med ulike testkjøringer.

Forskjellen mellom belastnings- og stresstesting

Load Testing Stresstesting
Lasttesting identifiserer flaskehalsene i systemet under ulike arbeidsbelastninger og sjekker hvordan systemet reagerer når belastningen gradvis økes Stresstesting bestemmer brytepunktet til systemet for å avsløre det maksimale punktet som det bryter etter.
For å gjenkjenne den øvre grensen til systemet, sett SLA for appen og sjekk hvordan systemet kan håndtere en tung belastning. For å sjekke ut hvordan systemet oppfører seg under ekstreme belastninger og hvordan det kommer seg etter feil.
Å generere økt belastning på en nettapplikasjon er hovedmålet med belastningstesting. Stresstesting tar sikte på å sikre at serverne ikke krasjer under en plutselig høy belastning i lang tid.
Attributtene som sjekkes i en lasttest er toppytelse, servermengde og responstid. Denne typen testing sjekker stabilitetsresponstid osv.
Ved belastningstesting er belastningsgrensen en terskel for et brudd. I stresstesting er belastningsgrensen over terskelen for et brudd.

Forskjellen mellom funksjonell og belastningstesting

Funksjonell testing Load Testing
Resultatene av funksjonstester er lett forutsigbare ettersom vi har riktige trinn og forutsetninger definert Resultater av belastningstester er uforutsigbare
Resultatene av funksjonstester varierer litt Belastningstestresultatene varierer drastisk
Utførelsesfrekvens Funksjonell testing vil være høy En frekvens for å utføre lasttesting vil være lav
Resultatene av funksjonstester er avhengig av testdataene Lasttesting avhenger av antall brukere.

Last inn testverktøy

Lastløper:

Load runner er et HP-verktøy som brukes til å teste applikasjonene under normale og toppbelastningsforhold. Load runner genererer belastning ved å lage virtuelle brukere som emulerer nettverkstrafikk. Den simulerer sanntidsbruk som et produksjonsmiljø og gir grafiske resultater.

Les mer om Loadrunner her..

Fordeler og ulemper med lasttesting

Følgende er fordelene med lasttesting:

  • Ytelsesflaskehalsidentifikasjon før produksjon
  • Forbedrer skalerbarheten til systemet
  • Minimer risiko knyttet til nedetid i systemet
  • Reduserte kostnader ved feil
  • Øk kundetilfredsheten

Ulemper med lasttesting:

  • Man trenger programmeringskunnskap for å bruke verktøy for å gjennomføre en belastningstest i sammenheng med programvaretesting.
  • Verktøy kan være dyre siden prisen avhenger av antall virtuelle brukere som støttes.

Sammendrag

  • Lasttesting er definert som en type programvaretesting som bestemmer et systems ytelse under virkelige belastningsforhold.
  • Lasttesting forbedrer typisk flaskehalser i ytelse, skalerbarhet og stabilitet til applikasjonen før den er tilgjengelig for produksjon.
  • Denne testingen hjelper til med å identifisere den maksimale driftskapasiteten til applikasjoner samt systemflaskehalser.
  • Lasttesting inn programvaretesting er viktig fordi hvis det ignoreres, kan det føre til økonomiske tap for en organisasjon.