Miroslav Renda
Senior Test Manager
Blog
Miroslav Renda
Senior Test Manager
Objevte sedm nejdůležitějších typů testování výkonnosti! V nejnovějším článku zjistíte, proč je testování výkonnosti nezbytné a s jakými typy testů výkonnosti se na projektech nejčastěji setkáváme. Navíc se dozvíte, jaké jsou jejich klíčové benefity a jaké nástroje se vám budou k testování hodit.
Testování výkonnosti vyhodnocuje kvalitu systému měřením toho, jak dobře si vede ve srovnání s definovaným výkonnostními požadavky (non-functional requirements). Když říkáme „systém“, máme na mysli jakoukoli kombinaci HW a SW komponent. Tento typ testování se zaměřuje na klíčové metriky, jako jsou rychlost zpracování, rychlosti přenosu dat, využití sítě, počet uživatelů, které systém zvládne najednou obsloužit, využití paměti a celkovou efektivitu. Hlavním cílem je posoudit požadavky na výkonnost systému, nikoli hledat defekty ve funkčnosti systému.
Testování výkonnosti je klíčovým krokem v procesu vývoje IT systémů. Poté, co je systém navržen a vyvinut, musí splňovat určitá kritéria výkonnosti. Testování výkonnosti tedy napomáhá tomu, že systém je připraven pro komerční nasazení a má očekávanou úroveň kvality.
Testování výkonnosti je nezbytné, protože poskytuje cenné informace o škálovatelnosti, spolehlivosti a odolnosti aplikace. Nicméně vytvoření účinné strategie může být náročné, protože zahrnuje různé specializované typy testů, které je třeba aplikovat specifickým způsobem.
V našich testovacích projektech kombinujeme následující typy testů výkonnosti:
Zátěžové testování hodnotí výkonnost systému při specifikované typické zátěži systému, aby bylo zajištěno, že systém zvládne reálné požadavky bez pádu nebo zpomalení. Tento typ testování je klíčový pro webové stránky, webové aplikace a další softwarové aplikace.
Testování nového e-commerce systému probíhá po dobu 5 minut, přičemž jsou simulovány 3 typické scénáře užití současně. Scénář A provádí 50 souběžných virtuálních uživatelů (VUs), scénář B provádí 120 VUs a scénář C provádí 80 VUs. Počty souběžných virtuálních uživatelů jsou výsledkem analýzy typického provozu, který aktuální systém zvládá.
Stresové testování hodnotí schopnost systému zvládnout extrémní podmínky. Na rozdíl od zátěžového testování, které hodnotí výkonnost systému při typické zátěži, stresové testování simuluje zatížení systému nad rámec běžných provozních podmínek, aby bylo zjištěno, jak reaguje v kritických situacích.
Podoba generované zátěže je podobná jako v příkladu pro zátěžové testování. Pouze počet souběžných virtuálních uživatelů může být násobně vyšší ve srovnání s hodnotami použitými při zátěžovém testování.
Tento typ testu hodnotí výkonnost systému při dlouhodobém, nepřetržitém provozu, aby byly odhaleny problémy, které by se nemusely objevit během kratších stresových nebo zátěžových testů.
I zde je základní průběh generované zátěže podobný jako při zátěžovém testu, přičemž počet virtuálních uživatelů použitých pro jednotlivé scénáře je např. jedna desetina těch, které byly použity pro zátěžový test. Doba trvání testu ale bude prodloužena na 48 hodin.
Tento typ testu hodnotí schopnost systému zvládat náhlé a významné nárůsty zátěže v provozu. Zaměřuje se na zjištění reakce systému na náhlé zátěžové špičky, například když se webová stránka stane virální nebo aplikace náhle zaznamená velký příliv uživatelských interakcí z jiných příčin.
Základní vzorec zátěže může být podobný jako při zátěžovém testu. Po 2 minutách generování základního průběhu zátěže se počet virtuálních uživatelů pro scénář B náhle ztrojnásobí s krokem 10 nových VU za sekundu. Po dosažení cílového počtu VU bude tento počet udržován po dobu 20 sekund a poté se vrátí zpět k normální zátěži po zbytek testu.
Testování škálovatelnosti hodnotí schopnost systému zvládat narůstající pracovní zátěž, ať už jde o zvýšení počtu uživatelů nebo objemu transakcí. Tento typ testování je zásadní pro ověření hranice zátěže, do jaké je systém schopen plnit definované výkonnostní parametry.
Základní vzor zátěže může být podobný jako při zátěžovém testu. Test začne s jednou desetinou současných virtuálních uživatelů definovaných pro zátěžový test. Po 40 sekundách testu se počet virtuálních uživatelů zvýší o jednu desetinu. Toto postupné zvyšování bude pokračovat až do n-násobku typické zátěže.
Tento typ testování hodnotí schopnost systému zvládat velké objemy dat. Je zásadní při testování databází a dalších systémů náročných na data, aby bylo zajištěno, že budou schopné zpracovat velký objem dat.
Systém je navržen pro dávkové zpracování vstupních CSV souborů. Během testování objemu dat zkoušíme chování systému s různými velikostmi CSV souborů a různým počtem současně probíhajících transakcí (pokud je to relevantní). Během testu hodnotíme funkcionální chování systému (správnost zpracování dat) a měříme dobu zpracování.
Testování souběžnosti hodnotí schopnost systému zvládat více operací nebo transakcí současně. Je klíčové pro pochopení, jak si systém vede, když s ním současně interaguje více uživatelů, zejména když transakce „soutěží“ o stejné zdroje. Toto testování zajišťuje, že systém dokáže efektivně zpracovávat souběžné operace bez degradace výkonu, poškození dat nebo selhání.
Systém je navržen tak, aby zvládal více uživatelů zadávajících objednávky současně. Během testování souběžnosti simulujeme různé scénáře, kdy více uživatelů současně provádí transakce, jako je přidávání položek do košíku, dokončení plateb a kontrola stavu objednávek. Hodnotíme chování systému za těchto podmínek, se zaměřením na přesnost transakcí, integritu dat a dobu odezvy, abychom zajistili, že systém bude spolehlivě fungovat bez chyb nebo zpomalení.
V současné době existuje na trhu hned několik kvalitních nástrojů, které vám mohou pomoci vyhodnotit výkonnost a škálovatelnost aplikací. Představme alespoň některé z nejčastěji používaných nástrojů.
Apache JMeter je open-source nástroj, který se primárně používá pro měření výkonnosti webových aplikací, serverů a sítí. Podporuje různé protokoly jako HTTP, HTTPS, FTP a další, což z něj činí všestranný nástroj pro různé testovací scénáře.
LoadRunner, vyvinutý společností Micro Focus, je propracovaný komerční nástroj pro testování výkonnosti. Podporuje širokou škálu protokolů a dokáže simulovat tisíce virtuálních uživatelů pro testování škálovatelnosti a výkonnosti.
K6 je open-source nástroj, navržený pro moderní webové aplikace, API a mikroslužby. Je skriptovatelný v JavaScriptu, což vývojářům usnadňuje psaní testovacích scénářů.
Nástroj Locust je open-source nástroj, který umožňuje definovat chování uživatelů pomocí Python kódu, což jej činí velmi flexibilním a snadno použitelným.
Gatling je open-source nástroj navržený pro testování výkonnosti webových aplikací. Je zvláště známý pro své efektivní skriptovací schopnosti ve Scale.
Testování výkonnosti je klíčovým krokem při vývoji systému, potvrzujícím jeho kvalitu a zajišťujícím, že splňuje definované výkonnostní požadavky. Toto testování zahrnuje různé typy, jako je zátěžové, stresové testování, dále testování dlouhodobého a špičkového zatížení, testování škálovatelnostni a objemové testování. Každé z nich se zaměřuje na posouzení různých aspektů výkonnosti. Tyto testy pomáhají identifikovat potenciální problémy, což organizacím umožňuje zlepšit výkonnost, zvýšit uživatelský zážitek a zajistit, že systém zvládne nároky reálného světa.
Sledujte naše další články, ve kterých se budeme podrobněji věnovat jednotlivým typům výkonnostního testování a nabídneme vám vhledy a rady, jak efektivně optimalizovat a zlepšit výkonnost Vašich systémů.
Nenechejte si ujít nejnovější informace.
Vyplňte nám vaši e-mailovou adresu a dostávejte pravidelnou nálož informací ohledně nadcházejících školení, akcí a testingového know-how.
Chcete poradit?
Napište si o naši bezplatnou, neprodejní konzultaci zdarma. Vyplňte formulář a my se vám ozveme zpět.
Upozornění