logo

Testiranje performansi

U ovom odjeljku naučit ćemo o testiranju izvedbe, zašto nam je potrebno, vrstama testiranja izvedbe i procesu testiranja izvedbe.

Slijede teme koje ćemo razumjeti u ovom odjeljku:

Što je testiranje performansi?

To je najvažniji dio nefunkcionalnog testiranja.

Provjera ponašanja aplikacije primjenom nekog opterećenja poznata je kao testiranje performansi.

Općenito, ovo testiranje definira koliko brzo poslužitelj odgovara na zahtjev korisnika.

Dok testiramo performanse aplikacije, usredotočit ćemo se na različite čimbenike kao što su Vrijeme odziva, opterećenje i stabilnost aplikacije.

Vrijeme odziva: Vrijeme odgovora je vrijeme potrebno poslužitelju da odgovori na zahtjev klijenta.

Opterećenje: Ovdje Load znači da kada N-broj korisnika koji istovremeno koriste aplikaciju ili šalju zahtjev poslužitelju odjednom.

Stabilnost: Za faktor stabilnosti možemo reći da kada N-broj korisnika istovremeno koristi aplikaciju određeno vrijeme.

Kada koristimo testiranje performansi?

Provest ćemo testiranje performansi nakon što softver postane stabilan i premješten u proizvodnju, a može mu istovremeno pristupiti više korisnika, zbog toga se mogu pojaviti problemi s performansama. Kako bi izbjegao te probleme s izvedbom, ispitivač izvodi jedan krug testiranja izvedbe.

Budući da se radi o nefunkcionalnom testiranju, što ne znači da uvijek koristimo testiranje performansi, idemo na testiranje performansi samo kada je aplikacija funkcionalno stabilna.

Napomena: Testiranje performansi ne može se obaviti ručno jer se njegovi skupi i točni rezultati ne mogu održati.

Vrste testiranja performansi

Slijede vrste testiranja performansi:

isključivanje načina rada za razvojne programere
    Ispitivanje opterećenja Testiranje otpornosti na stres Testiranje skalabilnosti Ispitivanje stabilnosti
Testiranje performansi

Raspravljajmo o jednom po jednom kako bismo vam dali potpuno razumijevanje Opterećenje, stres, skalabilnost, i Stabilnost testiranje performansi.

Ispitivanje opterećenja

Testiranje opterećenja koristi se za provjeru izvedbe aplikacije primjenom nekog opterećenja koje je manje ili jednako željenom opterećenju i poznato je kao testiranje opterećenja.

Na primjer: Na donjoj slici, 1000 korisnika su željeno opterećenje , koju daje kupac, i 3/sekundi je cilj što želimo postići izvođenjem ispitivanja opterećenja.

Testiranje performansi

Testiranje otpornosti na stres

Testiranje stresa je testiranje koje provjerava ponašanje aplikacije primjenom opterećenja većeg od željenog.

Na primjer: Ako uzmemo gornji primjer i povećamo željeno opterećenje s 1000 na 1100 korisnika, a cilj je 4/sek. Tijekom izvođenja testiranja otpornosti na stres u ovom scenariju, ono će proći jer je opterećenje veće (100 više) od stvarnog željenog opterećenja.

Testiranje performansi

Testiranje skalabilnosti

Provjera izvedbe aplikacije povećanjem ili smanjenjem opterećenja u određenim skalama (bez korisnika) poznata je kao testiranje skalabilnosti . Testiranje skalabilnosti prema gore i skalabilnosti prema dolje naziva se testiranjem skalabilnosti.

Testiranje skalabilnosti podijeljeno je u dva dijela koji su sljedeći:

    Testiranje skalabilnosti prema gore Testiranje skalabilnosti prema dolje

Testiranje skalabilnosti prema gore

Testira se gdje mi povećati broj korisnika na određenoj razini dok ne dobijemo točku sudara. Koristit ćemo testiranje skalabilnosti prema gore kako bismo pronašli maksimalni kapacitet aplikacije.

Testiranje skalabilnosti prema dolje

Testiranje skalabilnosti prema dolje koristi se kada testiranje opterećenja nije prošlo, a zatim započnite smanjenje br. korisnika u određenom intervalu dok se cilj ne postigne. Tako da je lako identificirati usko grlo (bug).

Ispitivanje stabilnosti

Provjera izvedbe aplikacije pomoću primjenom opterećenja određeno vrijeme je poznat kao Ispitivanje stabilnosti .

Primjer testiranja performansi

Uzmimo jedan primjer gdje hoćemo testirati ponašanje aplikacije gdje je željeno opterećenje manje od 1000 ili jednako 1000 korisnika .

Na donjoj slici možemo vidjeti da je 100 gore broj korisnika kontinuirano se povećava kako bi se provjerilo maksimalno opterećenje , koji se također naziva testiranje skalabilnosti prema gore .

    Scenarij 1:Kada imamo 1000 korisnika kao željeno opterećenje, a 2,7/s je ciljno vrijeme, ti će scenariji proći tijekom izvođenja testa opterećenja jer ćemo se u testiranju opterećenja koncentrirati na br. korisnika, a prema zahtjevu jednak je 1000 korisnika.Scenarij 2:U sljedećem scenariju povećat ćemo željeno opterećenje za 100 korisnika, a ciljno vrijeme će se povećati na 3,5sek. Ovaj scenarij će proći ako izvršimo testiranje otpornosti na stres jer je ovdje stvarno opterećenje veće od (1100) željenog opterećenja (1000).Scenarij3:Pri tome, ako željeno opterećenje povećamo tri puta
    1200 → 3,5sek: [nije manji ili jednak željenom opterećenju, zato će Iznevjeriti ]
    1300 → 4sek: [nije manja ili jednaka željenom opterećenju. tj. Iznevjeriti ]
    1400 → Srušio se
Testiranje performansi

Napomena1: Ispitivanje volumena i natopljenosti je vrsta testiranja, ali ne i ispitivanje performansi.

Ispitivanje volumena

json datoteka

Volumensko testiranje je testiranje koje nam pomaže da provjerimo ponašanje aplikacije umetanjem ogromne količine učitavanja u smislu podataka i poznato je kao volumensko testiranje, a ovdje ćemo se usredotočiti na broj brzina prijenosa podataka nego na broj korisnika .

Napomena 2:
Volumen je kapacitet dok je opterećenje količina, tj. ispitivanje opterećenja znači br. korisnika, a testiranje volumena znači količinu podataka.

Ispitivanje namakanja

U ovoj vrsti testiranja, provjeravat ćemo ponašanje aplikacije u okruženju, koje nije podržano dulje vrijeme, što je poznato kao soak test.

Općenito, testiranje usisavanja je negativna vrsta testiranja budući da već znamo da poslužitelj ili okolina ne podržavaju.

Proces testiranja performansi

Testiranje performansi ne može se izvršiti ručno jer:

  • Trebamo puno resursa, a to je postao skuplji pristup.
  • A točnost se ne može održati kada vrijeme odziva pratimo ručno.

Proces testiranja performansi bit će dovršen u sljedećim koracima:

  • Identificirajte scenarije izvedbe
  • Planirajte i dizajnirajte skriptu za testiranje izvedbe
  • Konfigurirajte testnu okolinu i rasporedite opterećenje
  • Izvršite testne skripte
  • Proizlaziti
  • Rezultat analize
  • Prepoznajte usko grlo
  • Ponovno pokrenite test
Testiranje performansi

Ako izvedemo a pozitivan protok procesa testiranja performansi, mogao bi slijediti proces u nastavku:

Identificirajte scenarije izvedbe

Prvo ćemo identificirati scenarije izvedbe na temelju sljedećih čimbenika:

Najčešći scenariji: To znači da možemo pronaći scenarije izvedbe na temelju scenarija koji se obično koriste kao u Gmail aplikacija; nastupit ćemo prijava, ulazna pošta, slanje stavki, sastavljanje e-pošte i odjava .

Najkritičniji scenariji: Kritični scenariji znače redovito korištene i važne za poslovnu aplikaciju u Gmailu prijava, sastavljanje, ulazna pošta i odjava .

Ogromna podatkovna transakcija: Ako imamo ogromne podatke, to znači da n-broj korisnika koristi aplikaciju u isto vrijeme.

Nakon što identificiramo scenarije izvedbe, prijeći ćemo na sljedeći korak.

git naredbe za push

Planirajte i dizajnirajte skriptu za testiranje izvedbe

U ovom koraku ćemo instalirati alate u Test Engineer Machine i pristupiti testnom poslužitelju, a zatim ćemo napisati neku skriptu prema testnim scenarijima i pokrenuti alat.

Kada završimo s pisanjem scenarija, prijeći ćemo na sljedeći korak.

Konfigurirajte testnu okolinu i rasporedite opterećenje

Nakon pisanja testnih skripti, uredit ćemo testno okruženje prije izvođenja. Također, upravljajte alatima, drugim resursima i raspodijelite opterećenje prema 'Uzorku korištenja' ili spomenite trajanje i stabilnost.

Izvršite testne skripte

Nakon što završimo s raspodjelom opterećenja, izvršit ćemo, potvrditi i nadzirati testne skripte.

Proizlaziti

Nakon izvršenja testnih skripti, dobit ćemo rezultat testa. I provjerite ispunjava li rezultat cilj u zadanom vremenu odgovora ili ne, a vrijeme odgovora može biti maksimalno, prosječno i minimalno.

Ako odgovor ne zadovoljava traženi vremenski odgovor, tada ćemo ići na negativan protok gdje će izvršiti sljedeće korake:

Rezultat analize

Prvo ćemo analizirati rezultat testa zadovoljava li vrijeme odziva ili ne.

Prepoznajte usko grlo

Nakon toga ćemo identificirati usko grlo (bug ili problem s performansama ). A usko grlo moglo bi nastati zbog ovih aspekata kao što je problem u kodu, problem s hardverom (tvrdi disk, RAM procesor), problemi s mrežom, i softverski problem (operativni sustav) . A nakon što pronađemo usko grlo, nastupit ćemo podešavanje (popravak ili podešavanje) riješiti ovo usko grlo.

Ponovno pokrenite test

Nakon što popravimo uska grla, ponovno pokrenite testne skripte i provjerite ispunjava li rezultat traženi cilj ili ne.

Problem se javlja kod testiranja performansi

Tijekom izvođenja testiranja performansi aplikacije mogu se pojaviti neki problemi, a ti se problemi nazivaju i problem izvedbe .

Problemi s izvedbom su sljedeći:

    Problem s vremenom odziva Problem skalabilnosti Usko grlo Problem s brzinom

Problem s vremenom odziva

Vrijeme odziva znači koliko brzo poslužitelj odgovara na zahtjev klijenta. Ako korisnikov zahtjev ne završi u zadanom vremenu odgovora, moguće je da korisnik izgubi interes za određeni softver ili aplikaciju. Zato bi aplikacija ili softver trebao imati savršeno vrijeme odziva za brzi odgovor na zahtjev korisnika.

Problem skalabilnosti

Problemi s skalabilnošću javljaju se kada aplikacija ne može prihvatiti n-broj korisnika i očekivane korisničke zahtjeve u isto vrijeme. Zato ćemo učiniti testiranje skalabilnosti prema gore (provjerite maksimalni kapacitet aplikacije) i testiranje skalabilnosti prema dolje (kada se očekivano vrijeme ne podudara sa stvarnim vremenom).

Usko grlo

Usko grlo je neformalni naziv greške koja se javlja kada je aplikacija ograničena jednom komponentom i stvara loš utjecaj na performanse sustava.

Glavni uzroci uskog grla su problemi sa softverom (problemi povezani s operativnim sustavom), problemi s hardverom (problemi vezani uz tvrdi disk, RAM i procesor), i problem kodiranja, itd.

Slijede najčešća uska grla u izvedbi:

  • Korištenje memorije
  • Upotreba diska
  • Iskorištenost CPU-a
  • Ograničenja operativnog sustava
  • Iskorištenje mreže

Problemi s brzinom

Kada provodimo testiranje performansi aplikacije, aplikacija bi trebala biti brža kako bi privukla interes i pažnju korisnika jer ako je brzina aplikacije spora, može izgubiti interes korisnika za aplikaciju.

Alati za testiranje performansi

Na tržištu imamo različite vrste alata za testiranje performansi, od kojih su neki komercijalni alati i alati otvorenog koda.

Komercijalni alati: LoadRunner[HP], WebLOAD, NeoLoad

Alat otvorenog koda: JMeter

LoadRunner

To je jedan od najmoćnijih alata za testiranje performansi, koji se koristi za podršku testiranju performansi za širok raspon protokola, broj tehnologija i aplikacijskih okruženja.

tcp ip model

Brzo identificira najčešće uzroke problema s performansama. Također točno predviđaju skalabilnost i kapacitet aplikacije.

JMeter

Softver Apache JMeter je alat otvorenog koda, koji je u potpunosti Java aplikacija dizajnirana za učitavanje ponašanja funkcionalnog testa i mjerenje performansi.

Općenito, dizajniran je za testiranje web-aplikacija, ali sada je proširen i na druge testne funkcije.

Apache JMeter koristi se za testiranje performansi za statičke i dinamičke resurse i dinamičke web aplikacije.
Može se koristiti za reprodukciju velikog opterećenja na poslužitelju, mreži ili objektu, grupi poslužitelja za testiranje njegove snage ili za analizu ukupne izvedbe pod različitim vrstama opterećenja.

WebLOAD

Alat za testiranje WebLOAD koji se koristi za testiranje web aplikacija za testiranje opterećenja, testiranje performansi i testiranje stresa.

Alat WebLOAD kombinira performanse, skalabilnost i cjelovitost kao jedan proces za provjeru web i mobilnih aplikacija.

NeoLoad

Neotys razvija alat za testiranje koji se zove NeoLoad. NeoLoad se koristi za testiranje scenarija testiranja performansi. Uz pomoć NeoLoad-a možemo pronaći područja s uskim grlima na webu i u procesu razvoja mobilne aplikacije.

Alat za testiranje NeoLoad brži je u usporedbi s tradicionalnim alatima.

Osim njih, neki drugi alati su Električno opterećenje, web alat za stres, LoadUI Pro, StresStimulus, LoadView, LoadNinja i RedLine13, što pomaže u testiranju performansi softvera ili aplikacije.