Teljesítményteszt oktatóanyag

Terhelésvizsgálat

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ényteszt középpontjában egy szoftverprogram ellenőrzése áll

  • Sebesség – Meghatározza, hogy az alkalmazás gyorsan válaszol-e
  • skálázható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

Miért végezzünk teljesítménytesztet?

A szoftverrendszer által támogatott szolgáltatások és funkcionalitás nem az egyetlen probléma. A szoftveralkalmazások teljesítménye, például válaszideje, megbízhatósága, erőforrás-használata és méretezhetősége számít. A teljesítményteszt célja nem a hibák felkutatása, hanem a teljesítmény szűk keresztmetszetek kiküszöbölése.

A teljesítménytesztelés célja, hogy az érdekelt felek tájékoztatást 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ényteszt feltárja, mit kell javítani, mielőtt a termék piacra kerül. Teljesítményteszt nélkül a szoftver valószínűleg olyan problémákkal küzd, mint például: lassú működés, miközben több felhasználó használja egyszerre, inkonzisztenciák a különböző operációs rendszerek között és rossz használhatóság.

Teljesítményfelmérés

A teljesítményteszt során kiderül, hogy szoftverük megfelel-e a sebesség, a méretezhetőség és a stabilitás követelményeinek a várható munkaterhelés mellett. A nem létező vagy gyenge teljesítményteszt miatt gyenge teljesítménymutatókkal piacra küldött alkalmazások valószínűleg rossz hírnevet szereznek, é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ő a Google.com (19-augusztus 13.) becslések szerint annyiba kerül a keresőóriásnak, mint $ 545,000.

Becslések szerint a vállalatok veszítettek eladási értékükből 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 - Ez azért történik, hogy a szoftver hosszú időn keresztül képes legyen kezelni a várt terhelést.
  • Tüske tesztelés - teszteli a szoftver reakcióját a felhasználók által generált terhelés hirtelen nagy kiugrásaira.
  • Térfogatvizsgálat – Kötetteszt alatt nagy sz. nak,-nek. Az adatok egy adatbázisban vannak feltöltve, és a teljes szoftverrendszer viselkedését figyelik. A cél a szoftveralkalmazások teljesítményének ellenőrzése változó adatbázis-köteteknél.
  • Skálázhatósági tesztelés – A skálázhatósági tesztelés célja, hogy meghatározza a szoftveralkalmazás hatékonyságát a felhasználói terhelés növelése érdekében végzett „nagyításban”. Segít megtervezni a szoftverrendszer kapacitásának növelését.

Gyakori 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 forog. A sebesség gyakran az egyik legfontosabb jellemzője az alkalmazásoknak. A lassan futó alkalmazás elveszíti a potenciális felhasználókat. A teljesítményteszt biztosítja, hogy az alkalmazás elég gyorsan futjon ahhoz, hogy fenntartsa a felhasználó figyelmét és érdeklődését. Vessen egy pillantást a következő listára a gyakori teljesítményproblémákról, és figyelje meg, hogy a sebesség milyen gyakori tényező ezek közül:

  • Hosszú betöltési idő - A betöltési idő általában az a kezdeti idő, amely alatt az alkalmazás elindul. Ezt általában minimálisra kell csökkenteni. Míg egyes alkalmazásokat lehetetlen egy perc alatt betölteni, a betöltési időt lehetőleg néhány másodperc alatt kell tartani.
  • Rossz válaszidő - A válaszidő az az idő, amely eltelik attól az időponttól, amikor a felhasználó adatokat visz be az alkalmazásba, amíg az alkalmazás választ ad erre a bemenetre. Általában ennek nagyon gyorsnak kell lennie. Ismét, ha a felhasználónak túl sokáig kell várnia, elveszti é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 általános teljesítményét. Szűk keresztmetszetről van szó, amikor vagy kódolási hibák vagy hardverproblémák bizonyos terhelések esetén az átviteli sebesség csökkenését okozzák. A szűk keresztmetszetet gyakran a kód egy hibás része okozza. A szűk keresztmetszettel kapcsolatos probléma megoldásának kulcsa az, hogy megtalálja a lassulást okozó kódszakaszt, és ott próbálja meg kijavítani. A szűk keresztmetszetet általában a rossz futó folyamatok javításával vagy további hardverek hozzáadásával javítják. Néhány gyakori teljesítménybeli szűk keresztmetszetek faliórái
    • 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 bemutatjuk a teljesítményteszt végrehajtásának általános folyamatát

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

1. lépés) Határozza meg tesztelési környezetét

Ismerje meg fizikai tesztkörnyezetét, termelési környezetét és a rendelkezésre álló tesztelési eszközöket. A tesztelési folyamat megkezdése előtt ismerje meg a tesztelés során használt hardver, szoftver és hálózati konfigurációk részleteit. Segít a tesztelőknek hatékonyabb tesztek létrehozásában. Segít azonosítani azokat a lehetséges kihívásokat is, amelyekkel a tesztelők szembesülhetnek a teljesítménytesztelési eljárások során.

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ások elosztására vonatkozó célokat és megszorításokat. Szükséges továbbá azonosítani a projekt sikerkritériumait ezeken a célokon és korlátokon kívül. A tesztelőket fel kell hatalmazni teljesítménykritériumok és célok meghatározására, mivel a projektspecifikációk gyakran nem tartalmaznak elég sokféle teljesítmény-referenciaértéket. Néha lehet, hogy egyáltalán nincs. Ha lehetséges, hasonló alkalmazást találni, amellyel összehasonlítható, 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 felhasználás miként változhat a végfelhasználók között, és határozza meg a kulcsfontosságú forgatókönyveket, amelyekkel minden lehetséges használati esetet tesztelni szeretne. Különféle végfelhasználókat kell szimulálni, meg kell tervezni a teljesítményteszt adatait, és fel kell vázolni, hogy milyen mutatókat kell összegyűjteni.

4. lépés) A tesztkörnyezet konfigurálása

A végrehajtás előtt készítse elő a tesztelési környezetet. Ezenkívül gondoskodjon eszközökről és egyéb erőforrásokról.

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) Elemezze, hangolja és tesztelje újra

A teszteredmények konszolidálása, elemzése és megosztása. Ezután finomhangolja és tesztelje újra, hogy lássa, javult vagy csökken a teljesítmény. Mivel a fejlesztések általában minden újrateszttel kisebbek, hagyja abba, ha a CPU szűk keresztmetszetet okoz. Ezután fontolóra veheti a CPU teljesítményének növelésé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ényteszt mérőszámai

  • Processzor használat - a processzor által a nem tétlen szálak végrehajtásával eltöltött idő.
  • Memóriahasználat – a számítógépen lévő folyamatok számára elérhető fizikai memória mennyisége.
  • Lemezidő – mennyi ideig van elfoglalva a lemez egy olvasási vagy írási kérés végrehajtásával.
  • Sávszélesség - a hálózati interfész által használt bit/sec.
  • Privát bájtok – egy folyamat által lefoglalt bájtok száma, amelyek nem oszthatók meg más folyamatok között. Ezeket a memóriaszivárgások és -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 a lemezről olvasott oldalak száma a kemény oldalhibák megoldása érdekében. Kemény laphibákról van szó, amikor a nem az aktuális munkakészletből származó kódot máshonnan hívják elő, és lekérik egy lemezről.
  • Oldalhibák/másodperc – a hibaoldalak processzor általi feldolgozásának általános sebessége. Ez akkor is előfordul, ha egy folyamat a munkakészletén kívüli kódot igényel.
  • CPU megszakítások másodpercenként – az átl. A processzor által másodpercenként fogadott és feldolgozott hardvermegszakítások száma.
  • Lemezsor hossza – az átl. nem. a kiválasztott lemezhez sorban álló olvasási és írási kérések száma egy mintaintervallum alatt.
  • Hálózati kimeneti sor hossza – a kimeneti csomagok sorának hossza csomagokban. Bármi több, mint kettő, késést jelent, és meg kell állítani a szűk keresztmetszeteket.
  • Összes hálózati bájt másodpercenként – az interfészen elküldött és fogadott bájtok aránya, beleértve a keretező karaktereket.
  • Válaszidő - az eltelt idő a felhasználó kérésének bevitelétől a válasz első karakterének megérkezéséig.
  • áteresztőképesség - egy számítógép vagy hálózat másodpercenként fogadott kérések aránya.
  • 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 – Ennek a számához van köze 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 nem. találatok száma a webszerveren a terhelési teszt minden másodperce során.
  • 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 – figyelik, hogy meghatározzák, milyen várakozási időket lehet lecsökkenteni, amikor az adatok memóriából való lekérésének gyorsaságával foglalkoznak
  • A szálak száma – Az alkalmazások állapota a sz. a futó és jelenleg aktív szálak közül.
  • Szemétgyüjtés - Ez a fel nem használt memória visszajuttatásához kapcsolódik a rendszerhez. A szemétgyűjtés hatékonyságát ellenőrizni kell.

Teljesítményvizsgálati tesztesetek példa

  • 01. teszteset: Ellenőrizze, hogy a válaszidő nem haladja meg a 4 másodpercet, ha egyidejűleg 1000 felhasználó éri el a webhelyet.
  • 02. teszteset: Ellenőrizze, hogy a terhelés alatti alkalmazás válaszideje elfogadható tartományon belül van-e, ha a hálózati kapcsolat lassú
  • 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ési körülmények között
  • 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ényteszt eszközök

A teljesítménytesztelő eszközök széles választéka elérhető a piacon. 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 licencköltségtől, a hardverkövetelményektől, a platformtámogatástól stb. Az alábbiakban felsoroljuk a népszerű tesztelési eszközöket.

  • HP LoadRunner - ma a legnépszerűbb teljesítménytesztelő eszköz a piacon. Ez az eszköz több százezer felhasználó szimulálására képes, és valós terhelés alá helyezi az alkalmazásokat, hogy meghatározza viselkedésüket a várható terhelés 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ő eszköz a web- és alkalmazásszerverek terhelési tesztelésére.

FAQ

A teljesítménytesztelés mindig csak kliens-szerver alapú rendszereken történik. Ez azt jelenti, hogy minden olyan alkalmazásnak, amely nem kliens-szerver alapú architektúra, nem kell teljesítménytesztet végeznie.

Például, Microsoft A Számológép nem kliens-szerver alapú, és nem is több felhasználót futtat; ezért nem jelölt a teljesítménytesztre.

Teljesítményteszt

Fontos megérteni a különbséget a teljesítményteszt és a teljesítménytervezés között. A megértés az alábbiakban olvasható:

Teljesítményfelmérés egy olyan tudományág, amelyre vonatkozik tesztelés és jelentéskészítés egy szoftveralkalmazás aktuális teljesítménye különböző paraméterek mellett.

Teljesítménymérnökség az a folyamat, amelynek során a szoftvert tesztelik és hangolják a kívánt teljesítmény elérése érdekében. Ennek a folyamatnak az a célja, hogy optimalizálja a legfontosabb alkalmazási teljesítményt, azaz a felhasználói élményt.

Történelmileg a tesztelés és a hangolás kifejezetten különálló és gyakran egymással versengő területek voltak. Az elmúlt néhány évben azonban tesztelők és fejlesztők több zsebe működött együtt egymástól függetlenül tuningcsapatok létrehozásában. Mivel ezek a csapatok jelentős sikereket értek el, a teljesítményteszt és a teljesítményhangolás összekapcsolásának koncepciója elterjedt, és most ezt teljesítménymérnökinek nevezzük.

Következtetés

In Szoftverfejlesztés, Minden szoftvertermék forgalomba hozatala előtt teljesítményteszt szükséges. Biztosítja az ügyfelek elégedettségét, és megvédi a befektető befektetését a termék meghibásodásától. A teljesítménytesztek költségeit általában bőven kiegyenlítik az ügyfelek jobb elégedettsége, hűsége és megtartása.