Mi az a terhelési tesztelés? (Példák)
⚡ Okos összefoglaló
A terheléstesztelés azt méri, hogy egy szoftveralkalmazás hogyan viselkedik, amikor egyszerre sok felhasználó fér hozzá, egészen a várható csúcsértékig. Azonosítja a maximális működési kapacitást, az azt korlátozó szűk keresztmetszeteket, és azt, hogy a jelenlegi infrastruktúra elegendő-e.

Mi az a terhelési tesztelés?
Terhelésvizsgálat egy nem funkcionális szoftvertesztelési folyamat, amelyben a szoftveralkalmazás teljesítményét egy adott várható terhelés mellett tesztelik. Meghatározza, hogy a szoftveralkalmazás hogyan viselkedik, miközben egyszerre több felhasználó is eléri. A terhelési tesztelés célja a teljesítmény szűk keresztmetszetek javítása, valamint a szoftveralkalmazás stabilitásának és zavartalan működésének biztosítása a telepítés előtt.
Ez a teszt általában azonosítja:
- Egy alkalmazás maximális működési kapacitása
- Határozza meg, hogy a jelenlegi infrastruktúra elegendő-e az alkalmazás futtatásához
- Az alkalmazás fenntarthatósága a maximális felhasználói terhelés tekintetében
- Azon egyidejű felhasználók száma, akiket egy alkalmazás támogatni tud, és méretezhetőség, hogy több felhasználó férhessen hozzá.
Ez egyfajta nem funkcionális tesztelés. A szoftverfejlesztésben a terhelési tesztelést általában az ügyfél/szerver, web alapú alkalmazásokhoz használják – intranet és internet egyaránt.
Miért van szükség terheléses tesztelésre?
Egyes rendkívül népszerű webhelyek komoly leállásokat szenvedtek el, amikor hatalmas forgalommal rendelkeznek. Az e-kereskedelmi webhelyek sokat fektetnek a hirdetési kampányokba, de nem a terhelési tesztelésbe, hogy biztosítsák az optimális rendszerteljesítményt, amikor ez a marketing forgalmat hoz.
Terheléstesztelési példák
- A Toysrus.com nem tudta kezelni a saját hirdetési kampánya által generált forgalmat, így elvesztette mind a marketingköltségeket, mind az eladásokat, amelyeket eredetileg generálnia kellett volna.
- Egy légitársaság weboldala nem tudott több mint 10000 XNUMX felhasználót kezelni egy fesztiválajánlat alatt.
- Az Encyclopedia Britannica promóciós ajánlatként hirdette meg az online adatbázisukhoz való ingyenes hozzáférést. Hetekig nem tudták lépést tartani a rohamos forgalommal.
Sok webhely késlelteti a betöltési időt, amikor nagy forgalommal találkozik. Néhány tény –
- Az elhagyások száma meredeken emelkedik körülbelül 3 másodperces oldalbetöltési idő után, és ez a hatás felerősödik a mobilkapcsolatokon.
- A lassú oldalak minden látogatáskor mérhető bevételt veszítenek az e-kereskedelmi webhelyekről, ezért a teljesítményt üzleti, nem pedig technikai mérőszámként kezelik.
Miért terheléses tesztelés?
- A terhelési tesztelés bizalmat ad a rendszerben, annak megbízhatóságában és teljesítményében.
- A terhelési tesztelés segít azonosítani a rendszer szűk keresztmetszeteit erős felhasználói stresszhelyzetekben, még mielőtt az éles környezetben bekövetkezne.
- A terhelési tesztelés kiváló védelmet nyújt a gyenge teljesítmény ellen, és kiegészíti a teljesítménymenedzsmentet és a termelési környezet figyelését szolgáló stratégiákat.
A terhelési tesztelés céljai
A tesztelés betöltése a következő problémákat azonosítja, mielőtt az alkalmazást piacra vagy termelésre helyezi át:
- Válaszidő minden tranzakcióhoz
- A rendszerelemek teljesítménye különböző terhelések mellett
- Az adatbázis-összetevők teljesítménye különböző terhelések mellett
- Hálózati késleltetés a kliens és a szerver között
- Szoftver tervezési problémák
- Szerverkonfigurációs problémák, például webszerver, alkalmazásszerver, adatbázisszerver stb.
- Hardverkorlátozási problémák, például CPU maximalizálás, memóriakorlátozások, hálózati szűk keresztmetszetek stb.
A terhelési tesztelés meghatározza, hogy a rendszert finomítani kell-e, vagy a hardver és a szoftver módosítására van szükség a teljesítmény javításához. A terhelési tesztelés hatékony lebonyolításához különféle módszereket használhat teljesítménytesztelő eszközök amelyek rendelkezésre állnak, hogy segítsenek azonosítani a fejlesztendő területeket.
A terheléses tesztelés előfeltételei
A terhelési tesztelés fő mérőszáma a válaszidő. A terhelési tesztelés megkezdése előtt meg kell határoznia:
- A válaszidő mérése és összehasonlítása már megtörtént-e – Kvantitatív
- A válaszidő alkalmazható-e az üzleti folyamatra – Releváns
- Indokolt-e a válaszidő – Reális
- Hogy a válaszidő elérhető-e – Elérhető
- Függetlenül attól, hogy a válaszidő mérhető-e szerszámmal vagy stopperrel – Mérhető
Környezet beállítása terheléses tesztelés előtt
| Hardware Platform | Szoftver konfiguráció |
|---|---|
|
|
Terheléstesztelési stratégiák
A terhelési tesztelésnek számos módja van. Az alábbiakban bemutatunk néhány terhelési tesztelési stratégiát -
- Kézi terhelési tesztelés: Ez a terhelési tesztelés végrehajtásának egyik stratégiája, de nem ad megismételhető eredményeket, nem tud mérhető szintű terhelést biztosítani egy alkalmazáson, és lehetetlen koordinálni.
- Házon belül kifejlesztett terhelésvizsgáló eszközök: Az a szervezet, amely felismeri a terheléses tesztelés fontosságát, saját eszközöket építhet a terhelési tesztek végrehajtására.
- Nyílt forráskódú terheléstesztelő eszközök: Számos ingyenes terhelési tesztelő eszköz áll rendelkezésre nyílt forráskódúként. Lehet, hogy nem olyan kifinomultak, mint fizetett társaik, de ha kevés a költségvetés, akkor a legjobb választás.
- Vállalati szintű terheléstesztelő eszközök: Általában rögzítési/lejátszási lehetőséggel rendelkeznek. Számos protokollt támogatnak. Kivételesen nagy számú felhasználót tudnak szimulálni.
Hogyan kell terhelési tesztet végezni
A terhelési tesztelési folyamat röviden az alábbiak szerint írható le -
- Hozzon létre egy dedikált Tesztkörnyezet terhelési teszteléshez
- A terheléses tesztforgatókönyvek meghatározása
- Határozza meg egy alkalmazás terhelési tesztelési tranzakcióit
- Minden tranzakcióhoz készítsen adatokat
- A rendszerhez hozzáférő felhasználók számát előre kell jelezni
- Határozza meg a kapcsolat sebességét. Egyes felhasználók bérelt vonalon keresztül csatlakozhatnak, míg mások betárcsázós kapcsolatot használhatnak
- Határozza meg a felhasználók által használt különböző böngészőket és operációs rendszereket
- Az összes szerver konfigurációja, például web-, alkalmazás- és DB-kiszolgálók
- Tesztforgatókönyv végrehajtása és figyelése. Különféle mutatók gyűjtése
- Elemezze az eredményeket. Tegyen ajánlásokat
- Finomhangolja a rendszert
- Újra teszt
Terheléses tesztelésre vonatkozó irányelvek
- A terhelési tesztelést meg kell tervezni, amint az alkalmazás funkcionálisan stabillá válik.
- Nagy számú egyedi adatnak kell készen állnia az adattárban
- A felhasználók számát minden forgatókönyvhöz vagy szkripthez el kell dönteni
- Kerülje a részletes naplók létrehozását a lemez IO-területének megtakarítása érdekében
- Próbálja meg elkerülni a képek letöltését az oldalon
- A terhelési tesztelési tesztesetek végrehajtása során naplózni kell a válaszidő konzisztenciáját az eltelt időszakban, és ezt össze kell hasonlítani a különböző tesztfutásokkal.
Különbség a terhelés és a stresszteszt között
| Terhelésvizsgálat | Stressz tesztelés |
|---|---|
| A terhelési tesztelés azonosítja a rendszer szűk keresztmetszeteit különböző munkaterhelések esetén, és ellenőrzi, hogyan reagál a rendszer a terhelés fokozatos növelésére | Stressz tesztelés meghatározza a rendszer töréspontját, hogy felfedje azt a maximális pontot, amely után megszakad. |
| A rendszer felső határának felismeréséhez állítsa be az alkalmazás SLA-ját, és ellenőrizze, hogy a rendszer hogyan bírja a nagy terhelést. | Annak ellenőrzésére, hogyan viselkedik a rendszer szélsőséges terhelés alatt, és hogyan áll helyre a meghibásodás után. |
| A terhelési tesztelés fő célja a webalkalmazások terhelésének növelése. | A stresszteszt célja annak biztosítása, hogy a kiszolgálók hosszú ideig tartó, hirtelen nagy terhelés esetén ne omoljanak össze. |
| A terhelési teszt során ellenőrzött attribútumok a csúcsteljesítmény, a szerver mennyisége és a válaszidő. | Ez a fajta tesztelés ellenőrzi a stabilitási reakcióidőt stb. |
| A terhelési tesztelésnél a terhelési határ a törés küszöbe. | Stressz-tesztben a terhelési határ a törés küszöbértéke felett van. |
A funkcionális és a terhelési teszt közötti különbség
| Funkcionális tesztelés | Terhelésvizsgálat |
|---|---|
| A funkcionális tesztek eredményei könnyen megjósolhatók, mivel megfelelő lépéseket és előfeltételeket határoztunk meg | A terhelési tesztek eredményei megjósolhatatlanok |
| A funkcionális tesztek eredményei kissé eltérnek | A terhelési tesztek eredményei drasztikusan változnak |
| A végrehajtás gyakorisága Funkcionális tesztelés magas lesz | A terhelési teszt végrehajtásának gyakorisága alacsony lesz |
| A funkcionális tesztek eredményei a tesztadatoktól függenek | A terhelési tesztelés a felhasználók számától függ. |
Tesztelőeszközök betöltése
LoadRunner
LoadRunner, eredetileg a HP-tól, most pedig a HP része OpenText A Micro Focus felvásárlását követően az alkalmazásokat normál és csúcsterhelés alatt teszteli. A terhelést virtuális felhasználókon keresztül generálja, amelyek valós hálózati forgalmat emulálnak, és az eredményeket grafikusan jelenti.
További információ a LoadRunner oktatóanyag.
Apache JMeter
Nyílt forráskódú Java eszköz és a legszélesebb körben használt ingyenes opció. Támogatja a HTTP, JDBC, JMS, FTP és egyebeket, XML formátumban tárolja a tesztterveket, és integrálódik a CI-folyamatokba. Lásd a JMeter oktatói egy végigjátszáshoz.
Gatling
Egy nyílt forráskódú eszköz, amelynek tesztjei Scala vagy más nyelven íródnak. JavaSzerény hardvereken is nagy párhuzamosságot kezel, és részletes HTML-jelentéseket készít, ami azoknak a csapatoknak felel meg, akik a verzióvezérelt tesztszkripteket részesítik előnyben.
k6
Egy nyílt forráskódú eszköz, amelynek tesztjei nyelven vannak megírva JavaSzkript, amelyet fejlesztők tulajdonában lévő teljesítményteszteléshez terveztek egy CI-folyamaton belül, nem pedig különálló minőségbiztosítási tevékenységként.
Eszköz kiválasztása
Pick JMeter A legszélesebb körű, ingyenes protokolllefedettség érdekében a Gatling vagy a K6 ajánlott, ha a csapat a teszteket az alkalmazással együtt a verziókövetésben szeretné tárolni, illetve egy kereskedelmi eszköz, például a LoadRunner, ha a vállalati protokollok támogatása és a szállítói segítségnyújtás indokolttá teszi a licencet.
A terhelésteszt előnyei és hátrányai
A terhelési tesztelés előnyei a következők:
- A teljesítmény szűk keresztmetszetek azonosítása a gyártás előtt
- Javítja a rendszer méretezhetőségét
- Minimalizálja a rendszerleálláshoz kapcsolódó kockázatot
- A meghibásodás költségeinek csökkentése
- Növelje az ügyfelek elégedettségét
A terhelési tesztelés hátrányai:
- A legtöbb eszköz programozási ismereteket igényel a valósághű forgatókönyvek megírásához.
- Az eszközök drágák lehetnek, mivel az ár a támogatott virtuális felhasználók számától függ.
A terheléses teszt során rögzítendő legfontosabb mutatók
Az előfeltételek szakasz a válaszidőt határozza meg fő mérőszámként. A gyakorlatban egy terheléses tesztjelentésnek hat számjegyűnek kell lennie, mivel a válaszidő önmagában nem tudja megmondani, hogy miért lassult le a rendszer.
| Metric | Mit mond neked | Figyelmeztető jel |
|---|---|---|
| Átlagos válaszidő | A tipikus felhasználói élmény | Növekvő terhelés mellett |
| 95. percentilis válaszidő | A leglassabb felhasználók tapasztalatai | Messze az átlag felett |
| áteresztőképesség | Másodpercenként sikeresen feldolgozott kérések száma | Ellaposodás vagy süllyedés, miközben a teher emelkedik |
| Hibaarány | Sikertelen vagy időtúllépéses kérelmek aránya | Bármilyen emelkedés a megállapodott küszöbérték felett |
| Egyidejű felhasználók | Ténylegesen elért egyidejű munkamenetek | Alacsonyabb, mint a forgatókönyvben szereplő érték |
| Szerver erőforrás-felhasználás | CPU-, memória-, lemez- és hálózati tartalék | Bármely erőforrás nagyjából 80 százalék felett |
Olvasási átviteli sebesség a válaszidővel együtt. A növekvő átviteli sebességgel járó növekvő válaszidő egyszerűen azt jelenti, hogy a rendszer forgalmasabb. eső Az áteresztőképesség azt jelenti, hogy túllépte a kapacitását, és most munkát veszít, és ez a pont a teszt célja.
Soha ne csak az átlagot közöld. Egy 900 ms átlag 1.1 másodperces 95. percentilissel egy konzisztens rendszert ír le. Ugyanez az átlag 11 másodperces 95. percentilissel azt jelenti, hogy minden huszadik felhasználó elfogadhatatlan élményben részesül, amelyet az átlag elrejt.
Hogyan viszonyul ez a teszt más teljesítménytesztekhez
A teljesítménytesztelés olyan tesztek családja, amelyek az alkalmazott terhelés alakjában különböznek, ezért olyan könnyen összetéveszthetők.
| Teszt típusa | Mi a megnövekedett | Kérdés, amit megválaszol |
|---|---|---|
| Terhelési tesztelés | Egyidejű felhasználók, a várható csúcsig | Teljesíti a célokat normál csúcsforgalom mellett? |
| Térfogatvizsgálat | Az adatbázisban tárolt adatok | Vajon bírja az adathalmaz növekedését? |
| Stressz tesztelés | Terhelhetőségen túli terhelés, meghibásodásig | Hol törik el, és hogyan? |
| Tüskék tesztelése | Töltés, azonnal és rendkívül | Túléli és felépül egy sokkot? |
| Tartóssági vizsgálat | Időtartam normál terhelés mellett | Idővel romlik a teljesítmény? |
| Áztatási tesztelés | Időtartam, erőforrások megfigyelése | Vannak memória- vagy fogantyúszivárgások? |
| Stabilitási vizsgálat | Változó körülmények | Megbízható marad a változó körülmények között is? |
A legfontosabb különbség itt: A mennyiségi tesztelés az adatokat, a terheléses tesztelés a felhasználókat skálázza. Egy olyan jelentés, ami két másodperc alatt fut le tízezer sorral, és két perc alatt tízmillió sorral, mennyiségi problémával küzd, nem terhelési problémával, és ezt semmilyen extra szerverkapacitás nem fogja megoldani.



