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.
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.
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ä] |
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.