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.

  • Határozza meg a hatókört korán: A teljesítménytesztek megtervezése előtt azonosítsd a tesztkörnyezetet, az elfogadási kritériumokat és a főbb forgatókönyveket.
  • 🔄 Minden tesztelési típust lefed: Terhelési, feszültségi, tartóssági, csúcs-, térfogat- és skálázhatósági tesztek alkalmazása a különböző meghibásodási módok értékeléséhez.
  • 📊 Kritikus mutatók figyelése: Track processzorhasználat, memória-fogyasztás, válaszidő, átviteli sebesség és hibaszázalék minden tesztfuttatás során.
  • ⚠️ A szűk keresztmetszetek szisztematikus diagnosztizálása: Vizsgálja meg a CPU, a memória, a hálózat és a lemez kihasználtságát a teljesítményromlás kiváltó okának azonosítása érdekében.
  • 🔁 Ismételd meg és teszteld újra: Elemezze az eredményeket, finomhangolja a konfigurációkat, és tesztelje újra, amíg a teljesítmény el nem éri az előre meghatározott elfogadási kritériumokat.
  • 🤖 Használja ki a mesterséges intelligencia által vezérelt elemzést: Használjon mesterséges intelligenciát a prediktív anomáliadetektáláshoz, az automatizált kiváltó ok elemzéshez és az intelligens erőforrás-elosztáshoz tesztelés közben.

Teljesítményteszt oktatóanyag

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
Legjobb választás
PFLB

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é.

Látogassa meg a PFLB-t

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.

Miért fontos a teljesítménytesztelés?

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.

Teljesítményvizsgálati folyamat
Teljesítményvizsgálati folyamat

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:

Teljesítménytesztelési metrikák és paraméterek

  • 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.

GYIK

Teljesítménytesztelést csak kliens-szerver alapú rendszereken végeznek. Azok az alkalmazások, amelyek nem kliens-szerver architektúrát követnek, mint például az önálló asztali számológépek, nem igényelnek teljesítménytesztelést.

A teljesítménytesztelés az alkalmazások aktuális teljesítményének tesztelésére és jelentésére összpontosít. A teljesítménymérnökség ezen túl is megy, mivel a tesztelést a finomhangolással kombinálja az általános felhasználói élmény és a rendszerhatékonyság optimalizálása érdekében.

A terheléstesztelés a rendszer viselkedését a várható felhasználói terhelés alatt értékeli a szűk keresztmetszetek felderítése érdekében. A stressztesztelés a normál kapacitáson túlra kényszeríti az alkalmazást, hogy azonosítsa a töréspontját és megfigyelje a helyreállítási viselkedést.

A legfontosabb mutatók a válaszidő, az átviteli sebesség, a hibaszázalék, a CPU-kihasználtság és a memóriahasználat. Tracking Ezek a mutatók segítenek azonosítani a szűk keresztmetszeteket, és ellenőrzik, hogy az alkalmazás megfelel-e a teljesítménykritériumoknak.

A teljesítménytesztelésnek korán kell kezdődnie, és folyamatosan kell futnia. A CI/CD folyamatba való integrálása lehetővé teszi a csapatok számára, hogy minden egyes buildnél észleljék a regressziókat, ahelyett, hogy csak a kiadás előtt fedeznék fel a problémákat.

A mesterséges intelligencia automatizálja az anomáliadetektálást, a kiváltó okok elemzését és a tesztoptimalizálást. Elemzi a historikus adatokat a szűk keresztmetszetek előrejelzéséhez, és automatikusan adaptálja a tesztszkripteket, amikor az alkalmazásinterfészek megváltoznak.

Nem. A mesterséges intelligencia növeli a hatékonyságot az ismétlődő elemzési és észlelési feladatok automatizálásával, de az emberi szakértelem továbbra is elengedhetetlen a realisztikus tesztforgatókönyvek megtervezéséhez, az üzleti kontextus értelmezéséhez és a stratégiai optimalizálási döntések meghozatalához.

A felhőalapú tesztelés igény szerinti skálázhatóságot, elosztott terhelésgenerálást több régióból és alacsonyabb infrastrukturális költségeket kínál. A helyszíni tesztelés nagyobb kontrollt biztosít a tesztkörnyezet felett, de dedikált hardverbefektetést igényel.

Foglald össze ezt a bejegyzést a következőképpen: