what is scalability testing
Úvod do testování škálovatelnosti:
Scalability Testing je nefunkční testovací metodika, ve které se měří výkon aplikace z hlediska její schopnosti škálovat nebo snižovat počet požadavků uživatelů nebo jiných atributů měření výkonu.
Testování škálovatelnosti lze provádět na hardwarové, softwarové nebo databázové úrovni.
Parametry použité pro toto testování se u jednotlivých aplikací liší, pro webovou stránku to může být počet uživatelů, využití CPU, využití sítě, zatímco pro webový server by to byl počet zpracovaných požadavků.
Tento výukový program vám poskytne kompletní přehled Testování škálovatelnosti spolu s jeho atributy a různými kroky při provádění testu s praktickými příklady, které vám umožní lépe pochopit koncept.
Co se naučíte:
- Testování škálovatelnosti vs Testování zátěže
- Atributy testování škálovatelnosti
- Kroky k testování škálovatelnosti aplikace
- Závěr
- Doporučené čtení
Testování škálovatelnosti vs Testování zátěže
Testování zátěže měří testovanou aplikaci při maximálním zatížení, při kterém by došlo k selhání systému. Hlavním účelem zátěžového testování je identifikovat špičkový bod, po kterém by uživatelé nebyli schopni systém používat.
Zátěž i škálovatelnost spadají pod metodiku testování výkonu.
Škálovatelnost se od testování zátěže liší v tom, že test škálovatelnosti měří systém při minimálním a maximálním zatížení na všech úrovních, včetně úrovní softwaru, hardwaru a databáze. Jakmile je zjištěno maximální zatížení, musí vývojáři odpovídajícím způsobem reagovat, aby zajistili, že bude systém po určitém zatížení škálovatelný.
Příklad: Pokud testování škálovatelnosti určí maximální zatížení na 10 000 uživatelů, pak aby byl systém škálovatelný, musí vývojáři přijmout opatření týkající se faktorů, jako je zkrácení doby odezvy po dosažení limitu 10 000 uživatelů nebo zvětšení velikosti paměti RAM, aby se přizpůsobila rostoucímu uživatelskému datu.
Otázky a odpovědi k rozhovorům s webovými službami pro zkušené v Javě
Testování zátěže zahrnuje maximální zatížení vyvíjených aplikací najednou, zatímco testování škálovatelnosti zahrnuje postupné zvyšování zátěže po určitou dobu.
Testování zatížení určuje bod, ve kterém dojde k chybě aplikace, zatímco škálovatelnost se pokusí identifikovat důvod selhání aplikace a podniknout kroky k vyřešení problému.
Stručně řečeno, Testování zátěže pomáhá identifikovat problémy s výkonem, zatímco testování škálovatelnosti pomáhá zjistit, zda se systém může škálovat až na rostoucí počet uživatelů.
Atributy testování škálovatelnosti
Atributy testu škálovatelnosti definují měřítka výkonu, na jejichž základě bude toto testování provedeno.
Následuje několik běžných atributů:
1) Doba odezvy:
- Čas odezvy je čas mezi požadavkem uživatele a odpovědí aplikace. Toto testování se provádí k identifikaci doby odezvy serveru při minimálním zatížení, prahovém zatížení a maximálním zatížení k identifikaci bodu, ve kterém by se aplikace přerušila.
- Doba odezvy se může zvýšit nebo snížit na základě měnícího se zatížení uživatele aplikací. V ideálním případě by se doba odezvy aplikace snížila, protože by se stále zvyšovalo zatížení uživatele.
- Aplikaci lze považovat za škálovatelnou, pokud může poskytovat stejnou dobu odezvy pro různé úrovně zatížení uživatele.
- V případě klastrovaných prostředí, kde je zatížení aplikace distribuováno mezi více serverových komponent, musí testování škálovatelnosti měřit rozsah, v jakém nástroj pro vyrovnávání zatížení distribuuje zatížení mezi více serverů. Tím zajistíte, že jeden server nebude přetížen požadavky, zatímco druhý server bude nečinně čekat, až přijde požadavek.
- Je-li aplikace hostována v klastrovaném prostředí, musí být pečlivě změřena doba odezvy každé serverové komponenty a testování škálovatelnosti musí zajistit, aby doba odezvy každé serverové komponenty byla stejná bez ohledu na množství zátěže umístěné na každém serveru.
- Příklad: Čas odezvy lze měřit jako čas, kdy uživatel zadá adresu URL ve webovém prohlížeči do doby, do které webové stránce trvá načtení obsahu. Čím kratší bude doba odezvy, tím vyšší bude výkon aplikace.
2) Propustnost:
- Propustnost je měřítkem počtu požadavků zpracovaných aplikací za jednotkový čas.
- Výsledek propustnosti se může u jednotlivých aplikací lišit. Pokud se jedná o webovou aplikaci, propustnost se měří z hlediska počtu požadavků uživatelů zpracovaných za jednotku času a pokud se jedná o databázi. propustnost se měří z hlediska počtu dotazů zpracovaných v jednotkovém čase.
- Aplikace je považována za škálovatelnou, pokud může poskytovat stejnou propustnost pro různé úrovně zatížení interních aplikací, hardwaru a databáze.
3) Využití CPU:
- Využití CPU je měřítkem využití CPU pro provedení úkolu aplikací. Využití CPU se obvykle měří v jednotkách MegaHertz.
- V ideálním případě, čím optimalizovanější je aplikační kód, tím menší bude pozorování využití CPU.
- Aby toho bylo dosaženo, mnoho organizací používá standardní programovací postupy k minimalizaci využití CPU.
- Příklad: Odstranění mrtvého kódu v aplikaci a minimalizace použití vlákna. Metody spánku jsou jedním z nejlepších programovacích postupů pro minimalizaci využití CPU.
4) Využití paměti:
- Využití paměti je míra paměti spotřebované pro provedení úkolu aplikací.
- V ideálním případě se paměť měří v bajtech (MegaBytes, GigaBytes nebo Tera Bytes), které vyvinutá aplikace používá k přístupu do paměti Random Access Memory (RAM).
- Využití paměti aplikace lze minimalizovat dodržováním nejlepších postupů programování.
- Příkladem osvědčených programovacích postupů by bylo nepoužívat nadbytečné smyčky, snižovat počet zásahů do databáze, používat mezipaměť, optimalizovat použití dotazů SQL atd. Aplikace se považuje za škálovatelnou, pokud minimalizuje využití paměti na v maximální možné míře.
- Příklad: Pokud v úložném prostoru, který je k dispozici pro zadaný počet uživatelů, dojde nedostatek paměti, bude vývojář nucen přidat další úložiště databáze, aby kompenzoval ztrátu dat.
5) Využití sítě:
- Využití sítě je množství šířky pásma spotřebované testovanou aplikací.
- Cílem využití sítě je snížit přetížení sítě. Využití sítě se měří jako počet bajtů přijatých za sekundu, rámců přijatých za sekundu, segmentů přijatých a odeslaných za sekundu atd.
- Programovací techniky, jako je použití kompresních technik, mohou pomoci snížit přetížení a minimalizovat využití sítě. Aplikace je považována za škálovatelnou, pokud může fungovat s minimálním zahlcením sítě a poskytovat vysoký výkon aplikace.
- Příklad: Místo sledování mechanismu fronty pro zpracování požadavků uživatele může vývojář napsat kód pro zpracování požadavků uživatele, jakmile a když požadavek dorazí do databáze.
Kromě těchto parametrů existuje několik dalších méně používaných parametrů, jako je doba odezvy na požadavek serveru, čas provedení úlohy, čas transakce, čas načítání webové stránky, čas načtení odpovědi z databáze, čas restartu, čas tisku, čas relace, přechod obrazovky , transakce za sekundu, zásahy za sekundu, požadavky za sekundu atd.
Atributy pro testování škálovatelnosti se mohou u jednotlivých aplikací lišit, protože měřítko výkonu u webových aplikací nemusí být stejné jako u desktopové aplikace nebo aplikace typu klient-server.
jak otevřít soubory swf na chromu
Kroky k testování škálovatelnosti aplikace
Hlavní výhodou provádění tohoto testování v aplikaci je pochopení chování uživatele při dosažení maximálního zatížení a způsoby jeho řešení.
Toto testování také umožňuje testerům identifikovat degradaci a dobu odezvy na straně serveru s ohledem na zatížení uživatele aplikace. Výsledkem je, že toto testování je preferováno několika organizacemi po celém světě.
Níže je uveden seznam kroků k testování škálovatelnosti aplikace:
- Vytvořte opakovatelné testovací scénáře pro každý z atributů testování škálovatelnosti.
- Vyzkoušejte aplikaci na různé úrovně zatížení, jako je nízké, střední a vysoké zatížení, a ověřte chování aplikace.
- Vytvořte testovací prostředí, které je dostatečně stabilní, aby vydrželo celý testovací cyklus škálovatelnosti.
- Nakonfigurujte hardware nezbytný k provedení tohoto testování.
- Definujte sadu virtuálních uživatelů pro ověřování chování aplikace při různém zatížení uživatelů.
- Opakujte testovací scénáře pro více uživatelů za různých podmínek změn interních aplikací, hardwaru a databáze.
- V případě klastrovaného prostředí ověřte, zda nástroj pro vyrovnávání zatížení směruje požadavky uživatelů na více serverů, abyste zajistili, že žádný server není přetížen řadou požadavků.
- Proveďte testovací scénáře v testovacím prostředí.
- Analyzujte generované zprávy a ověřte oblasti zlepšení, pokud existují.
Závěr
Ve zkratce,
=> Testování škálovatelnosti je nefunkční metodika testování, která ověřuje, zda se aplikace může zvětšit nebo zmenšit na různé atributy. Atributy použité pro toto testování se budou u jednotlivých aplikací lišit.
=> Hlavním cílem tohoto testování je zjistit, kdy se aplikace začne zhoršovat při maximálním zatížení, a podniknout patřičné kroky k zajištění toho, aby vyvinutá aplikace byla dostatečně škálovatelná pro přizpůsobení se změnám interních aplikací, softwaru, hardwaru a také databáze změny v budoucnosti.
=> Pokud je toto testování provedeno správně, lze ve vyvinutých aplikacích odhalit hlavní chyby týkající se výkonu softwaru, hardwaru a databáze.
=> Hlavní nevýhodou tohoto testování by bylo jeho omezení ukládání dat s omezeními na velikost databáze a vyrovnávací paměť. Omezení šířky pásma sítě také může být překážkou testování škálovatelnosti.
=> Proces testování škálovatelnosti se u jednotlivých organizací liší, protože atributy testu škálovatelnosti jedné aplikace se budou lišit od ostatních aplikací.
Doporučené čtení
- Testování zátěže s výukovými programy HP LoadRunner
- Testování výkonu vs. zátěžové testování vs. zátěžové testování (rozdíl)
- Rozdíl mezi stolním počítačem, klientským serverem a webovým testováním
- Testování zatížení, stresu a výkonu webových aplikací pomocí WAPT
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Průvodce testováním zabezpečení webových aplikací
- Testování aplikací - do základů testování softwaru!
- Instalace aplikace na zařízení a zahájení testování z Eclipse