A szoftverfejlesztési folyamat kiterjedt, folyamatos tesztelést igényel, elsősorban agilis tesztelést, amely segít a hatékony és kiszámítható teljesítmény biztosításában. Az agilis tesztelésnek azonban vannak korlátai a végfelhasználói élményt illetően egy többfelhasználós rendszerben. Amikor egy szoftverprojekt a befejezéshez közeledik, a vállalatoknak egy más típusú teszteléshez, az úgynevezett terheléses teszteléshez kell fordulniuk, hogy meghatározzák, hogyan fog az alkalmazás a valóságban teljesíteni a különböző munkaterhelési és forgalmi szintek mellett.
Mi a terheléses tesztelés?
A terhelésvizsgálat a teljesítménytesztelés egy részhalmaza, amelyet szoftverek, weboldalak, alkalmazások és kapcsolódó rendszerek esetében alkalmaznak. Ez egy nem funkcionális teszt, amely a rendszerhez egyszerre több felhasználó viselkedését szimulálja. A “volumentesztelésnek” is nevezett terheléses tesztelés a webes rendszer teljesítményét, stabilitását és funkcionalitását valós körülmények között replikálja, ezért ez az egyik utolsó és legfontosabb tesztelési típus, amelyet a telepítés előtt hajtanak végre.
A terhelésvizsgálat a webes rendszer számos kritikus szempontját azonosítja, többek között a következőket:
- Az alkalmazás teljes működési kapacitása, beleértve az egyidejűleg támogatható felhasználók számát.
- Az alkalmazás képessége, hogy reagáljon a felhasználói csúcsterhelésre
- Az alkalmazás infrastruktúrájának stabilitása
- Az alkalmazás válaszideje, átviteli sebessége és erőforrásigénye különböző felhasználói terhelési szintek mellett.
A terheléses tesztelés kulcsfontosságú folyamat, amelyet bármely kliens/szerver internetes és intranetes alkalmazás elindítása előtt alkalmaznak. Ez egyaránt vonatkozik a front-end szoftverekre, például egy weboldalra, és a back-end rendszerekre, például a webhelynek otthont adó szerverekre.
Miért van szükségünk terhelésvizsgálatra?
A funkcionális tesztek fontos szerepet játszanak a szoftverfejlesztésben, de a teljesítmény előrejelzésében a felhasználók különböző szintű elkötelezettsége mellett is korlátokba ütköznek. A terheléses tesztelés olyan kritikus teljesítményproblémákat azonosít, amelyeket más tesztek nem tudnak, így a vállalatok még a szoftver bevezetése vagy a frissítések végrehajtása előtt kijavíthatják a problémákat.
A vállalatoknak három alapvető okból kell terheléses tesztelést végezniük:
- A szoftver funkcionalitásának értékelése
- Bevételszerzés, szolgáltatásnyújtás és a vállalat hírnevének védelme.
- A kellemes, hatékony felhasználói élmény biztosítása érdekében
A terhelésvizsgálat szükséges a szűk keresztmetszetek azonosításához, a webhely műveleteinek válaszidejének méréséhez és a jövőbeli teljesítmény javításához. Természetesen ezek a célok mind megvalósíthatók egy élő webhely viselkedésére reagálva, de csak a fogyasztók intenzív megzavarása árán.
Megjegyzendő, hogy bár a terhelésvizsgálati szoftverek általában az internetalapú alkalmazásokhoz kapcsolódnak, hardverek tesztelésére is használják.
A terhelésvizsgálat előnyei
Az internetes vagy intranetes alkalmazásokat kínáló vállalkozások óriási előnyöket élveznek a terhelésvizsgálatból. A terheléses tesztelés elvégzésének néhány legjobb oka a következő:
1. Megakadályozza a leállást és az alkalmazás meghibásodását
A terhelési tesztelés segítségével optimalizálható a rendszer a normál és csúcsterhelési időkre, és azonosítható a váratlan terhelés miatti esetleges leállások.
Emellett a webes terhelési tesztelés segít felkészülni a növekedési időszakokra vagy a szokatlanul magas használatra, például egy e-kereskedelmi értékesítésre vagy új termék bevezetésére.
2. Teljesítményszabványok figyelemmel kísérése
A terheléses tesztelés teljesítményadatokat szolgáltat, amelyeket a vállalatok az alkalmazáskód és az infrastruktúra módosításainak értékeléséhez használnak.
A szervezet az átlagos és a csúcsidőszakok forgalmának elemzésével teljesítménycélokat dolgozhat ki.
3. Költségcsökkentés
A hálózati leállások percenként átlagosan 5600 dollár ba (óránként 300 000 dollárba) kerülnek egy vállalatnak. Ráadásul azok a felhasználók, akik gyakran találkoznak egy nem működő alkalmazással, egyre valószínűbb, hogy soha nem térnek vissza.
A terheléses tesztelés költségei következetesen alacsonyabbak, mint a túlzott leállások, a webhely elérhetetlensége és az ügyfelek elégedetlenségéből eredő nagyobb veszteségek potenciális költségei.
4. Növeli a hatékonyságot
A terhelésvizsgálat azonosítja a rendszer szűk keresztmetszeteit, amelyek megszüntetése után a rendszer maximális hatékonysággal működhet. A szűk keresztmetszetek kiküszöbölése nem csak kiváló működési teljesítményt tesz lehetővé, hanem a rendszer skálázhatósága is javul.
A hatékony, gyorsan betöltődő oldalak növelik a felhasználók elégedettségét és javítják a webhely keresési rangsorát.
5. A szolgáltatási szintre vonatkozó megállapodás betartása
A terhelésvizsgálat lehetővé teszi a szervezet számára a teljesítmény minőségének mérését, a felhasználók számára garantált alapszinteket biztosító SLA-k (szolgáltatási szint megállapodások) kidolgozásához használt adatokkal. Az adatok a teljesítménynek a belső viszonyítási pontokkal és a versenytársak teljesítményével való összehasonlításához is hasznosak.
6. Kapacitás-tervezés
A terhelésvizsgálat a kapacitástervezéshez elengedhetetlenül fontos információkat szolgáltat. Ha az alkalmazás kedvezően reagál a tesztre, a szervezet ennek megfelelően tervezheti a bővítést és a csúcsidőszakokat. Ha az alkalmazás az elfogadott paramétereken kívüli mérőszámokat rögzít – ha “megbukik” a terheléses teszten – az adatok még mindig hasznosak, mint stresszteszt.
(A terheléses teszt és a stresszteszt közötti különbségről az útmutató későbbi részében olvashat bővebben.)
A terheléses tesztelés kihívásai és korlátai
A terheléses tesztelés jelentős előnyökkel jár, amit az is mutat, hogy széles körben elterjedt számos iparágban és rendszerben. Azonban, mint minden alkalmazásnak, ennek is vannak hátrányai és kihívásai.
1. kihívás: megfoghatatlanság
A terheléses tesztelés nem feltétlenül a leglátványosabb eszköz, mivel az egyik fő előnye a potenciális problémák azonosítása, mielőtt azok éles helyzetben jelentkeznének. A webhely leállásával és az alkalmazás hibájával kapcsolatos számos negatív – pénzügyi és egyéb – tényező egyszerűen nem jelentkezik.
A “mi lenne, ha” forgatókönyvekre összpontosító tesztelési típusok általában figyelmen kívül maradnak. Bár a terhelésvizsgálat segíthet a felhasználói túlterhelést követő elemzésben, sokkal hasznosabb a szervezet számára, mint megelőző eszköz.
Kihívás 2: Komplexitás
Mind a nyílt forráskódú, mind a házon belüli terhelésvizsgálati eszközök technikai szinten magas belépési korlátot jelenthetnek. A szervezet méretétől és összetettségétől függően előfordulhat, hogy nem rendelkeznek alkalmazottakkal vagy erőforrásokkal a terheléses teszteléshez.
Kivételt képez ez alól a professzionális terhelésvizsgálati platform, például a ZAPTEST terhelésvizsgálat, amely egyértelmű, felhasználóbarát felületet biztosít. A ZAPTEST LOAD lehetővé teszi, hogy rögzített és API-alapú szkripteket hozzon létre, amelyek végfelhasználói üzleti folyamatokat hajtanak végre, és végponttól végpontig tartó tranzakciókat mérnek a teljes System Under Load (SUL) alatt.
A terhelésvizsgálat típusai
A terheléses tesztelésnek több különböző típusa áll rendelkezésre, lehetővé téve a szervezetek számára, hogy a költségvetés, a projekt összetettsége, az alkalmazottak technikai szakértelme és egyéb tényezők alapján testre szabják tesztelési stratégiájukat.
1. Kézi terheléses tesztelés
A kézi terheléses tesztelés az, amikor a rendszert automatizált terheléses tesztelési eszközök nélkül értékelik, vagyis a szimulált felhasználókat kézzel hozzák létre.
A kézi terheléses tesztelés kevés, vagy egyáltalán semmilyen előnnyel nem jár. A logisztikai nehézségektől eltekintve a vizsgálati eredmények általában megbízhatatlanok és szinte lehetetlen megismételni őket. Hacsak egy szervezetnek nincs kifejezetten szüksége manuális tesztelésre, akkor erőfeszítései inkább az automatizált szoftvertesztelésre összpontosulnak.
2. Házon belüli tesztelési eszközök
Mivel a terhelésvizsgálat folyamatos folyamat, különösen a növekedés idején, sok szervezet úgy dönt, hogy saját terhelésvizsgálati automatizálási eszközöket hoz létre.
Az egyedi eszközöket az alapoktól kezdve úgy tervezik, hogy a szervezet egyedi alkalmazásaival működjenek együtt, lehetővé téve az eszköz és a rendszer egyszerű és teljes integrációját. További előnyök közé tartozik a csökkentett beállítási idő, karbantartási igény, működési hibák, képzési idő és még sok más.
Van azonban néhány hátránya is. A házon belüli eszközök nem biztos, hogy könnyen skálázódnak, ha a felhasználói bázis növekszik. Ráadásul az egyedi eszközök fejlesztése kezdeti idő- és pénzbefektetést igényel, amely során a szervezetnek más tesztelési eszközöket kell használnia, vagy egyáltalán nem.
3. Nyílt forráskódú tesztelési eszközök
Számos nyílt forráskódú tesztelési eszköz létezik. Nyílt forráskódú programként ingyenesen használhatóak, erős módosítási lehetőségeket kínálnak, és erős közösségi támogatással rendelkeznek.
A népszerű nyílt forráskódú tesztelési eszközök közé tartozik a Locust, a k6 és a JMeter. Mindegyik lehetővé teszi a nagy felhasználói terhelések szimulálását, a tesztszkriptek rögzítését, a teljesítményjelentések megtekintését és még sok mást.
Bár a legtöbb nyílt forráskódú eszköz “elvégzi a munkát”, lehetnek hátrányaik, különösen a vállalati szervezetek számára. A nyílt forráskódú eszközök gyakran összetettek, és nem rendelkeznek a kereskedelmi terhelésvizsgálati automatizálási eszközök felhasználóbarát jellegével. Emellett a támogatás általában a wikire, fórumokra és hasonlókra korlátozódik, amelyek vészhelyzetben csak korlátozottan használhatók.
4. Vállalati szintű terhelési teszt automatizálási eszközök
A vállalati tesztelési eszközök különböző funkciókat biztosítanak, hogy az e-kereskedelmi oldalak, a szolgáltatási platformok és a különböző típusú szakmai szervezetek igényeinek megfelelően méretezhetők legyenek.
A vállalati terhelésvizsgálati szolgáltatások előnyei a következők:
- A hatalmas mennyiségű felhasználói forgalom generálásának képessége
- Rögzítési/lejátszási lehetőség
- Több protokoll támogatásának képessége
- Az elveszett dokumentumok helyreállításának képessége
- 1 kattintással történő tesztdokumentáció bevitele
A népszerű vállalati terheléstesztelő cégek közé tartozik a ZAPTEST és a technológiai iparági partnerük, a Gartner. (Az automatizálási iparágban jártasak a ZAPTEST-et a robotizált folyamatautomatizálás területén végzett elismert munkájukból is ismerhetik.) Továbbá a ZAPTEST INGYENES kiadása ingyenes LOAD funkciót kínál, amely lehetővé teszi a felhasználók számára, hogy a legújabb funkciók és a drill-down elemzés segítségével végezzenek teljesítményteszteket.
A vállalati szintű terhelésvizsgálati automatizálási eszközök megbízható, támogatással támogatott megoldásokat kínálnak, amelyek nem igényelnek annyi technikai tudást, mint a nyílt forráskódú eszközök. A legtöbb vállalati terhelésvizsgálati szolgáltatás előfizetési modellben működik.
Mit teszteljünk terheléses teszteléssel?
Az automatizált terhelésvizsgálati eszközök számos létfontosságú kérdés pontos megválaszolásához használt adatokat generálnak:
- Hány felhasználója van az alkalmazásnak (weboldalnak, rendszernek stb.) normál munkaidőben? Csúcsidőben?
- Az alkalmazás mely elemeire milyen számú felhasználó van hatással?
- Hány felhasználó esetén fog a weboldal offline állapotba kerülni?
- Mikor fogynak ki a rendszer erőforrásai?
- Milyen gyorsan töltődik be a weboldal?
A nem funkcionális szimulációk futtatásával a szervezet adatokat nyer a sebességről, a megbízhatóságról és a skálázhatóságról. A fenti egyes szempontok tesztelése átfogóbb képet ad, ahol a szűk keresztmetszetek könnyebben azonosíthatók.
1. Alapszintű teljesítmény
A vállalatok terheléses teszteléssel tesztelhetik az alkalmazás alapszintű teljesítményét. Mivel a teszt során a felhasználók száma folyamatosan növekszik, a létrehozott adatok az átlagos kapcsolati sebesség, a fájlok letöltési ideje és a késleltetés alapszintű teljesítményét mutatják.
2. Benchmark teljesítmény
A weboldal terhelési tesztje benchmark teljesítményadatokat is gyűjt. Bár az “alapszint” és a “referenciaérték” kifejezést gyakran felváltva használják, alapvető különbségek vannak közöttük. Az összehasonlító tesztelés a teljesítményt a konkurens webhelyekhez vagy belső követelményekhez (például a végfelhasználói SLA-khoz) viszonyítva méri.
Terhelésvizsgálati mérőszámok / célok
Az egyes szervezetek egyedi igényeik alapján alakítják ki a tesztelési mérőszámokat. A vállalati szintű automatizált terhelésvizsgálati eszközök egyik jelentős előnye, hogy testre szabhatják a nyomon követett metrikákat.
Ettől függetlenül a legtöbb szervezet a következő mérőszámokat követi az automatikus terheléses teszteléssel:
1. Válaszidők
A válaszidő az automatikus terheléses teszteléssel mért elsődleges mérőszám. Miután a felhasználó elküld egy kérést, mennyi időbe telik a rendszer válasza? ( 10 másodpercnél hosszabb válaszidő esetén a felhasználó valószínűleg távozik.)
2. Átviteli teljesítmény
Az átviteli teljesítmény az elküldött és fogadott adatok mennyisége. A terheléses tesztelés során ezt általában másodpercenkénti találatokban (hps) vagy másodpercenkénti tranzakciókban (tps) fejezik ki.
3. Hardver-specifikus mérőszámok
A lassú válaszidők hardverkorlátozottságot jelezhetnek, ezért a terhelésvizsgálat része a CPU-használat, a rendelkezésre álló RAM, a lemezes I/O és hasonló hardveralapú funkciók ellenőrzése.
4. Adatbázis
A legtöbb vállalati szintű alkalmazás működéséhez több rendszerre van szükség, de ahogy nő az adatbázisok száma, úgy nő a szűk keresztmetszet lehetősége is. A terhelésvizsgálati szoftverek mérik az adatbázis olvasásait és írásait, valamint a nyitott adatbázis-kapcsolatok számát.
Néhány félreértés tisztázása
Számos szoftverminőségbiztosítási gyakorlat átfedésben van és összefonódik. Még a szakmai tapasztalattal rendelkezők is összezavarodhatnak a szoftvertesztelési szolgáltatások alábbi típusait illetően.
Teljesítménytesztelés vs. terheléstesztelés
A teljesítménytesztelés a szoftverrendszer stabilitásának, reakciókészségének, erőforrásigényének és más teljesítménymutatóknak a mérésére használt gyakorlatok gyűjtőfogalma, különösen a felhasználói élményt illetően.
A terheléses tesztelés a teljesítménytesztelés egyik alkategóriája. Egyéb gyakori típusok:
- Állóképességi tesztelés – Az állóképességi tesztelés, más néven áztatásos tesztelés a tartós, várható felhasználói terhelést méri. Az állóképességi tesztelés kiszúrja a memóriaszivárgásokat és a válaszidő hosszan tartó romlását.
- Tüsketesztelés – A tüsketesztelés a felhasználói populáció hirtelen, drasztikus növekedését vagy csökkenését szimulálja.
- Izolációs tesztelés – A rendszerproblémát eredményező tesztet megismétlik, hogy segítsenek az okot elkülöníteni.
A teljesítménytesztek nem funkcionális tesztek, amelyeket általában a fejlesztési ciklus vége felé vagy a fejlesztés befejezése után végeznek.
Stressztesztelés vs. terheléses tesztelés
A terhelés- és a stressztesztelés sok szempontból hasonló. Ismétlem, a weboldal terhelési tesztje azt méri, hogy a rendszer hogyan reagál a várható forgalomra, például a normál vagy csúcsforgalomra. Terhelésvizsgálatot végez, hogy felmérje a teljesítménycsökkenést és annak kapcsolatát a felhasználói élményhez a történelmileg várható terhelések során. Röviden, a terheléses tesztelés nem arra szolgál, hogy megtörje a rendszert.
A stressztesztelésnek más célja van. A stresszteszt során a felhasználók száma a teljesítménycsökkenésen túl egészen a teljes meghibásodásig növekszik. A stresszteszt nem csak a rendszer “töréspontját” méri, hanem azt is megvizsgálja, hogy a rendszer milyen típusú automatikus helyreállítást végez.
A fejlesztők elhatározhatják, hogy stressztesztet végeznek, de ez véletlenül is előfordulhat egy felső szintű terheléses teszt során. A terheléses tesztek automatizálási eszközei mindkét típusú teszt során a rendszert a rendelkezésre álló erőforrásokon túlra terhelik, így rengeteg értékes adatot szolgáltatnak.
Funkcionális tesztelés vs. terheléses tesztelés
A funkcionális tesztelés és a terheléses tesztelés a teljesítménytesztelés típusai, és bár mindkettő szükséges, mindegyik más célt szolgál.
A funkcionális tesztelés azt határozza meg, hogy a rendszer egy adott aspektusa megfelel-e az előre meghatározott követelményeknek. Sokkal gyakrabban használják, mint a terheléses tesztelést, egyértelműen meghatározott paraméterekkel és lépésekkel. A terheléses tesztelés kiszámíthatatlanabb, és az eredmények nagymértékben eltérhetnek a várakozásoktól.
Ezenkívül a terheléses tesztelés teljes mértékben a felhasználói terheléstől függ, míg a funkcionális tesztelés a tesztadatokon alapul.
A hatékony terhelésvizsgálat jellemzői
Bár a vállalati terheléses tesztelés hatékony eszköz, ha a vállalkozások maximalizálni szeretnék a teszt hatékonyságát, akkor a következő legjobb gyakorlatokat kell követniük.
1. Realisztikus forgatókönyveket használ
A tesztelési forgatókönyveknek a lehető legjobban kell hasonlítaniuk a felhasználók valós viselkedéséhez. Gondosan vegye figyelembe a felhasználói viselkedést. Miért használják az Ön alkalmazását? Milyen típusú eszközöket használnak a hozzáféréshez?
Vegyen fel néhány kiszámíthatatlan viselkedést a weboldal terheléses tesztjébe, mivel a valódi felhasználók váratlan módon fognak viselkedni, amit nem tud előre látni.
2. Nem nulláról indul
Sok tesztelő a tesztet nulla terheléssel kezdi, és fokozatosan hozzáadja a szimulált felhasználókat. Bár van némi értéke ennek a módszernek, ne felejtse el a tesztelést akkor is elvégezni, amikor a rendszer már normál terhelés alatt van. Ez segít elkerülni a téves pozitív jelenségeket, és pontosabb eredményekhez vezet, mivel a rendszer ritkán, vagy soha nem lesz nulla terhelésű a valós világban.
3. Valós adatokat használ
Amint a fenti gyakorlatok is mutatják, minél jobb minőségű adatokat kapunk a tesztelés előtt, annál hasznosabbak a teszteredmények. Forduljon a felügyeleti eszközök által korábban nyert adatokhoz, hogy segítsen reális forgatókönyvek kidolgozásában.
Két hasznos adatkategóriát érdemes figyelembe venni:
- Felhasználói adatok: használt eszközök és böngészők, megtett útvonalak és leállási pontok
- Rendszeradatok: első búcsúidőzítés, DOM terhelés
4. Elemzés és ismétlés
A terheléses teszt után a csapata azonosítani szeretné a szűk keresztmetszeteket és a hozzájuk tartozó kódot. A teszteredményekből nyert információk javítható mérőszámokká alakítása nem mindig egyszerű, különösen a nyílt forráskódú szoftverek esetében, bár a vállalati terhelésvizsgálat automatizálási eszközök sokkal egyszerűbbé és hatékonyabbá tehetik a folyamatot.
Bár a terheléses tesztelés létfontosságú a termék bevezetése előtt, ez nem egy “egy és kész” megoldás. Ehelyett a terheléses tesztelésnek a szervezet agilis és automatizálási gyakorlatának részévé kell válnia.
Ki vesz részt a terhelési tesztelésben?
Bár a terheléses tesztelésre a fejlesztés vége felé kerül sor, számos különböző csapat részvételét igényli, köztük olyanokét is, amelyek a termék életciklusának jóval korábbi szakaszában kezdik meg a munkát.
1. Fejlesztőmérnökök
A mérnökök integrált fejlesztőkörnyezeteket használnak a folyamatok tesztelésére a fejlesztés során, ami olyan adatokat eredményez, amelyek segítik a terheléses tesztelési paraméterek megállapítását a kiadás előtt.
2. Más tesztelők
Az agilis és funkcionális tesztelők értékes betekintést nyújtanak az alkalmazás egyes elemeibe. Ezenkívül az agilis tesztek adatai segítenek a terheléses tesztelés során használt alapszintű metrikák meghatározásában.
3. Végfelhasználók/érintettek
Céljaik határozzák meg viselkedésüket egy alkalmazáson. A rendszeren belüli motivációik megértése segít a tesztelési forgatókönyvek megismerésében.
Terhelési tesztelési folyamat
A terheléstesztelési folyamat meglehetősen összetetté válhat, különösen akkor, ha nyílt forráskódú vagy házon belüli tesztelési szoftvert használ. Bár a vállalati szintű szoftverek jelentősen leegyszerűsítik a tesztelést, a terheléses tesztelés alapvető lépéseinek megértése segít a lehető legjobb eredmények elérésében.
Bár a terheléses tesztelés sajátosságai az üzleti modelltől, a hardvertől, a felhasználói bázistól és más egyedi tényezőktől függően változnak, a legtöbb tesztelés ezt az alapstruktúrát követi:
1. A célok meghatározása
A világos célok hasznosabb eredményekhez vezetnek. Határozza meg a tesztelendő legkritikusabb alkalmazási funkciókat.
2. Az alapszint megállapítása
Ha már végzett korábbi teszteket, használja az adatokat a teljesítmény alapvonalának létrehozásához a következő teszthez. Az alapértéktől való eltérés további vizsgálatot jelez.
3. Terhelési tesztkörnyezet létrehozása
A tesztkörnyezetnek a lehető legjobban tükröznie kell a valós körülményeket, ezért hasonló gépprofilokon, hálózati architektúrán, tűzfalakon, adatbázisokon és más területeken kell tesztelnie.
4. Terhelési forgatókönyvek kidolgozása
A terhelési forgatókönyvek létrehozásának leggyakoribb módja a szkriptek és a rögzített felhasználói tevékenység kombinálása. Minden forgatókönyv tartalmaz méréseket, tranzakciókat és érvényesítési pontokat.
5. Tesztek futtatása
Miután létrehozta az alapvonalakat, a terhelési forgatókönyveket és a tesztkörnyezetet, a tesztek készen állnak a végrehajtásra. Több forgatókönyvet is futtathat egyidejűleg, módosítva a felhasználói szinteket, helyszíneket, böngészőket és egyéb tényezőket.
6. Teszt utáni vizsgálat
A befejezett tesztelés lenyűgöző mennyiségű adatot szolgáltat, beleértve a válaszidőt, a betöltési időt, a hibákat, a szerver teljesítményét és még sok mást. A legtöbb adatelemzés magában foglalja a forgatókönyvek újrafuttatását a probléma szűkítése és a fő probléma azonosítása érdekében.
A sikeres adatértelmezés kulcsa a világos célok előzetes meghatározása és az elemzés során a részletes dokumentáció fenntartása.
Terhelési teszt példák
A terhelésvizsgálatot számos forgatókönyvben alkalmazzák, köztük olyan helyzetekben is, amelyeket sok vállalat figyelmen kívül hagy. Példák:
1. Weboldalak
A nagyméretű fájlok hosszabb időn keresztül történő letöltése teszteli a webalapú alkalmazások képességeit.
2. Szerver
A szerverek terhelési tesztelése egy alkalmazás több példányának vagy több különböző alkalmazás egyidejű futtatásával történik.
3. Merevlemezek
Az adatok ismételt olvasása és írása próbára teszi a rendszerben lévő merevlemezek határait.
4. Mail szerver
A levelezőszerverek terhelési tesztelése a felhasználói tevékenység szimulálásával történik. A legtöbb levelezőszerver-terhelési teszt legalább 1000 felhasználót szimulál.
5. Alkalmazás programozási interfész
Az API-terhelési tesztelés operációs rendszereken, szoftverkönyvtárakon, programozási nyelveken, hardvereken és egyéb eszközökön történik.
6. Nyomtató
A nyomtatóterhelési tesztek során egyre több feladatot küldenek a nyomtató sorba. Ez ritkán fizikai teszt, amely hardveres működést igényel.
Terhelési tesztesetek
A terhelésvizsgálat minden típusú és méretű szervezet számára előnyös. A terheléses tesztelés végrehajtásával kapcsolatos néhány valós eset a következő:
1. Promóciós események
Egy nagy e-kereskedelmi oldal fel szeretné mérni, hogy a honlapja mennyire alkalmas egy nagyobb kiárusításra, például egy fekete pénteki kiárusításra. Egy másik példa lehet egy játékgyártó cég, amely egy új, nagy érdeklődéssel várt játékkal készül bővíteni weboldalát.
2. Nyilvános webes portálok
A tesztelés segít felkészíteni a nagy portálokat a használat drámai változásaira, például amikor az adóhivatal portáljának forgalma megnő az adószezonban. Hasonló példa lehet a webes portálok terheléses tesztelése, hogy segítsen egy főiskolának felkészülni az online beiratkozásra a félév elején.
3. Szerver tesztelés
Azáltal, hogy egy szervert nagy mennyiségű adatforgalomnak tesznek ki, egy vállalati szervezet meghatározhatja, hogy infrastruktúrája elegendő-e a közelgő bővítésekhez. A szervertesztelés szintén lényeges része a jól működő webhely fenntartásának.
4. Fájltovábbítási tesztelés
A terhelésvizsgálat a fájlok merevlemezre és merevlemezről történő átviteli sebességét mérheti, például egy laptop és egy asztali számítógép vagy egy laptop és egy laptop között. Többek között segíthet a szervezeteknek meghatározni, hogy milyen hardvert vásároljanak az alkalmazottak számára.
Hogyan írjunk terheléses teszteseteket
A terheléses tesztelés megtanulása még a tapasztalt szoftveres szakemberek számára is ijesztőnek tűnhet, de ez sokkal egyszerűbb, mint sokan gondolnák.
Az irányadó dokumentum létrehozása a terhelési teszteset kidolgozásának első lépése. A terhelési tesztelési tervnek nem kell bonyolultnak lennie, akár egy felsorolás is hasznos lehet, de a teszt lényeges összetevőit a kezdetektől a végéig fel kell vázolnia.
Győződjön meg arról, hogy a terhelési tesztelési terv a következő elemeket tartalmazza:
1. Célok és követelmények
Miért végzi ezt a vizsgálatot? Milyen konkrét mérőszámokat tesztel, és milyen eredmények határozzák meg, hogy milyen típusú választ adjon a termeléssel kapcsolatban?
2. Határok
Írja le a rendszer vagy a böngésző terheléses tesztelésének hatókörét. Komponenstesztet vagy végponttól végpontig tartó tesztet végez? Milyen forgalmi terhelést tesztel (csúcs, normál vagy valami más)?
A hatókör változhat a teszt során, különösen, ha váratlan eseménybe ütközik. Kezdetben azonban még mindig világos tesztelési határokat kell meghatározni.
3. Munkaterhelés
Részleteznie kell a terhelési profilját, amely a következőkből áll:
- Kulcsfontosságú tranzakciók
- Terheléseloszlás tranzakciónként
- A tranzakció időzítése
A terhelési profil/munkaterhelési modell kidolgozása vitathatatlanul a terhelési tesztelés legfontosabb eleme, mivel ez határozza meg, hogy a teszt mennyire tükrözi a rendszer viselkedését a valódi felhasználók súlya alatt. Ne feledkezzen meg a böngészőterhelési tesztelésről, mivel nem tudhatja, hogy a látogatók milyen böngészőt fognak használni.
4. Kiszolgáló egészségi állapota
Írja le a szerverek tesztelés alatti felügyeletére vonatkozó tervét. Mindkét alkalmazáskiszolgálót és a terheléses tesztek futtatásához használt kiszolgálókat is figyelnie kell (bár ez utóbbi jellemzően nem jelent komolyabb problémát a vállalati terheléses tesztelési eszközök használata esetén).
5. Tesztelési forgatókönyv
Végezetül írja le a tesztforgatókönyvet, amely a tesztesetek sorozatának végrehajtására vonatkozó átfogó terv.
6. Példák terhelési tesztesetekre
Néhány általános példa a vállalati szinten használt esetekre:
- API-terhelési tesztelés annak megállapítására, hogy a fizetések feldolgozása két perc alatt történik-e egy harmadik fél rendszerén keresztül.
- Böngésző-terhelési tesztelés annak megállapítására, hogy a felhasználók a böngészőjük alapján 10 másodpercnél nagyobb eltérést tapasztalnak-e a betöltési sebességben.
- Egy komponens tesztje egy új webhelyfunkció funkcionalitására, amikor csúcsforgalom idején használják.
Vegye észre, hogy a fenti forgatókönyvek világosan meghatározott célokkal, határokkal és mérőszámokkal rendelkeznek.
Terhelésvizsgálati eszközök
A vállalati szervezetek néha házon belüli terhelésvizsgálati eszközöket fejlesztenek, de ez egy olyan folyamat, amely időt és befektetést igényel, így inkább hosszú távú stratégiát jelent. Míg az egyéni eszközök kifejlesztése folyamatban van, a szervezetnek ingyenes vagy vállalati automatizált terhelésvizsgálati eszközökhöz kell fordulnia.
A szervezeteket arra ösztönzik, hogy gondosan válasszák ki a terhelésvizsgálati eszközeiket, még akkor is, ha csak ideiglenesen tervezik használni őket. Nem ritka, hogy a vállalati vagy nyílt forráskódú weboldal-terheléstesztelő eszközök minden szükséges megoldást biztosítanak, így nincs szükség házon belüli verzió kifejlesztésére.
1. Ingyenes terhelésvizsgálati eszközök
Sok szervezet először a nyílt forráskódú tesztelési eszközöket veszi fontolóra. A lehetőségekből nincs hiány, többek között a következőkből:
- JMeter – A vállalati LoadRunner eszközön alapuló Java alkalmazás.
- Taurus – Egy eszköz, amely lehetővé teszi, hogy saját terheléses teszteket írjon.
- k6 – A back-end infrastruktúrára összpontosító terheléstesztelő eszköz, amely tapasztalt fejlesztők számára készült.
- SoapUI – A SoapUI terheléses teszt a Simple Object Access Protocol protokollt használja. Az alkalmazás kereskedelmi változata is elérhető.
- Locust – Egy terheléstesztelő eszköz, amely viszonylagos felhasználóbarátságáról és csekély erőforrásigényéről ismert.
- A ZAPTEST FREE Edition költségmentes teljesítménytesztelést kínál a LOAD Studio segítségével, ahol a felhasználók rögzített és API-alapú szkripteket használhatnak, és akár funkcionális teszteléssel is korrelálhatnak.
Bár a nyílt forráskódú tesztelési eszközöknek nincs közvetlen pénzügyi költsége, a választásuk mégis jelentős elkötelezettséget jelent bármely vállalkozás számára, ezért fontos, hogy megértsük mind az előnyöket, mind a lehetséges hátrányokat.
Az ingyenes terhelésvizsgálati eszközök előnyei
Az ingyenes terhelésvizsgálati eszközöknek számos figyelemre méltó előnye van.
1. Alacsony költség
A nyílt forráskódú szoftverek legnagyobb előnye, hogy ingyenesek. A vállalatok, különösen a korlátozott erőforrásokkal rendelkező újabb vállalatok, pénzügyi kötelezettségvállalás nélkül is végezhetnek terheléses teszteket.
2. Rugalmasság
A nyílt forráskódú szoftvereket a közösség gyakran felülvizsgálja, frissíti és javítja. Ha speciális tesztelési igényei vannak, létezhetnek bővítmények.
3. Gyorsabb frissítések
A nyílt forráskódú szoftverek általában gyorsabban fejlődnek, mint a kereskedelmi szoftverek. A hibajavítások, biztonsági frissítések, új funkciók és egyebek általában egyenletesebb és gyorsabb ütemben jelennek meg.
Az ingyenes terhelésvizsgálati eszközök korlátai
Míg az ingyenes terhelésvizsgálati eszközök jelentős előnyökkel járnak, a vállalatoknak figyelembe kell venniük a lehetséges hátrányokat.
1. Támogatás hiánya
Ha a felhasználó bármilyen problémába ütközik a nyílt forráskódú terhelésvizsgálati szoftver használatával, akkor a választ saját maga kell megtalálnia a közösségi alapú források, például fórumok és wikik segítségével. A vállalati szoftverekkel ellentétben az ingyenes eszközöknél nincs külön támogató csapat, amelyet felhívhat vagy e-mailben értesíthet.
2. Komplexitás
A felhasználóbarát működés nem mindig kiemelt fontosságú a nyílt forráskódú terhelésvizsgálati szoftverek esetében. Sok alkalmazás feltételezi, hogy a felhasználó meglehetősen kifinomult fejlesztési ismeretekkel rendelkezik. A nyílt forráskódú szoftverek terheléses tesztelésének megtanulása általában nehéz.
3. Felhasználói terhelési korlátozások
A nyílt forráskódú tesztelési szoftverek gyakran ütköznek memória- és CPU-problémákba, amikor nagy kapacitású terheléses teszteket futtatnak. A vállalati szintű vállalatok úgy találhatják, hogy az ingyenes terheléses tesztelés egyszerűen nem elég erős az igényeikhez.
Vállalati terhelésvizsgálati eszközök
A vállalati tesztelési eszközök olyan fizetős termékek, amelyeket a nagy és összetett szervezetek igényeihez terveztek. Ezek gyakran előfizetéses alapúak, és az árak a szimulált felhasználók számának és más tesztelési sajátosságoknak felelnek meg.
Számos vállalati terheléstesztelő cég közül választhat, de a vezető vállalkozás a ZAPTEST, a hiperautomatizálási tér egyik vezetője, a ZAPTEST az egyik legjobb terheléstesztelő eszközként ismert a felhasználóbarát szoftver és a korlátlan támogatási hozzáférés miatt.
A vállalati terheléstesztelő vállalatok által kínált minőség és funkciók jelentősen eltérhetnek, ezért a szervezeteket arra ösztönzik, hogy alaposan mérlegeljék az egyes szolgáltatókat, mielőtt előfizetnének.
A vállalati tesztelési eszközök előnyei
Bár a konkrét funkciók és a könnyű kezelhetőség az adott terméktől függően változnak, a legjobb terhelésvizsgálati eszközök a következő előnyökkel rendelkeznek.
1. Könnyű használat
A nyílt forráskódú szoftverek felhasználói felülete zavaros, a folyamatok bonyolultak és a felhasználóval szemben általában közömbösek. A vállalati eszközök azonban az intuitív, egyszerű használatra helyezik a hangsúlyt.
2. Ügyfélszolgálat
A vállalati tesztelés egyik fő előnye a képzett támogatás elérhetősége. Nemcsak a terhelésvizsgálatban, hanem a saját terhelésvizsgálójának sajátosságaiban képzett szakértők is készen állnak arra, hogy segítsenek megoldani a problémákat. Egy vállalati szolgáltatásnak a nap 24 órájában elérhető ügyfélszolgálata lesz.
3. Megbízhatóság
A vállalati tesztelési eszközöket úgy tervezték, hogy támogassák a nagyszabású tevékenységet folytató vállalatokat, ahol bármilyen leállás jelentős bevételkiesést és ügyfélelégedettség csökkenést eredményezhet. Ezek az eszközök úgy vannak kialakítva, hogy hosszú távú tervezésre és döntéshozatalra alkalmas, használható, pontos adatokat szolgáltassanak.
A vállalati tesztelési eszközök korlátai
Míg a vállalati tesztelési eszközök számos előnyt kínálnak más típusokkal szemben, néhány lehetséges korlátot is tartalmaznak.
1. Költségek
A legnagyobb hátránya a költség. A vállalati terheléses tesztelés előfizetéses modellben működik, és a költségek a teszt során létrehozott virtuális felhasználók számának megfelelően alakulnak.
Végső soron a szűk keresztmetszetek eltávolítása és az alkalmazás leállásának megakadályozása idővel költséghatékonyabbá teszi a terheléses tesztelést, de a szervezetnek még mindig jelentős előzetes költségek merülhetnek fel. Ezzel szemben az olyan bevált terhelésvizsgálati csomagok, mint a ZAPTEST, egy fix költségű szoftver+szolgáltatás előfizetést kínálnak korlátlan felhasználással és licencekkel… ez a modell enyhíti a vállalatok méretének növekedésével folyamatosan növekvő tesztelési költségeket.
2. Tanulási görbe
Bár a vállalati eszközök messze a legfelhasználóbarátabb lehetőség a terhelés tesztelésére, még a legjobb terhelés tesztelési eszközök is rendelkeznek legalább egy kis tanulási görbével. A csapattagoknak, ideális esetben a kódolási tapasztalattal rendelkezőknek, időt kell szánniuk arra, hogy megtanulják, hogyan lehet az eszközt maximálisan kihasználni. A vezető terhelésvizsgálati eszközök, mint a ZAPTEST, ismét enyhítik ezt a hátrányt azáltal, hogy alacsony kódú platformot biztosítanak, amely nem igényel kódolási készségeket, és a legtöbb ember használhatja a szervezeten belül, nem csak a fejlesztők.
Mikor érdemes vállalati és mikor ingyenes terhelésvizsgálati eszközöket használni?
Az ingyenes terhelésvizsgálati eszközöknek sok szervezetben van helyük. Ezek a legköltséghatékonyabb megoldás, ezért népszerűek az induló vállalkozások és más, korlátozott erőforrásokkal rendelkező vállalkozások körében.
Az ingyenes eszközök szintén hatékony módja az egyén készségeinek bővítésének. Egy tesztelő például nem csak azért végezhet SoapUI terhelési tesztet, hogy tesztelje a rendszert, hanem azért is, hogy jobban megértse a nyílt forráskódú eszközt.
A legtöbb kereskedelmi alkalmazás és nagyméretű szervezet számára a legjobb terheléstesztelő eszközök a vállalati szintű termékek, mint például a ZAPTEST és hasonló iparági vezetők. Megbízhatóságot, pontosságot és biztonságot nyújtanak, amelyek mind a vállalatot, mind a végfelhasználókat védik. Ráadásul sokkal könnyebben használhatóak, mint az ingyenes eszközök, és páratlan szintű funkcionalitást biztosítanak.
Terhelésvizsgálat ellenőrzőlista
A sikeres terheléses tesztelés egyik alapvető kulcsa a szervezés. Sok vállalkozás úgy találja, hogy a tesztelés ellenőrzőlistával történő működtetése segít a csapatoknak a feladatban maradni. Az alábbi ellenőrző lista jól használható kiindulási pontként a vállalati szintű szervezetek számára.
1. Webkiszolgáló
- Van elegendő sávszélesség a szűk keresztmetszetek elkerülésére?
- Elég tranzakciót tud kezelni a rendszer másodpercenként?
- Van elég webkiszolgálója a foglalt és üresjárati fenyegetések kezeléséhez?
2. Gazdálkodó
- A hálózati interfészek CPU-, memória- vagy lemezterület-problémákkal küzdenek?
- Milyen folyamatok futnak a gazdaállomáson?
3. Alkalmazás-kiszolgáló
- Mekkora CPU-használatra van szükség az egyes terhelési szintekhez?
- A rendszer különböző terhelési szinteken szivárog a memória?
- Az alkalmazáskiszolgálók megfelelően osztják el a terhelést?
Bár az ellenőrző listát a szervezet egyedi igényeihez kell igazítani, ezek az alapelemek segítenek biztosítani, hogy a rendszer teljesítményének és működésének kritikus szempontjait lefedje.
Következtetés
A terheléses tesztelés alapvető szerepet játszik bármely szoftverfejlesztési projekt sikerében. Ahhoz, hogy valóban kihasználják a terhelésvizsgálati automatizálási eszközök képességeit, a szervezeteknek partnerséget kell kialakítaniuk egy olyan vállalati szintű terhelésvizsgálati vállalattal, mint a ZAPTEST.
A terhelésvizsgálati eszközök lehetővé teszik a szervezet számára, hogy azonosítsa a lehetséges szolgáltatási zavarokat és szűk keresztmetszeteket, ami maximalizált hatékonyságot, csökkentett állásidőt, nagyobb bevételt és jobb felhasználói élményt eredményez.