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