Što je testiranje opterećenja? (Primjeri)
Što je testiranje opterećenja?
Testiranje opterećenja je nefunkcionalni proces testiranja softvera u kojem se izvedba softverske aplikacije testira pod određenim očekivanim opterećenjem. Određuje kako se softverska aplikacija ponaša dok joj istovremeno pristupa više korisnika. Cilj testiranja opterećenja je poboljšati uska grla performansi i osigurati stabilnost i glatko funkcioniranje softverske aplikacije prije implementacije.
Ovo testiranje obično identificira –
- Maksimalni radni kapacitet aplikacije
- Odredite je li trenutna infrastruktura dovoljna za pokretanje aplikacije
- Održivost primjene s obzirom na vršno korisničko opterećenje
- Broj istodobnih korisnika koje aplikacija može podržati i skalabilnost kako bi se omogućilo većem broju korisnika da joj pristupe.
To je vrsta nefunkcionalnog testiranja. U softverskom inženjerstvu, testiranje opterećenja obično se koristi za klijent/poslužitelj, web-bazirane aplikacije – i intranet i internet.
Potreba za testiranjem opterećenja
Neka iznimno popularna mjesta pretrpjela su ozbiljne zastoje kada su ostvarila ogroman promet. Web-mjesta za e-trgovinu puno ulažu u reklamne kampanje, ali ne i u testiranje opterećenja kako bi se osigurala optimalna izvedba sustava, kada taj marketing donosi promet.
Razmotrite sljedeće primjere testiranja opterećenja
- Popularna trgovina igračaka Toysrus.com nije mogla podnijeti povećani promet koji je generirala njihova reklamna kampanja što je rezultiralo gubitkom marketinških dolara i potencijalne prodaje igračaka.
- Web-mjesto zrakoplovne tvrtke nije moglo podnijeti više od 10000 XNUMX korisnika tijekom festivalske ponude.
- Encyclopedia Britannica proglasila je besplatni pristup svojoj online bazi podataka promotivnom ponudom. Tjednima nisu mogli držati korak s navalom prometa.
Mnoge web stranice pate od odgođenog učitavanja kada naiđu na veliki promet. Nekoliko činjenica –
- Većina korisnika klikne nakon 8 sekundi kašnjenja u učitavanju stranice
- $ 4.4 Billion Izgubljeno godišnje zbog loše izvedbe
Zašto testiranje opterećenja?
- Testiranje opterećenja daje povjerenje u sustav i njegovu pouzdanost i performanse.
- Testiranje opterećenja pomaže u prepoznavanju uskih grla u sustavu pod teškim scenarijima stresa korisnika prije nego što se dogode u proizvodnom okruženju.
- Testiranje opterećenja daje izvrsnu zaštitu od loših performansi i prilagođava se komplementarnim strategijama za upravljanje performansama i praćenje proizvodnog okruženja.
Ciljevi testiranja opterećenja
Testiranje učitavanja identificira sljedeće probleme prije premještanja aplikacije na tržište ili proizvodnju:
- Vrijeme odgovora za svaku transakciju
- Performanse komponenti sustava pod različitim opterećenjima
- Izvedba komponenti baze podataka pod različitim opterećenjima
- Kašnjenje mreže između klijenta i poslužitelja
- Problemi s dizajnom softvera
- Problemi s konfiguracijom poslužitelja kao što su web poslužitelj, aplikacijski poslužitelj, poslužitelj baze podataka itd.
- Problemi s hardverskim ograničenjima kao što su maksimizacija CPU-a, ograničenja memorije, usko grlo mreže itd.
Testiranje opterećenja će odrediti treba li sustav fino podesiti ili je potrebna modifikacija hardvera i softvera za poboljšanje performansi. Kako biste učinkovito proveli testiranje opterećenja, možete koristiti različite alati za testiranje performansi koji su dostupni kako bi vam pomogli identificirati područja za poboljšanje.
Preduvjeti ispitivanja opterećenja
Glavna metrika za testiranje opterećenja je vrijeme odziva. Prije nego započnete testiranje opterećenja, morate odrediti –
- Je li vrijeme odgovora već izmjereno i uspoređeno – kvantitativno
- Je li vrijeme odgovora primjenjivo na poslovni proces – Relevantno
- Je li vrijeme odgovora opravdano – Realno
- Da li je vrijeme odgovora moguće postići – moguće
- Bilo da je vrijeme odziva mjerljivo alatom ili štopericom – mjerljivo
Prije početka testiranja opterećenja potrebno je postaviti okruženje:
Hardver Platform | Konfiguracija softvera |
---|---|
|
|
Strategije testiranja opterećenja
Postoji mnogo načina za izvođenje testiranja opterećenja. Slijedi nekoliko strategija testiranja opterećenja-
- Ručno testiranje opterećenja: Ovo je jedna od strategija za izvođenje testiranja opterećenja, ali ne daje ponovljive rezultate, ne može pružiti mjerljive razine stresa na aplikaciji i nemoguće je koordinirati proces.
- Vlasnički razvijeni alati za ispitivanje opterećenja: Organizacija koja shvaća važnost testiranja opterećenja može izraditi vlastite alate za izvođenje testova opterećenja.
- Alati za testiranje opterećenja otvorenog koda: Postoji nekoliko alata za testiranje opterećenja dostupnih kao otvoreni izvorni kodovi koji su besplatni. Možda nisu tako sofisticirani kao njihovi plaćeni parnjaci, ali ako imate ograničen budžet, oni su najbolji izbor.
- Alati za testiranje opterećenja poslovne klase: Obično dolaze s mogućnošću snimanja/reprodukcije. Podržavaju veliki broj protokola. Mogu simulirati iznimno velik broj korisnika.
Kako napraviti testiranje opterećenja
Proces testiranja opterećenja može se ukratko opisati na sljedeći način –
- Stvorite namjenski Ispitna okolina za ispitivanje opterećenja
- Odredite sljedeće
- Scenariji ispitivanja opterećenja
- Odredite transakcije testiranja opterećenja za aplikaciju
- Pripremite podatke za svaku transakciju
- Potrebno je predvidjeti broj korisnika koji pristupaju sustavu
- Odredite brzine veze. Neki korisnici mogu biti povezani putem iznajmljenih linija, dok drugi mogu koristiti dial-up
- Odredite različite preglednike i operativne sustave koje koriste korisnici
- Konfiguracija svih poslužitelja kao što su web, aplikacijski i DB poslužitelji
- Izvođenje i praćenje testnog scenarija. Prikupljanje raznih metrika
- Analizirajte rezultate. Dajte preporuke
- Fino podesite sustav
- Ponovno testiranje
Smjernice za ispitivanje opterećenja
- Testiranje opterećenja treba planirati nakon što aplikacija postane funkcionalno stabilna.
- Velik broj jedinstvenih podataka trebao bi biti spreman u skupu podataka
- Broj korisnika treba odrediti za svaki scenarij ili skriptu
- Izbjegavajte stvaranje detaljnih zapisa kako biste sačuvali IO prostor na disku
- Pokušajte izbjeći preuzimanje slika na stranici
- U procesu izvođenja testnih slučajeva testiranja opterećenja, konzistentnost vremena odgovora tijekom proteklog razdoblja treba se bilježiti i isto se treba usporediti s različitim testnim izvođenjima.
Razlika između testiranja opterećenja i testiranja naprezanja
Testiranje opterećenja | Ispitivanje stresa |
---|---|
Testiranje opterećenja identificira uska grla u sustavu pod različitim radnim opterećenjima i provjerava kako sustav reagira kada se opterećenje postupno povećava | Ispitivanje stresa određuje točku loma sustava kako bi otkrio maksimalnu točku nakon koje se lomi. |
Da biste prepoznali gornju granicu sustava, postavite SLA aplikacije i provjerite kako sustav može podnijeti veliko opterećenje. | Provjeriti kako se sustav ponaša pod ekstremnim opterećenjima i kako se oporavlja od kvara. |
Generiranje povećanog opterećenja web aplikacije glavni je cilj testiranja opterećenja. | Testiranje otpornosti na stres ima za cilj osigurati da se pod iznenadnim velikim opterećenjem tijekom dužeg trajanja poslužitelji ne sruše. |
Atributi koji se provjeravaju u testu opterećenja su vršna izvedba, količina poslužitelja i vrijeme odziva. | Ova vrsta testiranja provjerava vrijeme odziva stabilnosti itd. |
U ispitivanju opterećenja granica opterećenja je prag loma. | Kod testiranja naprezanja granica opterećenja je iznad praga prekida. |
Razlika između funkcionalnog i testiranja opterećenja
Funkcionalno ispitivanje | Testiranje opterećenja |
---|---|
Rezultati funkcionalnih testova lako su predvidljivi jer imamo definirane odgovarajuće korake i preduvjete | Rezultati testova opterećenja su nepredvidivi |
Rezultati funkcionalnih testova malo variraju | Rezultati ispitivanja opterećenja drastično variraju |
Učestalost izvođenja Funkcionalno ispitivanje će biti visoka | Učestalost izvođenja testiranja opterećenja bit će niska |
Rezultati funkcionalnih ispitivanja ovise o podacima ispitivanja | Testiranje opterećenja ovisi o broju korisnika. |
Alati za testiranje opterećenja
Load Runner:
Load runner HP-ov je alat koji se koristi za testiranje aplikacija pod normalnim i vršnim uvjetima opterećenja. Load runner generira opterećenje stvaranjem virtualnih korisnika koji oponašaju mrežni promet. Simulira korištenje u stvarnom vremenu poput proizvodnog okruženja i daje grafičke rezultate.
Pročitajte više o Loadrunner ovdje.
Prednosti i nedostaci testiranja opterećenja
Sljedeće su prednosti testiranja opterećenja:
- Identifikacija uskih grla u izvedbi prije proizvodnje
- Poboljšava skalabilnost sustava
- Minimizirajte rizik vezan uz zastoj sustava
- Smanjeni troškovi kvara
- Povećajte zadovoljstvo kupaca
Nedostaci testiranja opterećenja:
- Za korištenje alata za provođenje testa opterećenja u kontekstu testiranja softvera potrebno je znanje programiranja.
- Alati mogu biti skupi jer cijena ovisi o broju podržanih virtualnih korisnika.
rezime
- Testiranje opterećenja definira se kao vrsta softverskog testiranja koje utvrđuje performanse sustava pod stvarnim uvjetima opterećenja.
- Testiranje opterećenja obično poboljšava uska grla izvedbe, skalabilnost i stabilnost aplikacije prije nego što je dostupna za proizvodnju.
- Ovo testiranje pomaže u prepoznavanju maksimalnog radnog kapaciteta aplikacija kao i uskih grla sustava.
- Ispitivanje opterećenja u testiranje softvera je važno jer ako se zanemari, može uzrokovati financijske gubitke za organizaciju.