Teljesítményfelmérés
A teljesítménytesztelés egy szoftver tesztelési folyamat, amelyet egy szoftveralkalmazás sebességének, válaszidejének, stabilitásának, megbízhatóságának, méretezhetőségének és erőforrás-használatának tesztelésére használnak, különösebb terhelés mellett. A teljesítményteszt fő célja a szoftveralkalmazás teljesítmény-szűk keresztmetszeteinek azonosítása és kiküszöbölése. Ez a teljesítménytechnika részhalmaza, és „Perf Testing” néven is ismert.
A teljesítménytesztelés középpontjában a szoftverek ellenőrzése áll
- Sebesség - Meghatározza, hogy az alkalmazás reagál-e gyorsan
- Méretezhetőség - Meghatározza a maximális felhasználói terhelést, amelyet a szoftveralkalmazás képes kezelni.
- Stabilitás - Meghatározza, hogy az alkalmazás stabil-e változó terhelések mellett
Ebben az oktatóanyagban megtanulja-
- Mi az a teljesítményteszt?
- Miért kell elvégezni a teljesítménytesztet?
- A teljesítményteszt típusai
- Általános teljesítményproblémák
- Teljesítmény-tesztelési folyamat
- Teljesítménytesztelési mutatók: Figyelt paraméterek
- Példa teljesítményteszt esetekre
- Teljesítményteszt eszközök
- GYIK
Miért kell elvégezni a teljesítménytesztet?
A szoftveres rendszerek által támogatott funkciók és funkcionalitás nem az egyetlen probléma. A szoftveralkalmazás teljesítménye, például a válaszidő, a megbízhatóság, az erőforrás-felhasználás és a skálázhatóság számít. A teljesítménytesztelés célja nem a hibák keresése, hanem a teljesítmény szűk keresztmetszeteinek kiküszöbölése.
A teljesítménytesztet azért végzik, hogy az érdekelt felek információt kapjanak alkalmazásukról a sebesség, a stabilitás és a méretezhetőség tekintetében. Ennél is fontosabb, hogy a teljesítménytesztelés feltárja, mit kell még javítani, mielőtt a termék piacra kerülne. Teljesítményteszt nélkül a szoftvert valószínűleg olyan problémák fogják szenvedni, mint: lassú a futás, miközben több felhasználó használja egyszerre, a különböző operációs rendszerek közötti ellentmondások és a rossz használhatóság.
A teljesítményteszt meghatározza, hogy szoftverük megfelel-e a sebesség, a skálázhatóság és a stabilitás követelményeinek a várható terhelések mellett. A nem létező vagy gyenge teljesítményteszt miatt rossz teljesítménymutatókkal piacra küldött alkalmazások valószínűleg rossz hírnevet szereznek, és nem tudják elérni a várt értékesítési célokat.
Ezenkívül a misszió szempontjából kritikus alkalmazásokat, például az űrlövő programokat vagy az életmentő orvosi felszereléseket is, teljesítmény-teszteléssel kell ellenőrizni, hogy azok hosszú ideig, eltérések nélkül működjenek.
A Dunn & Bradstreet adatai szerint a Fortune 500 vállalatok 59% -a minden héten becslések szerint 1,6 óra leállást tapasztal. Figyelembe véve, hogy a legalább 10 000 alkalmazottal rendelkező Fortune 500 átlagos vállalat 56 dollárt fizet óránként, egy ilyen szervezet leállási költségeinek munkaerő-része heti 896 000 dollár lenne, ami évente több mint 46 millió dollárt jelent.
Becslések szerint a Google.com mindössze 5 perces leállása (augusztus 13., 19.) 545 000 dollárba kerül a keresőóriás számára.
Becslések szerint a vállalatok másodpercenként 1100 dollár értékben vesztettek eladásokból az Amazon webszolgáltatásának közelmúltbeli kiesése miatt.
Ezért fontos a teljesítmény tesztelése.
A teljesítményteszt típusai
- Terhelés tesztelése - ellenőrzi az alkalmazás képességét a várt felhasználói terhelések mellett. A cél a teljesítmény szűk keresztmetszeteinek azonosítása a szoftveralkalmazás életbe lépése előtt.
- Stresszteszt - magában foglalja az alkalmazások tesztelését rendkívüli terhelés mellett, hogy lássa, hogyan kezeli a nagy forgalmat vagy az adatfeldolgozást. A cél az alkalmazás töréspontjának azonosítása.
- Tartóssági tesztelés - azért készül, hogy megbizonyosodjon arról, hogy a szoftver hosszú ideig képes kezelni a várható terhelést.
- Tüsketesztelés - teszteli a szoftver reakcióját a felhasználók által generált terhelés hirtelen nagy megugrására.
- Kötet tesztelése - Kötet tesztelés alatt nagy sz. nak,-nek. Az adatokat adatbázisban töltik fel, és figyelemmel kísérik a teljes szoftverrendszer viselkedését. A cél a szoftveralkalmazás teljesítményének ellenőrzése változó adatbázis-mennyiségek mellett.
- Méretezhetőségi tesztelés - A méretezhetőségi teszt célja a szoftveralkalmazás hatékonyságának meghatározása a "méretezésben" a felhasználói terhelés növekedésének támogatása érdekében. Segít megtervezni a szoftverrendszer kapacitásnövelését.
Általános teljesítményproblémák
A legtöbb teljesítményprobléma a sebesség, a válaszidő, a betöltési idő és a rossz skálázhatóság körül mozog. A sebesség gyakran az alkalmazás egyik legfontosabb jellemzője. A lassan futó alkalmazás elveszíti a potenciális felhasználókat. A teljesítményteszteket azért végezzük, hogy megbizonyosodjunk arról, hogy egy alkalmazás elég gyorsan fut-e, hogy megtartsa a felhasználó figyelmét és érdeklődését. Vessen egy pillantást a következő általános teljesítményproblémák listájára, és vegye észre, hogy a sebesség sok esetben gyakori tényező:
- Hosszú betöltési idő - A betöltési idő általában az az első idő, amely egy alkalmazás elindításához szükséges. Ezt általában a lehető legkisebbre kell csökkenteni. Míg néhány alkalmazást egy perc alatt nem lehet betölteni, 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 eltelt attól a naptól, amikor a felhasználó beviszi az adatokat az alkalmazásba, amíg az alkalmazás nem ad választ az adott bemenetre. Általában ennek nagyon gyorsnak kell lennie. Ismételten, ha a felhasználónak túl sokáig kell várnia, elveszíti az érdeklődését.
- Gyenge skálázhatóság - Egy szoftvertermék gyenge skálázhatósággal küzd, ha nem tudja kezelni a várt felhasználók számát, vagy ha nem képes befogadni a felhasználók elég széles körét. A terhelés tesztelését el kell végezni annak biztosítása érdekében, hogy az alkalmazás képes kezelni a várható felhasználók számát.
- Szűk keresztmetszet - A szűk keresztmetszetek egy olyan rendszer akadályai, amelyek rontják a rendszer teljes teljesítményét. A szűk keresztmetszet az, amikor a kódolási hibák vagy a hardverproblémák bizonyos terhelések esetén csökkentik az áteresztőképességet. A szűk keresztmetszetet gyakran egy hibás kódrész okozza. A szűk keresztmetszet orvoslásának kulcsa az, hogy megtalálja a lassulást okozó kódrészletet, és megpróbálja ott kijavítani. A szűk keresztmetszetet általában a rossz futó folyamatok javításával vagy további hardver hozzáadásával javítják. Néhány közös teljesítmény szűk vannak
- CPU kihasználtság
- Memória kihasználtság
- Hálózat kihasználtság
- Az operációs rendszer korlátai
- Lemez használat
Teljesítmény-tesztelési folyamat
A teljesítménytesztelésre alkalmazott módszertan nagyon eltérő lehet, de a teljesítménytesztek célja ugyanaz. Ez segíthet annak bizonyításában, hogy a szoftver rendszere megfelel bizonyos előre meghatározott teljesítmény kritériumoknak. Vagy segíthet összehasonlítani két szoftverrendszer teljesítményét. Ez segíthet a szoftverrendszer azon részeinek azonosításában is, amelyek rontják annak teljesítményét.
Az alábbiakban bemutatunk egy általános folyamatot a teljesítményteszt elvégzéséről
- Azonosítsa a tesztelési környezetét - Ismerje fizikai tesztkörnyezetét, gyártási környezetét és az elérhető tesztelési eszközöket. A tesztelés megkezdése előtt ismerje meg a tesztelés során használt hardver-, szoftver- és hálózati konfigurációk részleteit. Ez segít a tesztelőknek hatékonyabb tesztek létrehozásában. Ez segíteni fog azon lehetséges kihívások azonosításában is, amelyekkel a tesztelők a teljesítménytesztelési eljárások során találkozhatnak.
- Határozza meg a teljesítmény elfogadási kritériumait - Ez magában foglalja az átviteli sebesség, a válaszidők és az erőforrás-elosztás céljait és korlátozásait. Ezen célokon és korlátokon kívül meg kell határozni a projekt sikerességének kritériumait is. A tesztelőket fel kell hatalmazni arra, hogy meghatározzák a teljesítmény kritériumait és céljait, mert a projekt specifikációi gyakran nem tartalmaznak elég sokféle teljesítmény-referenciát. Néha lehet, hogy egyáltalán nincs. Ha lehetséges, egy hasonló alkalmazás megtalálása összehasonlítható módszerrel jó módszer a teljesítménycélok meghatározására.
- Tervezési és tervezési teljesítménytesztek - Határozza meg, hogy a használat hogyan változhat a végfelhasználók között, és meghatározza a legfontosabb forgatókönyveket az összes lehetséges használati eset teszteléséhez. Szükséges a végfelhasználók sokféleségének szimulálása, a teljesítményteszt-adatok megtervezése és a metrikák összegyűjtése.
- A tesztkörnyezet konfigurálása - A végrehajtás előtt készítse elő a tesztkörnyezetet. Rendezzen eszközöket és egyéb forrásokat is.
- Tesztterv megvalósítása - Hozza létre a teszteket a teszttervének megfelelően.
- Futtassa a teszteket - hajtsa végre és ellenőrizze a teszteket.
- Elemzés, hangolás és újbóli teszt - Szilárdítsa, elemezze és ossza meg a teszt eredményeit. Ezután finomhangolja és tesztelje újra, hogy javul-e vagy csökken-e a teljesítmény. Mivel a fejlesztések minden egyes újrateszteléssel általában kisebbek lesznek, állítsák le, amikor a szűk keresztmetszetet a CPU okozza. Ezután lehetősége nyílik a CPU teljesítményének növelésére.
Teljesítménytesztelési mutatók: Figyelt paraméterek
A teljesítményteszt során megfigyelt alapvető paraméterek a következők:
- Processzorhasználat - a processzor nem idő nélküli szálak végrehajtására fordított idő.
- Memóriahasználat - a számítógépen folyamatok számára elérhető fizikai memória mennyisége.
- Lemez idő - az az idő, amíg a lemez foglalt az olvasási vagy írási kérelem végrehajtásával.
- Sávszélesség - megmutatja a hálózati interfész által használt biteket másodpercenként.
- Privát bájtok - egy folyamat által kiosztott bájtok száma, amelyek nem oszthatók meg 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 memória - a felhasznált virtuális memória mennyisége.
- Memória oldalak / másodperc - a merevlemezre írt vagy a lemezről olvasott oldalak száma a kemény oldalak hibáinak megoldása érdekében. A kemény oldalhibák akkor fordulnak elő, amikor a jelenlegi munkakészletből származó kódot nem máshonnan hívják meg, és lemezről töltik le.
- Oldalhibák / másodperc - az a teljes arány, amelyben a processzor a hibalapokat feldolgozza. Ez ismét akkor fordul elő, amikor egy folyamathoz a munkakészleten kívüli kódra van szükség.
- A CPU másodpercenként megszakít - ez az átlag. a hardver megszakításainak száma, amelyet egy processzor másodpercenként fogad és feldolgoz.
- Lemezsor hossza - az átl. nem. a kiválasztott lemezre várakozási sorban álló olvasási és írási kérelmek egy mintaintervallum alatt.
- Hálózati kimeneti sor hossza - a kimeneti csomag sorok hossza a csomagokban. A kettőnél több minden késést jelent, és a szűk keresztmetszetet le kell állítani.
- A hálózati bájtok másodpercenként összesen - a bájtok elküldése és fogadása az interfészen, beleértve a keretező karaktereket is.
- Válaszidő - az az idő, amely a felhasználó kérésének megadásától a válasz első karakterének beérkezéséig tart.
- Átviteli sebesség - a számítógép vagy a hálózat másodpercenként fogad kéréseket.
- Összekapcsolás-összevonás mennyisége - az összesített kapcsolatok által teljesített felhasználói kérelmek száma. 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 annak a SQL utasításoknak a számához kapcsolódik, amelyeket a gyorsítótárazott adatok kezelnek a drága I / O műveletek helyett. Ez egy jó hely a szűk keresztmetszetek megoldására.
- Találatok másodpercenként - a nem. a webkiszolgálón található találatok száma a terheléses teszt minden másodpercében.
- Visszagörgetési szegmens - az az adatmennyiség, amely bármikor visszagörgethető.
- Adatbázis-zárak - az asztalok és adatbázisok zárolását figyelemmel kell kísérni és gondosan be kell hangolni.
- Felső várakozások - figyelemmel kísérik annak megállapítását, hogy milyen várakozási időket lehet lerövidíteni annak kezelésekor, hogy az adatok milyen gyorsan származnak a memóriából
- Menetszám - Az alkalmazások egészségi állapota mérhető a sz. futó és jelenleg aktív szálak közül.
- Szemétgyűjtés - A fel nem használt memória visszaszolgáltatásához kapcsolódik. A szemétgyűjtést ellenőrizni kell a hatékonyság érdekében.
Példa teljesítményteszt esetekre
- Ellenőrizze, hogy a válaszidő nem haladja-e meg a 4 másodpercet, ha 1000 felhasználó egyszerre lép be a webhelyre.
- Ha a hálózati kapcsolat lassú, ellenőrizze, hogy a terhelés alatt lévő alkalmazás válaszideje elfogadható tartományon belül van-e
- Ellenőrizze a felhasználók maximális számát, amelyeket az alkalmazás össze tud kezelni, mielőtt összeomlik.
- Ellenőrizze az adatbázis végrehajtási idejét, amikor 500 rekordot egyszerre olvasnak / írnak.
- Csúcsterhelés esetén ellenőrizze az alkalmazás és az adatbázis-kiszolgáló processzorának és memóriájának használatát
- Ellenőrizze az alkalmazás válaszidejét alacsony, normál, közepes és nagy terhelés mellett.
A tényleges teljesítményvizsgálat során az olyan homályos kifejezéseket, mint az elfogadható tartomány, a nagy terhelés stb., Konkrét számokkal helyettesítik. A teljesítménymérnökök ezeket a számokat az üzleti követelményeknek és az alkalmazás műszaki felépítésének megfelelően állítják be.
Teljesítményteszt eszközök
A piacon sokféle teljesítménytesztelő eszköz érhető el. A teszteléshez kivá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 hardverigénytől, a platform támogatásától stb. Az alábbiakban felsoroljuk a népszerűvé vált tesztelési eszközök listáját.
- LoadNinja - forradalmasítja a tesztelés módját. Ez a felhőalapú terhelés-tesztelő eszköz felhatalmazza a csapatokat, hogy átfogó terhelési teszteket rögzítsenek és azonnal lejátszhassanak, komplex dinamikus korreláció nélkül, és ezeket a terhelési teszteket valós böngészőkben futtassák. A csapatok képesek növelni a teszt lefedettségét. & csökkenti a terhelés tesztelési idejét 60% -kal.
- NeoLoad - a DevOps számára tervezett teljesítményteszt platform, amely zökkenőmentesen integrálódik a meglévő folyamatos szállítás folyamatvezetékébe. A NeoLoad segítségével a csapatok tízszer gyorsabban tesztelnek, mint a hagyományos eszközökkel, hogy megfeleljenek az új követelménykövetelményeknek az Agile szoftverfejlesztés teljes életciklusa során - a komponensektől a teljes rendszerszintű terhelési tesztekig.
- HP LoadRunner - a legnépszerűbb teljesítménytesztelő eszközök a piacon. Ez az eszköz képes a felhasználók százezreinek szimulálására, az alkalmazások valós terheléseknek vetik alá, hogy meghatározzák viselkedésüket várható terhelések mellett. A Loadrunner egy virtuális felhasználói generátort tartalmaz, amely szimulálja az élő emberi felhasználók tevékenységét.
- Jmeter - az egyik vezető eszköz, amelyet webes és alkalmazásszerverek terhelésének tesztelésére használnak.
GYIK
Melyik alkalmazást teszteljük?
A teljesítménytesztet mindig csak kliens-szerver alapú rendszereknél végzik. Ez azt jelenti, hogy minden olyan alkalmazásnak, amely nem kliens-szerver alapú architektúra, nem szükséges a teljesítmény tesztelése.
Például a Microsoft Calculator nem kliens-szerver alapú, és több felhasználót sem futtat; ennélfogva nem pályázik a teljesítménytesztekre.
Mi a különbség a teljesítménytesztelés és a teljesítménytechnika között
Fontos megérteni a teljesítménytesztelés és a teljesítménytechnika közötti különbséget. Az alábbiakban egyetértés van:
A teljesítménytesztelés egy olyan tudományág, amely egy szoftveralkalmazás aktuális teljesítményének tesztelésével és jelentésével foglalkozik különböző paraméterek mellett.
A teljesítménytechnika az a folyamat, amelynek során a szoftvereket tesztelik és hangolják a kívánt teljesítmény megvalósítása céljából. Ennek a folyamatnak a célja az alkalmazás legfontosabb jellemzőinek, azaz a felhasználói élmény optimalizálása.
Történelmileg a tesztelés és a hangolás egyértelműen elkülönült és gyakran egymással versengő területek voltak. Az elmúlt években azonban számos tesztelő és fejlesztő zsebében függetlenül működött együtt tuningcsapatok létrehozása. Mivel ezek a csapatok jelentős sikereket értek el, a teljesítménytesztelés és a teljesítményhangolás összekapcsolásának koncepciója ragadt magára, és most teljesítménytechnikának hívjuk.
Következtetés
A szoftvertechnikában a teljesítménytesztre van szükség, mielőtt bármilyen szoftver terméket forgalmaznának. Biztosítja az ügyfelek elégedettségét és védi a befektető befektetését a termék meghibásodása ellen. A teljesítménytesztek költségei általában meghaladják az ügyfelek elégedettségének, hűségének és megtartásának javítását.