Teljesítményteszt oktatóanyag
⚡ Okos összefoglaló
A teljesítménytesztelés egy olyan szoftvertesztelési folyamat, amely az alkalmazás sebességét, válaszidejét, stabilitását, skálázhatóságát és erőforrás-felhasználását értékeli adott munkaterhelések mellett. A rendszer azonosítja és kiküszöböli a szűk keresztmetszeteket a telepítés előtt, biztosítva a megbízhatóságot valós körülmények között.

Mi az a teljesítményteszt?
Teljesítményfelmérés egy szoftvertesztelési folyamat, amelyet egy szoftveralkalmazás sebességének, válaszidejének, stabilitásának, megbízhatóságának, skálázhatóságának és erőforrás-felhasználásának tesztelésére használnak adott munkaterhelés mellett. A teljesítményteszt fő célja a szoftveralkalmazás teljesítménybeli szűk keresztmetszete azonosítása és megszüntetése. Ez a teljesítménymérnökség egy részhalmaza, és más néven "Tökéletes tesztelés".
A teljesítménytesztelés célja egy szoftverprogram ellenőrzése:
- Sebesség – Meghatározza, hogy az alkalmazás gyorsan válaszol-e
- Bővíthetőség – Meghatározza a szoftveralkalmazás által kezelhető maximális felhasználói terhelést
- Stabilitás – Meghatározza, hogy az alkalmazás stabil-e változó terhelés mellett
A PFLB a precízióvezérelt teljesítménytesztelésre összpontosít, amely segít a rendszereknek stabilnak maradni kiszámíthatatlan terhelések mellett. Szolgáltatásai közé tartozik a terheléstesztelés, a csúcstesztelés és a késleltetés mérése, különös tekintettel a teljesítményromlás azonosítására, mielőtt az a végfelhasználókat érintené.
Miért fontos a teljesítményteszt?
A szoftverrendszer által támogatott funkciók és funkciók nem az egyetlen szempont. Egy szoftveralkalmazás teljesítménye, például a válaszideje, a megbízhatósága, az erőforrás-felhasználása és a skálázhatósága is számít. A teljesítménytesztelés célja nem a hibák megtalálása, hanem a teljesítménybeli szűk keresztmetszetek kiküszöbölése.
A teljesítménytesztelés célja, hogy az érdekelt felek információkat kapjanak az alkalmazásuk sebességéről, stabilitásáról és skálázhatóságáról. Ami még fontosabb, a teljesítménytesztelés feltárja, hogy min kell javítani, mielőtt a termék piacra kerülne. Teljesítménytesztelés nélkül a szoftver valószínűleg olyan problémákkal küzd, mint a lassú futás, miközben több felhasználó használja egyszerre, a különböző operációs rendszerek közötti inkonzisztenciák és a rossz használhatóság.
A teljesítménytesztelés azt határozza meg, hogy a szoftver megfelel-e a sebesség-, skálázhatósági és stabilitási követelményeknek a várható terhelések mellett. A nem létező vagy gyenge teljesítménytesztelés miatt gyenge teljesítménymutatókkal piacra küldött alkalmazások valószínűleg rossz hírnévre tesznek szert, és nem érik el a várt értékesítési célokat.
Szóval, kritikus fontosságú alkalmazások mint például az űrkilövő programok vagy az életmentő orvosi berendezések teljesítményét tesztelni kell annak biztosítása érdekében, hogy hosszú ideig, eltérések nélkül működjenek.
A Dunn & Bradstreet szerint a Fortune 59-as cégek 500%-a hetente 1.6 óra állásidőt tapasztal. Figyelembe véve, hogy egy átlagos, legalább 500 10,000 alkalmazottat foglalkoztató Fortune 56 vállalat 896,000 dollárt fizet óránként, egy ilyen szervezetnél az állásidő költségeinek munkaerő-része heti 46 XNUMX dollár lenne, ami évente több mint XNUMX millió dollárt jelent.
Csak egy 5 perces állásidő of GoogleA .com (13. augusztus 19.) becslések szerint annyiba kerül a keresőóriásnak, mint $ 545,000.
Becslések szerint a vállalatok árbevétel-csökkenést könyvelhettek el 1100 dollár másodpercenként egy közelmúlt miatt Amazon Webszolgáltatás kimaradás.
Ezért fontos a teljesítményteszt. Ha segíteni szeretne ebben a folyamatban, tekintse meg ezt a listát teljesítménytesztelő eszközök.
A teljesítményteszt típusai
A szoftvertesztelés során elsősorban hatféle teljesítményteszt létezik, amelyeket alább ismertetünk.
- Terhelési teszt - ellenőrzi, hogy az alkalmazás képes-e teljesíteni a várható felhasználói terhelések alatt. A cél a teljesítménybeli szűk keresztmetszetek azonosítása a szoftveralkalmazás életbe lépése előtt.
- Stressz tesztelés - magában foglalja egy alkalmazás tesztelését extrém munkaterhelés mellett, hogy megtudja, hogyan kezeli a nagy forgalmat vagy adatfeldolgozást. A cél egy alkalmazás töréspontjának azonosítása.
- Tartóssági teszt - azért történik, hogy a szoftver hosszú távon is képes legyen kezelni a várható terhelést. Segít olyan problémák észlelésében, mint a memóriaszivárgások és az erőforrás-kimerülés, amelyek csak folyamatos működés közben merülnek fel.
- Tüske tesztelés - A szoftver reakcióját teszteli a felhasználók által generált hirtelen, nagy terheléskiugrásokra. A stressztesztelésekkel ellentétben a csúcstesztelés kifejezetten arra összpontosít, hogy a rendszer hogyan kezeli és hogyan áll helyre az éles, rövid ideig tartó forgalmi megugrások után.
- Mennyiségi tesztelés – magában foglalja egy adatbázis nagy mennyiségű adattal való feltöltését és a szoftverrendszer teljes viselkedésének monitorozását. A cél a szoftveralkalmazás teljesítményének ellenőrzése változó adatbázis-mennyiségek mellett.
- Skálázhatósági tesztelés – Meghatározza a szoftveralkalmazás hatékonyságát a felhasználói terhelés növekedésének támogatására irányuló „skálázásban”. Segít a szoftverrendszer kapacitásbővítésének megtervezésében.
Gyakori teljesítményproblémák
A legtöbb teljesítményprobléma a sebességgel, a válaszidővel, a betöltési idővel és a gyenge skálázhatósággal kapcsolatos. A sebesség gyakran az alkalmazás egyik legfontosabb tulajdonsága. Egy lassan futó alkalmazás elveszíti a potenciális felhasználókat. A teljesítménytesztelés biztosítja, hogy az alkalmazás elég gyorsan fusson ahhoz, hogy fenntartsa a felhasználó figyelmét és érdeklődését. Az alábbiakban felsoroljuk azokat a gyakori teljesítményproblémákat, ahol a sebesség visszatérő tényező:
- Hosszú betöltési idő – A betöltési idő általában az az időtartam, amíg egy alkalmazás elindul. Ezt általában a lehető legrövidebbre kell csökkenteni. Bár egyes alkalmazások nem töltődnek be egy percen belül, a betöltési időt lehetőség szerint néhány másodperc alatt kell tartani.
- Rossz válaszidő - A válaszidő az az idő, amely a felhasználó által az alkalmazásba bevitt adatok között eltelik, amíg az alkalmazás választ nem ad a bemenetre. Általában ennek nagyon gyorsnak kell lennie. Ha a felhasználónak túl sokáig kell várnia, elveszíti az érdeklődését.
- Rossz skálázhatóság - Egy szoftvertermék rosszul skálázható, ha nem tudja kezelni a várt számú felhasználót, vagy ha nem fér el elég széles felhasználói körhöz. Terhelésvizsgálat meg kell tenni, hogy megbizonyosodjon arról, hogy az alkalmazás képes kezelni a várt számú felhasználót.
- Szűk keresztmetszetek – A szűk keresztmetszetek olyan akadályok a rendszerben, amelyek rontják a rendszer teljesítményét. A szűk keresztmetszet akkor jelentkezik, amikor kódolási hibák vagy hardverproblémák okozzák az átviteli sebesség csökkenését bizonyos terhelések mellett. A szűk keresztmetszetet gyakran egyetlen hibás kódrészlet okozza. A szűk keresztmetszet problémájának megoldásának kulcsa a lassulást okozó kódrészlet megtalálása és a probléma megoldásának megkísérlése. A szűk keresztmetszeteket általában a rosszul futó folyamatok javításával vagy további hardverek hozzáadásával oldják meg. Néhány gyakori teljesítménybeli szűk keresztmetszetek vannak:
- CPU kihasználtság
- Memória kihasználtság
- Hálózat kihasználtsága
- Operating Rendszerkorlátozások
- Lemez használat
Hogyan végezzünk teljesítménytesztet
A teljesítményteszteknél alkalmazott módszertan nagyon eltérő lehet, de a teljesítménytesztek célja ugyanaz marad. Segíthet bizonyítani, hogy a szoftverrendszer megfelel bizonyos előre meghatározott teljesítménykritériumoknak. Vagy segíthet összehasonlítani két szoftverrendszer teljesítményét. Segíthet azonosítani a szoftverrendszer azon részeit is, amelyek rontják a teljesítményét.
Az alábbiakban egy általános folyamatot mutatunk be a teljesítménytesztelés elvégzéséhez.

1. lépés) Határozza meg tesztelési környezetét
Ismerd a fizikai tesztkörnyezetedet, az éles környezetedet és az elérhető tesztelőeszközöket. A tesztelési folyamat megkezdése előtt ismerd meg a tesztelés során használt hardver-, szoftver- és hálózati konfigurációk részleteit. Ez segíteni fog a tesztelőknek a hatékonyabb tesztek létrehozásában. Segít azonosítani azokat a lehetséges kihívásokat is, amelyekkel a tesztelők a teljesítménytesztelési eljárások során találkozhatnak.
2. lépés) Határozza meg a teljesítmény elfogadási kritériumait
Ez magában foglalja az átviteli sebességre, a válaszidőkre és az erőforrás-elosztásra vonatkozó célokat és korlátozásokat. Szükséges a projekt sikerkritériumainak meghatározása is ezeken a célokon és korlátozásokon kívül. A tesztelőket fel kell hatalmazni teljesítménykritériumok és célok kitűzésére, mivel a projektspecifikációk gyakran nem tartalmaznak elég széles választékot a teljesítmény-referenciákból. Néha előfordulhat, hogy egyáltalán nincsenek ilyenek. Amikor lehetséges, egy hasonló alkalmazás keresése az összehasonlításhoz jó módszer a teljesítménycélok kitűzésére.
3. lépés) Tervezés és tervezés teljesítménytesztek
Határozza meg, hogy a használat várhatóan hogyan fog változni a végfelhasználók között, és azonosítsa a tesztelés főbb forgatókönyveit az összes lehetséges használati esetre. Szükséges különféle végfelhasználók szimulálása, a teljesítménytesztelési adatok megtervezése, és a gyűjtendő mérőszámok felvázolása.
4. lépés) A tesztkörnyezet konfigurálása
Készítse elő a tesztelési környezetet a végrehajtás előtt. Rendezze el az eszközöket és egyéb erőforrásokat is. A lehető legpontosabban tükrözze az éles környezetet, hogy a teszteredmények realisztikusak és gyakorlatiasak legyenek.
5. lépés) Végezze el a teszttervet
A teszttervnek megfelelően hozza létre a teljesítményteszteket.
6. lépés) Futtassa a teszteket
Végezze el és ellenőrizze a teszteket.
7. lépés) Elemzés, hangolás és újratesztelés
Összesítse, elemezze és ossza meg a teszteredményeket. Ezután finomhangolja és tesztelje újra, hogy lássa, van-e javulás vagy csökkenés a teljesítményben. Mivel a javulás általában minden egyes újrateszteléssel kisebb lesz, állítsa le, ha a CPU szűk keresztmetszetet okoz. Ekkor érdemes lehet megfontolni a CPU-teljesítmény növelésének lehetőségét.
Teljesítményvizsgálati mérőszámok: Figyelt paraméterek
A teljesítményteszt során megfigyelt alapvető paraméterek a következők:
- Processzor használat - az az idő, amelyet a processzor nem tétlen szálak végrehajtásával tölt.
- Memóriahasználat – a számítógépen futó folyamatok számára rendelkezésre álló fizikai memória mennyisége.
- Lemezidő – az az időtartam, amíg a lemez olvasási vagy írási kérést hajt végre.
- Sávszélesség - a hálózati interfész által használt bit/sec.
- Privát bájtok – Az egy folyamat által lefoglalt bájtok száma, amelyeket nem lehet megosztani más folyamatok között. Ezeket a memóriaszivárgások és a használat mérésére használják.
- Elkötelezett emlék – a felhasznált virtuális memória mennyisége.
- Memória oldal/másodperc – A lemezre írt vagy arról olvasott oldalak száma a hard page faultok megoldása érdekében. Hard page faultok akkor fordulnak elő, amikor egy nem az aktuális munkakészletből származó kódot máshonnan hívnak meg és olvasnak be a lemezről.
- Oldalhibák/másodperc – a processzor által feldolgozott hibalapok teljes sebessége. Ez akkor fordul elő, amikor egy folyamatnak a munkakészletén kívüli kódra van szüksége.
- CPU megszakítások másodpercenként – a processzor által másodpercenként fogadott és feldolgozott hardveres megszakítások átlagos száma.
- Lemezsor hossza – a kiválasztott lemezre váró olvasási és írási kérelmek átlagos száma egy mintavételi intervallum alatt.
- Hálózati kimeneti sor hossza – a kimeneti csomagok sorának hossza csomagokban. Kettőnél több késleltetést jelent, és a szűk keresztmetszetet meg kell állítani.
- Összes hálózati bájt másodpercenként – a bájtok interfészen történő küldésének és fogadásának sebessége, beleértve a keretező karaktereket is.
- Válaszidő - az az idő, amely a felhasználó kérésének beküldésétől a válasz első karakterének megérkezéséig telik el.
- áteresztőképesség - az a sebesség, amellyel egy számítógép vagy hálózat másodpercenként kéréseket fogad.
- A kapcsolat pooling mennyisége – azon felhasználói kérések száma, amelyeket a poolos kapcsolatok teljesítenek. Minél több kérést teljesítenek a medencében lévő kapcsolatok, annál jobb lesz a teljesítmény.
- Maximális aktív munkamenetek – az egyszerre aktív munkamenetek maximális száma.
- Találati arányok – ez a számukhoz kapcsolódik SQL olyan utasítások, amelyeket a költséges I/O műveletek helyett gyorsítótárazott adatok kezelnek. Ez egy jó kiindulópont a szűk keresztmetszetek megoldásához.
- Találatok másodpercenként – a webszerveren a terhelésteszt minden másodpercében érkező találatok száma.
- Visszagörgetési szegmens – az adatmennyiség, amely bármikor visszaállítható.
- Adatbázis zárak – a táblák és adatbázisok zárolását figyelni és gondosan hangolni kell.
- Legnagyobb várakozások – figyelemmel kísérik annak meghatározását, hogy milyen várakozási időket lehet csökkenteni, amikor a memóriából történő adatkeresés sebességéről van szó.
- A szálak száma – Egy alkalmazás állapota a futó és jelenleg aktív szálak számával mérhető.
- Szemétgyüjtés - A művelet magában foglalja a fel nem használt memória rendszerbe való visszajuttatását. A szemétgyűjtés hatékonyságát monitorozni kell.
Teljesítményvizsgálati tesztesetek példa
Az alábbiakban példaként bemutatjuk a teljesítménytesztelési teszteseteket:
- 01. teszteset: Győződjön meg arról, hogy a válaszidő nem haladja meg a 4 másodpercet, amikor 1000 felhasználó egyszerre fér hozzá a weboldalhoz.
- 02. teszteset: Ellenőrizze, hogy a betöltött alkalmazás válaszideje az elfogadható tartományon belül van-e, amikor lassú a hálózati kapcsolat.
- 03. teszteset: Ellenőrizze a felhasználók maximális számát, amelyet az alkalmazás képes kezelni, mielőtt összeomlik.
- 04. teszteset: Ellenőrizze az adatbázis végrehajtási idejét, amikor 500 rekordot írnak/olvasnak egyszerre.
- 05. teszteset: Ellenőrizze az alkalmazás és az adatbázis-kiszolgáló CPU- és memóriahasználatát csúcsterhelés alatt.
- 06. teszteset: Ellenőrizze az alkalmazás válaszidejét alacsony, normál, közepes és nagy terhelési körülmények között.
A tényleges teljesítményteszt végrehajtása során az olyan homályos kifejezéseket, mint az elfogadható tartomány, nagy terhelés stb., konkrét számok váltják fel. A teljesítménymérnökök ezeket a számokat az üzleti követelményeknek és az alkalmazás műszaki környezetének megfelelően állítják be.
Teljesítménytesztelési bevált gyakorlatok
A bevált legjobb gyakorlatok követése biztosítja, hogy a teljesítménytesztelés megbízható eredményeket hozzon. Ezek az irányelvek segítenek a csapatoknak elkerülni a gyakori buktatókat.
- A termelési környezet tükrözése – Konfigurálja a tesztbeállításait úgy, hogy a lehető legjobban tükrözze a termelési körülményeket. A hardver- vagy szoftververziók közötti különbségek félrevezető eredményeket adhatnak.
- Tervezzen valósághű tesztforgatókönyveket – Hozzon létre olyan teszteseteket, amelyek szimulálják a tényleges felhasználói viselkedést, beleértve a gondolkodási időket és az egyidejű tranzakciók kombinációját.
- Percentilis alapú mutatók használata – A 90. és 95. percentilis válaszidőkre támaszkodj, ne csak az átlagokra. A percentilisek olyan végponti késleltetést mutatnak, amelyet az átlagok elrejthetnek.
- Korai és folyamatos tesztelés – Integrálja a teljesítménytesztelést a CI/CD folyamatba, ahelyett, hogy egy utolsó szakaszbeli tevékenységként kezelné.
- Dokumentálja és alaperedményeket – Rögzítse az összes tesztfuttatás eredményeit. Az új eredmények összehasonlítása az alapértékekkel megkönnyíti a verziók közötti regressziók észlelését.
Hogyan alakítja át a mesterséges intelligencia a teljesítménytesztelést
A mesterséges intelligencia reshaping Teljesítménytesztelés összetett elemzési feladatok automatizálásával és prediktív képességek engedélyezésével. A mesterséges intelligencia által vezérelt eszközök elemzik a historikus adatokat, mintákat észlelnek, és cselekvésre ösztönző ajánlásokat adnak anélkül, hogy minden lépésben emberi beavatkozást igényelnének.
- Prediktív anomáliadetektálás – A mesterséges intelligencia algoritmusai valós időben elemzik a teljesítménymutatókat a terheléstesztek során, és jelzik az eltéréseket, mielőtt azok kritikus hibákká fajulnának.
- Automatizált kiváltó ok elemzés – A mesterséges intelligencia által vezérelt eszközök összefüggésbe hozzák az elosztott rendszerek adatait, hogy pontosan meghatározzák a teljesítményromlást okozó összetevőket.
- Intelligens tesztoptimalizálás – A gépi tanulási modellek azonosítják a redundáns tesztelési forgatókönyveket, és optimális konfigurációkat javasolnak, csökkentve a végrehajtási időt, miközben fenntartják a lefedettséget.
- Öngyógyító tesztszkriptek – A mesterséges intelligencia a tesztszkripteket az alkalmazásinterfészek változásaihoz igazítja, csökkentve ezzel a teljesítményteszt-csomagok karbantartási költségeit.
Teljesítménytesztelő eszközök
A piacon számos teljesítménytesztelő eszköz érhető el. A teszteléshez választott eszköz számos tényezőtől függ, például a támogatott protokoll típusától, a licenc költségétől, a hardverkövetelményektől és a platformtámogatástól. Az alábbiakban a népszerűbben használt tesztelőeszközök listája található.
- HP LoadRunner - az egyik legnépszerűbb teljesítménytesztelő eszköz a piacon. Ez az eszköz képes több százezer felhasználó szimulálására, valós terhelés alá helyezve az alkalmazásokat, hogy meghatározza viselkedésüket a várható terhelések alatt. LoadRunner tartalmaz egy virtuális felhasználó-generátort, amely az élő emberi felhasználók tevékenységeit szimulálja.
- JMeter - az egyik vezető nyílt forráskódú eszköz web- és alkalmazásszerverek terheléstesztelésére. Több protokollt támogat, és kiterjedt jelentéskészítési képességeket biztosít.


