Stressitestaus

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3. joulukuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Kuormitustestaus on suorituskyvyn testauksen alatyyppi , jossa  kerätään indikaattoreita ja määritetään ohjelmisto- ja laitteistojärjestelmän tai laitteen suorituskyky ja vasteaika vastauksena ulkoiseen pyyntöön, jotta voidaan varmistaa tämän järjestelmän (laitteen) vaatimustenmukaisuus.

Järjestelmän vasteajan tutkimiseksi korkeilla tai huippukuormituksilla suoritetaan stressitestaus , jossa järjestelmään syntyvä kuormitus ylittää sen normaalit skenaariot. Kuormitustestauksen ja stressitestauksen välillä ei ole selkeää rajaa, mutta näitä kahta ei pidä sekoittaa, sillä tämäntyyppiset testaukset vastaavat erilaisiin liiketoimintakysymyksiin ja käyttävät erilaisia ​​menetelmiä.

Yleisesti kuormitustestauksella tarkoitetaan käytäntöä mallintaa sovelluksen odotettua käyttöä emuloimalla useiden käyttäjien työtä samanaikaisesti. Näin ollen tällainen testaus soveltuu parhaiten monen käyttäjän järjestelmiin, joissa käytetään useimmiten asiakas-palvelin-arkkitehtuuria (esimerkiksi web-palvelimia). Samalla tavalla voidaan kuitenkin testata muun tyyppisiä ohjelmistojärjestelmiä. Esimerkiksi teksti- tai grafiikkaeditori voidaan saada lukemaan erittäin suuri asiakirja; ja rahoituspaketti on tuottaa raportti useiden vuosien tietoihin perustuen. Parhaiten suunniteltu kuormitustesti antaa tarkemmat tulokset.

Ihannetapauksessa kuormitustestauksen onnistumisen kriteerit ovat järjestelmän suorituskykyvaatimukset, jotka muotoillaan ja dokumentoidaan järjestelmän toiminnallisten vaatimusten kehittämisvaiheessa ennen arkkitehtonisten pääratkaisujen ohjelmointia. Usein kuitenkin käy niin, että tällaisia ​​vaatimuksia ei ole muotoiltu selkeästi tai niitä ei muotoiltu ollenkaan. Tässä tapauksessa ensimmäinen kuormitustestaus on tutkiva kuormitustestaus ja se perustuu kohtuullisiin oletuksiin odotetusta kuormituksesta ja laitteistoresurssien kulutuksesta . 

Yksi parhaista tavoista käyttää kuormitustestausta järjestelmän suorituskyvyn mittaamiseen on testaus varhaisessa kehitysvaiheessa. Arkkitehtonisen ratkaisun valmiuden ensimmäisissä vaiheissa suoritettavaa kuormitustestausta sen elinkelpoisuuden määrittämiseksi kutsutaan 'proof-of-concept' -testaukseksi.

Jotkut periaatteet

Pyyntöjen ainutlaatuisuus - vaikka olet muodostanut realistisen skenaarion järjestelmän kanssa työskentelylle sen käyttötilastojen perusteella, sinun on ymmärrettävä, että tähän skenaarioon tulee aina poikkeuksia.

Järjestelmän vasteaika - yleensä järjestelmän vasteaika noudattaa normaalijakaumafunktiota . Tämä tarkoittaa erityisesti sitä, että riittävällä määrällä mittauksia on mahdollista määrittää, millä todennäköisyydellä järjestelmän vastaus pyyntöön osuu tietylle aikavälille.

Järjestelmän vasteajan riippuvuus tämän järjestelmän jakautumisasteesta - järjestelmän vasteajan normaalijakauman varianssi pyyntöön on verrannollinen pyyntöjä rinnakkain käsittelevien järjestelmäsolmujen lukumäärään ja määrään. pyyntöjä solmua kohti. Toisin sanoen järjestelmän vasteajan arvojen leviämiseen vaikuttaa samanaikaisesti järjestelmän kuhunkin solmuun osuvien pyyntöjen määrä ja itse solmujen määrä, joista jokainen lisää jonkin verran satunnaista viivettä pyyntöjen käsittelyyn.

Järjestelmän vasteajan vaihtelu - riittävän suurella määrällä pyynnön käsittelyajan arvon mittauksia missä tahansa järjestelmässä tulee aina pyyntöjä, joiden käsittelyaika ylittää vaatimuksissa määritellyt maksimiarvot; Lisäksi mitä pidempi kokeen kokonaisaika on, sitä korkeammat uudet maksimit ovat. Tämä seikka otetaan huomioon määriteltäessä vaatimuksia järjestelmän suorituskyvylle sekä säännöllisissä kuormitustestauksissa.

Kuormaprofiilin tarkkuus - Vaadittu kuormitusprofiilin tarkkuus on sitä kalliimpaa, mitä enemmän järjestelmä sisältää komponentteja. Monimutkaisten järjestelmien kuormitusprofiilin kaikkia näkökohtia ei useinkaan ole mahdollista ottaa huomioon, sillä mitä monimutkaisempi järjestelmä, sitä enemmän aikaa kuluu sen riittävän kuormitusprofiilin suunnitteluun, ohjelmointiin ja ylläpitoon, mikä ei aina ole välttämätöntä. Optimaalinen lähestymistapa tässä tapauksessa on tasapainottaa testin kehittämiskustannusten ja järjestelmän toiminnallisuuden kattavuuden välillä, minkä seurauksena on oletuksia vaikutuksista testattavan järjestelmän jonkin osan kokonaissuorituskykyyn.

Toolkit

Joitakin kuormitustestaustyökaluja [1] [2] :

PÄÄLLÄ Valmistajan nimi Kommentit
OpenSTA "Avoimen järjestelmän testausarkkitehtuuri" Ilmainen ohjelmisto kuormitus-/rasitustestaukseen, lisensoitu GNU GPL:llä. Käyttää CORBA :aan perustuvaa hajautettua sovellusarkkitehtuuria . Windows-versio on saatavilla, vaikka Windows Vistan kanssa on yhteensopivuusongelmia. Tuki päättyi vuonna 2007.
IBM Rational Performance Tester IBM Eclipse -kehitysympäristöön perustuva ohjelmisto, jonka avulla voit luoda suuren kuorman ja mitata vasteaikaa sovelluksille, joissa on asiakas-palvelin-arkkitehtuuri. Vaatii lisenssin.
jmeter Avaa Apache Jakarta Project Java-pohjainen cross-platform työkalupakki, jonka avulla voit suorittaa kuormitustestejä JDBC / FTP / LDAP / SOAP / JMS / POP3 / HTTP / TCP-yhteyksillä. Sen avulla voit luoda suuren määrän pyyntöjä eri tietokoneista ja hallita prosessia yhdestä niistä.
HP LoadRunner HP Kuormitustestaustyökalu, joka alun perin kehitettiin jäljittelemään useiden samanaikaisten käyttäjien työtä. Sitä voidaan käyttää myös yksikkö - tai integrointitestaukseen .
LoadComplete Älykäs karhu Oma tuote, jonka avulla voit ladata testiverkkosovelluksia
SilkPerformer Micro Focus (Borland)
Piiritys Joe Dog -ohjelmisto Siege on verkkopalvelimen kuormitustestausapuohjelma. [3]
Visual Studio Team System Microsoft Visual Studio tarjoaa suorituskyvyn testaustyökalun, joka sisältää kuormitus-/yksikkötestauksen
QTest Quotium
httperf
QALload Compuware Ltd.
() Hiomakone
WebLOAD RadView ohjelmisto Kuormitustestaustyökalu verkko- ja mobiilisovelluksille, mukaan lukien web-hallintapaneelit suorituskyvyn testauksen analysointiin. Käytetään suurissa työkuormissa, jotka voidaan myös luoda pilvestä. lisensoitu. [neljä]

Suorituskykymittarit

Yksi kuormitustestauksen aikana saaduista tuloksista, joita käytetään jatkoanalyyseihin, ovat sovelluksen suorituskykyindikaattorit.

Prosessoriresurssien kulutus on mittari, joka näyttää, kuinka paljon aikaa prosessori käytti tietyn aikavälin aikana valitun prosessin laskelmiin. Nykyaikaisissa järjestelmissä tärkeä tekijä on prosessin kyky toimia useissa säikeissä, jotta prosessori voi suorittaa laskelmia rinnakkain. Suorittimen resurssien kulutushistorian analyysi voi selittää vaikutuksen käsiteltyjen tietovirtojen järjestelmän yleiseen suorituskykyyn, sovellus- ja käyttöjärjestelmän kokoonpanoon, monisäikeiseen tietojenkäsittelyyn ja muihin tekijöihin.

RAM-muistin kulutus on mittari, joka näyttää sovelluksen käyttämän muistin määrän. Käytetty muisti on jaettu useisiin luokkiin:

Kun sovellus on käynnissä, muisti on täynnä viittauksia objekteihin, jotka, jos ne eivät ole käytössä, voidaan puhdistaa erityisellä automaattisella prosessilla, jota kutsutaan roskakeräyksi . Aika, jonka prosessori vie muistin puhdistamiseen tällä tavalla, voi olla merkittävä, kun prosessi on kuluttanut kaiken käytettävissä olevan muistin (Javalla ns. "persistent Full GC") tai kun prosessille on varattu suuria määriä muistia, joka täytyy siivota. Muistin puhdistamiseen kuluvan ajan aikana prosessin pääsy varatun muistin sivuille voidaan estää, mikä voi vaikuttaa prosessin lopulliseen käsittelyaikaan.

Verkon resurssien kulutus on mittari, joka ei liity suoraan sovelluksen suorituskykyyn, mutta sen indikaattorit voivat osoittaa koko järjestelmän suorituskykyrajat.

I/O-alijärjestelmän suorituskyky voi vaikuttaa merkittävästi järjestelmän suorituskykyyn, joten asemien kanssa työskentelyä koskevien tilastojen kerääminen voi auttaa tunnistamaan pullonkauloja tällä alueella. Suuri luku- tai kirjoitusmäärä voi aiheuttaa prosessorin joutumisen odottaessaan tietojen käsittelyä levyltä, mikä lisää prosessorin resurssien kulutusta ja vasteaikaa.

Sovelluksen pyynnön suoritusaika on edelleen yksi tärkeimmistä järjestelmän tai sovelluksen suorituskyvyn mittareista. Tämä aika voidaan mitata palvelinpuolella ajan mittana, joka palvelinpuolen pyynnön käsittelyyn kuluu; ja asiakkaalla osoittimena pyynnön sarjoitukseen ja sarjoitukseen , välittämiseen ja käsittelyyn tarvittavasta kokonaisajasta. Jokainen suorituskyvyn testaussovellus ei kuitenkaan voi mitata näitä molempia aikoja.

Muistiinpanot

  1. Molyneaux, I. Sovelluksen suorituskyvyn testauksen taito: Ohjelmoijille ja laadunvarmistukselle. - O'Reilly Media, 2009. - S. 130. - 158 s. — ISBN 9780596555436 .
  2. Sosinsky, B. Cloud Computing Bible. - Wiley, 2010. - S. 121. - ISBN 9781118023990 .
  3. Siegen kotisivu . Haettu 16. marraskuuta 2013. Arkistoitu alkuperäisestä 20. marraskuuta 2013.
  4. "WebLOAD-tarkistus - WebLOAD-kuormitustestaustyökalun käytön aloittaminen" . Haettu 12. syyskuuta 2015. Arkistoitu alkuperäisestä 13. lokakuuta 2015.

Kirjallisuus