Definování zátěžových testů na základě klíčových toků uživatelů
Zátěžové testování je důležitou součástí průběžného ověřování. Abyste mohli začít, musíte identifikovat toky aplikací. V této lekci se dozvíte o tocích uživatelů a systémů, o tom, proč jsou důležité, a o kritériích návrhu pro testy.
Co jsou toky aplikací?
Tok se skládá z interakcí aplikací potřebných k dokončení úlohy.
Tok uživatele
Tyto toky označují, jak uživatelé pracují s vaší aplikací. Ve scénáři Contoso Shoes je proces rezervace pro nákup položek příkladem toku uživatele. Má tyto komponenty, které se účastní správy inventáře:
- Front-endová webová aplikace
- Logika rezervace ve službě Azure Functions
- Back-endová databáze ve službě Azure Cosmos DB
Z klíčové perspektivy musí být tyto komponenty vysoce dostupné a odolné vůči selháním. Front-endová webová stránka se například musí rychle načíst, protože organizace očekává velký počet souběžných uživatelů.
Tok systému
Tyto toky obvykle nejsou přístupné uživatelům, ale výpadek nebo snížení výkonu součástí toku systému může ovlivnit uživatelské prostředí. Systémový tok může být například asynchronní aktivita, která přebírá objednávky z databáze a generuje expediční štítky.
Poznámka:
Většina aplikací má více toků. Každý tok se může dotýkat různých součástí architektury. Komponenta se také může objevit ve více než jednom toku. Je důležité pochopit, které toky jsou ovlivněné, když komponenta selže.
Definování zátěžového testu a jeho prahových hodnot
Zátěžový test simuluje provoz z reálného světa a otestuje výkon vaší aplikace. Cílem ale není vygenerovat velké zatížení, které by přerušovalo váš systém. Tohoto cíle lze dosáhnout prostřednictvím zátěžových testů.
Zátěžový test může pomoct identifikovat výkon, limity výkonu, využití prostředků a optimální chování škálování komponent toku uživatele. Zátěžové testy by měly odrážet každý relevantní tok uživatele a tok systému. Dobrý návrh vyžaduje znalost aplikace. Začněte tím, že položíte otázky, například:
- Která volání rozhraní API je potřeba provést?
- Jaká je posloupnost volání rozhraní API?
- Jaká testovací data by se měla používat s voláními rozhraní API?
Na základě odpovědí:
Identifikujte klíčové scénáře a závislosti a nastavte cíle pro očekávané využití, dostupnost, výkon a škálovatelnost.
Definujte sadu měřitelných prahových hodnot pro kvantifikaci očekávaného výkonu klíčových scénářů. U komponenty aplikace můžete například zvážit prahové hodnoty pro očekávaný počet přihlášení uživatelů, požadavky za sekundu rozhraní API a operace za sekundu procesu na pozadí.
Pomocí prahových hodnot definujte zátěžový test, který generuje realistický provoz pro testování výkonu aplikace, ověřování očekávaných operací škálování a souvisejících aktivit. Tyto prahové hodnoty použijte k vývoji modelu stavu pro aplikaci, která pokrývá testování i produkční prostředí.
V příkladu toku procesu rezervace můžete nastavit prahovou hodnotu průměrné doby načítání stránky pro každý krok menší než 500 milisekund a podporovat až 100 souběžných uživatelů.
Teď, když jsou definované všechny prahové hodnoty, můžete implementovat zátěžové testování. Tento modul používá Azure Load Testing.
I když můžete nakonfigurovat a nasadit zátěžové testování Azure prostřednictvím webu Azure Portal, důrazně se doporučuje programový přístup. Pomocí rozhraní API můžete nasazovat, konfigurovat a spouštět testy automatizovaným způsobem. Tento přístup je popsán v další lekci.