A terhelési tesztelés a teljesítményteszt egy altípusa , amely indikátorokat gyűjt, valamint külső kérésre adott szoftver- és hardverrendszer vagy eszköz teljesítményét és válaszidejét határozza meg annak érdekében, hogy megállapítsa a rendszer (eszköz) követelményeinek való megfelelést.
A rendszer válaszidejének tanulmányozására magas vagy csúcsterhelések esetén stressztesztet végeznek , amelyben a rendszeren keletkező terhelés meghaladja a normál használati forgatókönyveket. Nincs egyértelmű határvonal a terheléses tesztelés és a stresszteszt között, de a kettőt nem szabad összetéveszteni, mivel az ilyen típusú tesztelések különböző üzleti kérdésekre válaszolnak, és eltérő módszertant alkalmaznak.
Általánosságban elmondható, hogy a terhelési tesztelés egy alkalmazás várható használatának modellezését jelenti több felhasználó munkájának egyidejű emulálásával. Így az ilyen tesztelés leginkább többfelhasználós rendszerekre alkalmas, leggyakrabban kliens-szerver architektúrát használva (például webszerverek). Más típusú szoftverrendszerek azonban hasonló módon tesztelhetők. Például egy szöveg- vagy grafikus szerkesztővel beolvasható egy nagyon nagy dokumentum; a pénzügyi csomag pedig az, hogy több éves adatok alapján készítsen jelentést. A legmegfelelőbben megtervezett terhelési teszt pontosabb eredményeket ad.
Ideális esetben a terheléses tesztelés sikerének kritériumai a rendszerteljesítményre vonatkozó követelmények, amelyeket a rendszer funkcionális követelményeinek kidolgozásának szakaszában fogalmaznak meg és dokumentálnak a fő építészeti megoldások programozása előtt. Gyakran előfordul azonban, hogy az ilyen követelményeket nem fogalmazták meg egyértelműen, vagy egyáltalán nem fogalmazták meg. Ebben az esetben az első terhelési tesztelés feltáró terhelési teszt lesz, és a várható terhelésre és hardver erőforrás-fogyasztásra vonatkozó ésszerű feltételezéseken fog alapulni .
A terhelési tesztelés egyik legjobb módja a rendszer teljesítményének mérésére a korai fejlesztési szakaszban történő tesztelés. Az építészeti megoldás készenlétének első szakaszában végzett terheléses tesztelést, annak életképességének megállapítása érdekében, „koncepció igazolásának” nevezik.
A kérések egyedisége – még akkor is, ha egy reális forgatókönyvet alakított ki a rendszerrel való munkavégzéshez a használati statisztikája alapján, meg kell értenie, hogy ez alól a forgatókönyv alól mindig lesznek kivételek.
Rendszer válaszidő - általában a rendszer válaszideje engedelmeskedik a normál eloszlási függvénynek . Ez különösen azt jelenti, hogy elegendő számú méréssel meg lehet határozni annak valószínűségét, hogy a rendszer egy kérésre adott válasza egy adott időintervallumba esik.
A rendszer válaszidejének függősége a rendszer eloszlási fokától - a rendszer válaszidejének normál eloszlásának varianciája egy kérésre arányos az ilyen kéréseket párhuzamosan feldolgozó rendszercsomópontok számának és a kérések számának arányával. csomópontonkénti kérések száma. Vagyis a rendszer válaszideje értékeinek terjedését egyszerre befolyásolja a rendszer egyes csomópontjaira eső kérések száma és magának a csomópontnak a száma, amelyek mindegyike véletlenszerűen késlelteti a kérések feldolgozását.
Változás a rendszer válaszidejében - a kérésfeldolgozási idő értékének kellően nagy számú mérése esetén bármely rendszerben mindig lesznek olyan kérések, amelyek feldolgozási ideje meghaladja a követelményekben meghatározott maximumokat; sőt minél hosszabb a kísérlet teljes ideje, annál magasabbak lesznek az új maximumok. Ezt a tényt figyelembe veszik a rendszerteljesítményre vonatkozó követelmények kialakításakor, valamint a rendszeres terhelési tesztelés során.
Terhelési profil hűség – A szükséges terhelési profil hűség annál drágább, minél több alkatrészt tartalmaz a rendszer. Az összetett rendszerek terhelési profiljának minden szempontját gyakran nem lehet figyelembe venni, hiszen minél összetettebb a rendszer, annál több időt fordítanak a megfelelő terhelési profil tervezésére, programozására és karbantartására, ami nem mindig szükséges. Az optimális megközelítés ebben az esetben az, hogy egyensúlyt kell teremteni egy teszt kidolgozásának költsége és a rendszer funkcionalitásának lefedettsége között, aminek eredményeként feltételezések születnek a tesztelt rendszer egyik vagy másik részének általános teljesítményére gyakorolt hatásról.
Néhány terhelési tesztelő eszköz [1] [2] :
TOVÁBB | A gyártó neve | Hozzászólások |
---|---|---|
OpenSTA | "Nyílt rendszer tesztelési architektúra" | Ingyenes szoftver terhelési/stressz teszteléshez, a GNU GPL licenc alatt. CORBA alapú elosztott alkalmazásarchitektúrát használ . Windows-verzió is elérhető, bár a Windows Vista rendszerrel kompatibilitási problémák vannak. A támogatás 2007-ben véget ért. |
IBM Rational Performance Tester | IBM | Az Eclipse fejlesztői környezeten alapuló szoftver, amely lehetővé teszi nagy terhelés létrehozását és a válaszidő mérését a kliens-szerver architektúrájú alkalmazásokhoz. Engedélyt igényel. |
jmeter | Nyissa meg az Apache Jakarta Projectet | Java-alapú, többplatformos eszközkészlet, amely lehetővé teszi terhelési tesztek végrehajtását JDBC / FTP / LDAP / SOAP / JMS / POP3 / HTTP / TCP kapcsolatok használatával. Lehetővé teszi nagyszámú kérés létrehozását különböző számítógépekről, és ezek egyikéről irányíthatja a folyamatot. |
HP LoadRunner | HP | Egy terheléstesztelő eszköz, amelyet eredetileg nagyszámú egyidejű felhasználó munkájának emulálására fejlesztettek ki. Egység- vagy integrációs tesztelésre is használható . |
LoadComplete | Okos Medve | Szabadalmaztatott termék, amely lehetővé teszi teszt webalkalmazások betöltését |
SilkPerformer | Micro Focus (Borland) | |
Ostrom | Joe Dog szoftver | A Siege egy webszerver terhelést vizsgáló eszköz. [3] |
Visual Studio Team System | Microsoft | A Visual Studio teljesítmény-tesztelő eszközt biztosít, beleértve a terhelés-/egységtesztet |
QTest | Kvótum | |
httperf | ||
QALload | Compuware Kft. | |
(A) Daráló | ||
WebLOAD | RadView szoftver | Betöltési tesztelő eszköz webes és mobilalkalmazásokhoz, beleértve a webes irányítópultokat a teljesítménytesztelés elemzéséhez. A felhőből is előállítható nagyszabású munkaterhelésekhez használják. engedélyezett. [négy] |
A terheléses tesztelés során kapott és további elemzésekhez felhasznált eredmények egyike az alkalmazás teljesítménymutatói.
A CPU-erőforrás-fogyasztás egy mérőszám, amely megmutatja, hogy egy adott intervallumból mennyi időt fordított a processzor a kiválasztott folyamat számításaira. A modern rendszerekben fontos tényező, hogy egy folyamat több szálon tudjon futni, így a processzor párhuzamosan végezhet számításokat. A CPU erőforrás-fogyasztási előzményeinek elemzése megmagyarázhatja a feldolgozott adatfolyamok rendszerének általános teljesítményére, az alkalmazások és az operációs rendszer konfigurációjára, a többszálú számítástechnikára és egyéb tényezőkre gyakorolt hatást.
A RAM-fogyasztás egy olyan mérőszám, amely megmutatja az alkalmazás által használt memória mennyiségét. A használt memória több kategóriába sorolható:
Amikor egy alkalmazás fut, a memória megtelik az objektumokra való hivatkozásokkal, amelyeket, ha nem használnak, egy speciális automatikus folyamat, a szemétgyűjtő megtisztíthatja . A processzornak a memória ilyen módon történő tisztításához szükséges idő jelentős lehet, ha a folyamat felemésztette az összes rendelkezésre álló memóriát (Java-ban az úgynevezett "persistent Full GC"), vagy ha a folyamathoz nagy mennyiségű memóriát foglaltak le, takarítani kell. A memória megtisztításához szükséges idő alatt a folyamatok hozzáférése a lefoglalt memória lapjaihoz blokkolható, ami befolyásolhatja a folyamat végső feldolgozási idejét.
A hálózati erőforrás-felhasználás egy olyan mérőszám, amely nem kapcsolódik közvetlenül az alkalmazás teljesítményéhez, de mutatói jelezhetik a rendszer egészének teljesítménykorlátait.
Az I/O alrendszer teljesítménye jelentősen befolyásolhatja a rendszer teljesítményét, így a meghajtókkal végzett munka statisztikai gyűjtése segíthet a szűk keresztmetszetek azonosításában ezen a területen. A nagyszámú olvasás vagy írás a processzor tétlenségéhez vezethet, miközben az adatok lemezről történő feldolgozására vár, és ennek eredményeként megnő a processzor erőforrás-fogyasztása és a válaszidő.
A kérések alkalmazás általi végrehajtási ideje továbbra is a rendszer vagy alkalmazás teljesítményének egyik legfontosabb mutatója. Ez az idő mérhető a szerver oldalon, mint annak az időnek a mértéke, amely alatt a szerveroldal feldolgozza a kérést; az ügyfélen pedig a kérés szerializálásához és deszerializálásához , továbbításához és feldolgozásához szükséges teljes idő mutatójaként . Azonban nem minden teljesítménytesztelő alkalmazás képes mindkét időt mérni.