Kontrolní seznam – testování efektivity výkonu
Je aplikace testována z hlediska výkonu, škálovatelnosti a odolnosti?
Testování výkonu pomáhá udržet správné systémy a opravovat nedostatky před problémy, které se dostanou k uživatelům v systému. je součástí pilíře efektivity výkonu v Microsoft Azure Well-Architected Framework.
Testování výkonu je nadmnožinou zátěžového i zátěžového testu. Primárním cílem testování výkonu je ověřit chování srovnávacího testu pro aplikaci.
Zátěžové testování ověřuje škálovatelnost aplikace tím, že rychle nebo postupně zvyšuje zatížení aplikace, dokud nedosáhne prahové hodnoty.
Zátěžové testování je typ negativního testování, které zahrnuje různé aktivity pro přetížení stávajících prostředků a odebírání komponent. Toto testování vám umožní pochopit celkovou odolnost proti chybám a způsob, jakým aplikace reaguje na problémy.
Použijte následující kontrolní seznam ke kontrole architektury vaší aplikace z hlediska testování výkonu.
Testování výkonu
Zajistěte, aby se na odpovědnost sdíleného týmu zajistilo plné testování výkonu. Úspěšné implementace smysluplných testů výkonu vyžadují množství prostředků. Není to jenom jeden analytik vývojářů nebo QA, který spouští některé testy na svém místním počítači. Místo toho testy výkonu potřebují testovací prostředí (označované také jako zkušební sklo), na které se testy dají provádět bez rušivého vlivu na produkční prostředí a data. Testování výkonu vyžaduje vstup a závazek od vývojářů, architektů, správců databáze a správců sítě.
Plánování kapacity. Při testování výkonu musí firma sdělit jakékoli kolísání očekávaného zatížení. Zatížení může být ovlivněno světovými událostmi, jako jsou politické, ekonomické nebo klimatické změny; marketingovými iniciativami, jako je prodej nebo propagační akce; nebo, podle sezónních událostí, jako jsou svátky. Otestujte variace zatížení před událostmi, včetně neočekávaných, abyste zajistili, že se vaše aplikace může škálovat. Kromě toho byste měli zajistit, aby se všechny oblasti mohly vhodně škálovat na podporu celkové zátěže, pokud by se jedna oblast nezdařila.
Identifikujte cestu, která je předána k využití stávajících testů, nebo vytvoření nových testů. Existují různé typy testování výkonu: zátěžové testování, zátěžové testování, testování rozhraní API, testování na straně klienta nebo prohlížeče atd. Je důležité, abyste pro zákazníka pochopili a vyjadřují různé typy testů spolu s jejich výhodami a nevýhodami.
Proveďte testování ve všech fázích v životním cyklu vývoje a nasazení. Je nutné testovat kód aplikace, automatizaci infrastruktury a odolnost proti chybám. To může zajistit, že aplikace bude v každé situaci fungovat podle očekávání. Chcete-li zachytit a opravit chyby, budete chtít v životním cyklu aplikace dostatečně brzy otestovat. Chyby jsou levnější pro opravy, když jsou zachyceny v rané fázi a mohou být nákladné nebo nemožné později opravit. Další informace najdete v referenčních informacích k testování aplikace a prostředí Azure.
Vyhněte se nedostatečnému výkonu při testování. Dvě podsady testování výkonu, zátěžové testování a zátěžové testování mohou určit horní limit a maximální bod selhání kapacity aplikace. Prováděním těchto testů můžete určit nezbytnou infrastrukturu pro podporu předpokládaných úloh.
Naplánujte vyrovnávací paměť pro načtení tak, aby vyhovovala náhodným špičkám bez přetížení infrastruktury. Například pokud normální zatížení systému je
100,000požadavky za sekundu, infrastruktura by měla podporovat100,000žádosti na80%celkovou kapacitu (například125,000požadavky za sekundu). Pokud očekáváte, že aplikace bude nadále tolerovat100,000požadavky za sekundu a aktuální SKU (skladové jednotky) zavádí latenci v65,000požadavcích za sekundu, bude pravděpodobně nutné upgradovat produkt na další vyšší skladovou položku. Pokud existuje sekundární oblast, budete muset zajistit, aby podporovala i vyšší SKU.Testovací převzetí služeb při selhání ve více oblastech. Otestuje dobu, kterou by uživatelé museli přesměrovat do spárované oblasti tak, aby se oblast nezdařila. Plánované testovací převzetí služeb při selhání obvykle může pomoci určit, kolik času by vyžadovalo úplné škálování pro podporu přesměrovaného zatížení.
Nakonfigurujte prostředí na základě výsledků testování pro udržení efektivity výkonu. Horizontální navýšení nebo snížení kapacity pro zvládnutí nárůstu zatížení a snížení zátěže. Můžete například zjistit, že se během dne a nízké úrovně na víkendech setkáte s vysokými nároky na provoz. Můžete nakonfigurovat prostředí tak, aby se načetlo do horizontálního navýšení nebo snížení kapacity, než se ve skutečnosti změní zatížení.
Testovací nástroje
V závislosti na typu testování výkonu, který se pokoušíte spustit, vyberte testovací nástroje. Pro DevOps jsou k dispozici různé nástroje pro testování výkonu. Některé nástroje, jako je
JMeterpouze testování koncových bodů a testy stavů http. Jiné nástroje, například K6 a selen, mohou provádět testy, které také kontrolují kvalitu a variaci dat. Application Insights, přestože není nutně navržena pro testování zatížení serveru, může testovat výkon aplikace v prohlížeči uživatele.Proveďte profilaci výkonu a zátěžové testování během vývoje, jako součást testovacích rutin a před finální verzí, abyste zajistili, že aplikace funguje a bude podle potřeby škálovaná. Toto testování by se mělo provádět na stejném typu hardwaru jako produkční platforma a se stejnými typy a množstvím dat a uživatelským zatížením, když k němu dojde v produkčním prostředí.
Určete, jestli je lepší používat automatizované nebo ruční testování. Testování může být automatizované nebo ruční. Automatizace testů je nejlepším způsobem, jak zajistit, aby byly provedeny. V závislosti na tom, jak často jsou testy prováděny, jsou obvykle omezeny na dobu trvání a rozsah. Ruční testování se spouští mnohem méně často.
Data v mezipaměti pro zlepšení výkonu, škálovatelnosti a dostupnosti. Větší množství dat, které máte, se stane tím, že se tím zvýší výhoda ukládání do mezipaměti. Ukládání do mezipaměti obvykle funguje dobře s daty, která jsou neměnná nebo se mění zřídka.
Rozhodněte se, jak budete zpracovávat místní vývoj a testování, když se očekává, že některý statický obsah bude obsluhován ze sítě pro doručování obsahu (CDN). Můžete například obsah předem nasadit do CDN jako součást skriptu sestavení. Místo toho použijte direktivy nebo příznaky kompilace pro řízení, jak aplikace načítá prostředky. Například v režimu ladění může aplikace načítat statické prostředky z místní složky. V režimu vydání by aplikace využila CDN.
Simulujte různé úlohy v aplikaci a změřte výkon aplikací pro jednotlivé úlohy. Tato technika je nejlepším způsobem, jak zjistit, jaké prostředky budete potřebovat k hostování vaší aplikace. Použijte indikátory výkonu k vyhodnocení, jestli vaše aplikace funguje podle očekávání nebo ne.
Doporučení
Definujte strategii testování. Další informace najdete v referenčním testování.