V tem razdelku bomo spoznali testiranje zmogljivosti, zakaj ga potrebujemo, vrste testiranja zmogljivosti in postopek testiranja zmogljivosti.
Sledijo teme, ki jih bomo razumeli v tem razdelku:
Kaj je testiranje delovanja?
Je najpomembnejši del nefunkcionalnega testiranja.
Preverjanje obnašanja aplikacije z uporabo določene obremenitve je znano kot testiranje zmogljivosti.
Na splošno to testiranje določa, kako hitro se strežnik odzove na uporabnikovo zahtevo.
Med testiranjem zmogljivosti aplikacije se bomo osredotočili na različne dejavnike, kot so Odzivni čas, obremenitev in stabilnost aplikacije.
Odzivni čas: Odzivni čas je čas, ki ga potrebuje strežnik, da odgovori na zahtevo odjemalca.
obremenitev: Tukaj Load pomeni, da kdaj N-število uporabnikov, ki istočasno uporabljajo aplikacijo ali pošljejo zahtevo strežniku hkrati.
Stabilnost: Za faktor stabilnosti lahko rečemo, da N-število uporabnikov istočasno uporablja aplikacijo v določenem času.
Kdaj uporabljamo testiranje zmogljivosti?
Preizkušanje zmogljivosti bomo izvedli, ko bo programska oprema stabilna in se premakne v produkcijo, do nje pa lahko hkrati dostopa več uporabnikov, zato se lahko pojavijo nekatere težave z zmogljivostjo. Da bi se izognil tem težavam z zmogljivostjo, preizkuševalec izvede en krog testiranja zmogljivosti.
Ker gre za nefunkcionalno testiranje, kar ne pomeni, da vedno uporabljamo testiranje zmogljivosti, se za testiranje učinkovitosti odločimo samo, ko je aplikacija funkcionalno stabilna.
Opomba: Preizkušanja zmogljivosti ni mogoče izvesti ročno, ker dragih in natančnih rezultatov ni mogoče ohraniti.
Vrste testiranja zmogljivosti
Sledijo vrste testiranja zmogljivosti:
kako izvesti skript
Dovolite, da razpravljamo enega za drugim, da boste v celoti razumeli Obremenitev, stres, razširljivost, in Stabilnost testiranje delovanja.
Testiranje obremenitve
Preizkušanje obremenitve se uporablja za preverjanje delovanja aplikacije z uporabo določene obremenitve, ki je manjša ali enaka želeni obremenitvi, kar je znano kot testiranje obremenitve.
Na primer: Na spodnji sliki je 1000 uporabnikov so želeno obremenitev , ki ga poda stranka, in 3/sekundo ali je cilj kar želimo doseči pri izvajanju obremenitvenega testiranja.
Stresno testiranje
Stresno testiranje je testiranje, ki preverja obnašanje aplikacije z uporabo obremenitve, ki je večja od želene.
Na primer: Če vzamemo zgornji primer in povečamo želeno obremenitev s 1000 na 1100 uporabnikov, cilj pa je 4/sekundo. Med izvajanjem stresnega testiranja v tem scenariju bo uspešno, ker je obremenitev večja (100 navzgor) od dejanske želene obremenitve.
Testiranje razširljivosti
Preverjanje delovanja aplikacije s povečanjem ali zmanjšanjem obremenitve v določenih lestvicah (brez uporabnika) je znano kot testiranje razširljivosti . Testiranje razširljivosti navzgor in navzdol se imenuje testiranje razširljivosti.
Testiranje razširljivosti je razdeljeno na dva dela, ki sta naslednja:
Testiranje razširljivosti navzgor
Preizkuša se tam, kjer smo povečati število uporabnikov v določenem obsegu dokler ne dobimo točke zrušitve. Za iskanje največje zmogljivosti aplikacije bomo uporabili testiranje razširljivosti navzgor.
Testiranje razširljivosti navzdol
Testiranje razširljivosti navzdol se uporabi, ko preizkus obremenitve ni opravljen, nato se začne zmanjševanje št. uporabnikov v določenem intervalu dokler cilj ni dosežen. Tako, da je enostavno prepoznati ozko grlo (hrošč).
Testiranje stabilnosti
Preverjanje delovanja aplikacije s uporaba obremenitve za določeno časovno obdobje je znan kot Testiranje stabilnosti .
Primer testiranja zmogljivosti
Vzemimo en primer, kjer bomo preizkusite obnašanje aplikacije, kjer je želena obremenitev manjša od 1000 ali enaka 1000 uporabnikom .
Na spodnji sliki lahko vidimo, da je 100 gor število uporabnikov se nenehno povečuje, da preverijo največja obremenitev , ki se imenuje tudi testiranje razširljivosti navzgor .
android.process.acore se kar naprej ustavlja
1200 → 3,5s: [ni manjša ali enaka želeni obremenitvi, zato bo neuspeh ]
1300 → 4sek: [ni manjša ali enaka želeni obremenitvi. tj. neuspeh ]
1400 → Strmoglavilo
Opomba 1: Testiranje prostornine in namakanja je vrsta testiranja, ne pa tudi testiranje delovanja.
Volumensko testiranje
Volumensko testiranje je testiranje, ki nam pomaga preveriti obnašanje aplikacije z vstavljanjem ogromne količine obremenitve v smislu podatkov, kar je znano kot količinsko testiranje, in tukaj se bomo osredotočili na število podatkovnih hitrosti kot na število uporabnikov .
Opomba 2:
Prostornina je zmogljivost, medtem ko je obremenitev količina, tj. testiranje obremenitve pomeni št. uporabnikov, obseg testiranja pa pomeni količino podatkov.
Testiranje namakanja
Pri tej vrsti testiranja bomo preverili obnašanje aplikacije v okolju, ki je dolgo časa ne podpira, kar je znano kot preizkušanje vpijanja.
Na splošno je preizkušanje vpijanja negativna vrsta testiranja, saj že vemo, da strežnik ali okolje ne podpira.
Postopek testiranja zmogljivosti
Testiranja delovanja ni mogoče izvesti ročno, ker:
- Potrebujemo veliko sredstev in postal je dražji pristop.
- In natančnosti ni mogoče ohraniti, če odzivni čas spremljamo ročno.
Postopek testiranja zmogljivosti bo zaključen v naslednjih korakih:
- Ugotovite scenarije uspešnosti
- Načrtujte in načrtujte testni skript uspešnosti
- Konfigurirajte testno okolje in porazdelite obremenitev
- Izvedite testne skripte
- Rezultat
- Rezultat analize
- Prepoznajte ozko grlo
- Ponovno zaženite test
Če izvajamo a pozitiven tok postopka testiranja učinkovitosti, bi lahko sledil spodnjemu postopku:
Ugotovite scenarije uspešnosti
Najprej bomo identificirali scenarije uspešnosti na podlagi naslednjih dejavnikov:
Najpogostejši scenariji: To pomeni, da lahko najdemo scenarije uspešnosti na podlagi scenarijev, ki se običajno uporabljajo kot v aplikacija Gmail; bomo izvajali prijava, prejeto pošto, pošiljanje predmetov in sestavljanje e-pošte ter odjava .
Najbolj kritični scenariji: Kritični scenariji pomenijo redno uporabo in so pomembni za poslovno podobno aplikacijo Gmail prijava, sestavljanje, prejeto sporočilo in odjava .
Ogromne podatkovne transakcije: Če imamo ogromno podatkov, to pomeni, da n-število uporabnikov uporablja aplikacijo hkrati.
Ko identificiramo scenarije uspešnosti, se premaknemo na naslednji korak.
Načrtujte in načrtujte testni skript uspešnosti
V tem koraku bomo namestili orodja v Test Engineer Machine in dostopali do testnega strežnika, nato pa bomo napisali skript v skladu s testnimi scenariji in zagnali orodje.
Ko končamo s pisanjem scenarija, gremo na naslednji korak.
Konfigurirajte testno okolje in porazdelite obremenitev
Po pisanju testnih skriptov bomo pred izvedbo uredili testno okolje. Prav tako upravljajte orodja, druge vire in porazdelite obremenitev glede na 'vzorec uporabe' ali navedite trajanje in stabilnost.
Izvedite testne skripte
Ko končamo z razdelitvijo obremenitve, bomo izvedli, preverili in nadzirali testne skripte.
Rezultat
Po izvedbi testnih skriptov bomo dobili rezultat testa. In preverite, ali rezultat izpolnjuje cilj v danem odzivnem času ali ne, odzivni čas pa je lahko največji, povprečni in najmanjši.
Če odziv ne ustreza zahtevanemu časovnemu odzivu, se bomo odločili za negativni tok kjer bo izvedel naslednje korake:
Rezultat analize
Najprej bomo analizirali rezultat testa, ali ustreza odzivnemu času ali ne.
koliko mest je pri nas
Prepoznajte ozko grlo
Po tem bomo identificirali ozko grlo (napaka ali težava z delovanjem ). In ozko grlo bi lahko nastalo zaradi teh vidikov, kot je težava v kodi, težava s strojno opremo (trdi disk, RAM procesor), težave z omrežjem, in težava s programsko opremo (operacijski sistem) . In ko najdemo ozko grlo, bomo nastopili nastavitev (popravek ali prilagoditev) za rešitev tega ozkega grla.
Ponovno zaženite test
Ko odpravimo ozka grla, ponovno zaženemo testne skripte in preverimo rezultat, ali izpolnjuje zahtevani cilj ali ne.
Težava se pojavi pri testiranju zmogljivosti
Med izvajanjem testiranja delovanja aplikacije se lahko pojavijo nekatere težave, ki se imenujejo tudi težave težava z zmogljivostjo .
Težave z zmogljivostjo so naslednje:
Težava z odzivnim časom
Odzivni čas pomeni, kako hitro se strežnik odzove na zahtevo odjemalca. Če se uporabnikova zahteva ne dokonča v danem odzivnem času, je možno, da uporabnik izgubi zanimanje za določeno programsko opremo ali aplikacijo. Zato mora imeti aplikacija ali programska oprema popoln odzivni čas za hiter odziv na zahtevo uporabnika.
Težava z razširljivostjo
Težave z razširljivostjo se pojavijo, ko aplikacija ne more sprejeti n-števil uporabnikov in pričakovanih zahtev uporabnikov hkrati. Zato bomo storili testiranje razširljivosti navzgor (preverite največjo zmogljivost aplikacije) in testiranje razširljivosti navzdol (če se pričakovani čas ne ujema z dejanskim časom).
ozko grlo
Ozko grlo je neformalno ime hrošča, ki se pojavi, ko je aplikacija omejena z eno samo komponento in slabo vpliva na delovanje sistema.
Glavni vzroki ozkih grl so težave s programsko opremo (težave v zvezi z operacijskim sistemom), težave s strojno opremo (težave v zvezi s trdim diskom, RAM-om in procesorjem), in težava s kodiranjem, itd.
Sledijo najpogostejša ozka grla pri delovanju:
- Poraba pomnilnika
- Poraba diska
- Izkoriščenost procesorja
- Omejitve operacijskega sistema
- Uporaba omrežja
Težave s hitrostjo
Ko izvajamo testiranje delovanja aplikacije, bi morala biti aplikacija hitrejša, da bi pritegnila zanimanje in pozornost uporabnika, ker če je hitrost aplikacije počasna, lahko izgubi zanimanje uporabnika za aplikacijo.
Orodja za testiranje zmogljivosti
Na trgu imamo na voljo različne vrste orodij za testiranje zmogljivosti, med katerimi so nekatera komercialna orodja in odprtokodna orodja.
Komercialna orodja: LoadRunner[HP], WebLOAD, NeoLoad
Odprtokodno orodje: JMeter
čas večerje proti večerji
LoadRunner
Je eno najmočnejših orodij za testiranje zmogljivosti, ki se uporablja za podporo testiranja zmogljivosti za širok nabor protokolov, število tehnologij in aplikacijskih okolij.
Hitro prepozna najpogostejše vzroke za težave z delovanjem. In tudi natančno napovedati razširljivost in zmogljivost aplikacije.
JMeter
Programska oprema Apache JMeter je odprtokodno orodje, ki je v celoti aplikacija Java, zasnovana za nalaganje funkcionalnega testnega obnašanja in merjenje zmogljivosti.
Na splošno je bil zasnovan za testiranje spletnih aplikacij, zdaj pa je razširjen tudi na druge testne funkcije.
Apache JMeter se uporablja za testiranje zmogljivosti za statične in dinamične vire ter dinamične spletne aplikacije.
Uporablja se lahko za reprodukcijo velike obremenitve strežnika, omrežja ali objekta, skupine strežnikov, da se preizkusi njegova moč ali analizira splošno delovanje pri različnih vrstah obremenitev.
WebLOAD
Orodje za testiranje WebLOAD, ki se uporablja za testiranje spletnih aplikacij za testiranje obremenitve, testiranje zmogljivosti in stresno testiranje.
Orodje WebLOAD združuje zmogljivost, razširljivost in celovitost kot en sam postopek za preverjanje spletnih in mobilnih aplikacij.
NeoLoad
Neotys je razvil orodje za testiranje, ki se imenuje NeoLoad. NeoLoad se uporablja za testiranje scenarijev testiranja zmogljivosti. S pomočjo NeoLoad lahko najdemo ozka grla v procesu razvoja spleta in mobilnih aplikacij.
Testno orodje NeoLoad je hitrejše v primerjavi s tradicionalnimi orodji.
Poleg njih so še nekatera druga orodja Električna obremenitev, spletno orodje za stres, LoadUI Pro, StresStimulus, LoadView, LoadNinja in RedLine13, ki pomaga preizkusiti delovanje programske opreme ali aplikacije.