Sdílet prostřednictvím


Doporučení pro testování výkonnosti

Platí pro toto doporučení kontrolního seznamu efektivity výkonu rozhraní Azure Well-Architected Framework:

PE:06 Test výkonu. Proveďte pravidelné testování v prostředí, které odpovídá produkčnímu prostředí. Porovnejte výsledky s výkonnostními cíli a srovnávacím testem výkonu.

Tato příručka popisuje doporučení pro testování. Testování výkonu pomáhá vyhodnotit funkčnost úlohy v různých scénářích. Zahrnuje testování doby odezvy, propustnosti, využití prostředků a stability úlohy, aby se zajistilo, že úloha splňuje její požadavky na výkon.

Testování pomáhá zabránit problémům s výkonem. Pomáhá také zajistit, aby vaše úloha splňovala své smlouvy o úrovni služeb. Bez testování výkonu může úloha zaznamenat snížení výkonu, kterému je často možné zabránit. Výkon úloh se může odchylovat od výkonnostních cílů a stanovených směrných plánů.

Definice

Období Definice
Testování chaosu Test výkonnosti, jehož cílem je otestovat odolnost a stabilitu systému záměrným zavedením náhodných a nepředvídatelných selhání nebo přerušení.
Zátěžový test Test výkonnosti, který měří výkon systému při typickém a velkém zatížení.
Standardní hodnoty výkonu Sada metrik, které představují chování úlohy za normálních podmínek ověřovaných testováním.
Zátěžový test Test výkonu, který přetěžuje systém, dokud se nerozbije.
Syntetická zkouška Test výkonnosti, který simuluje požadavky uživatelů v aplikaci.

Klíčové strategie návrhu

Testování výkonu pomáhá shromáždit měřitelná data o úloze. Když testy spouštíte dostatečně brzy, pomůžou vám také sestavovat úlohy podle správných specifikací. Testy výkonnosti byste měli provést co nejdříve v životním cyklu vývoje softwaru. Včasné testování umožňuje zachytit a opravit problémy s výkonem v dřívější fázi vývoje. Pokud produkční kód není připravený, můžete použít testování konceptu (POC).

Příprava testu

Příprava testů výkonnosti znamená nastavení a uspořádání prostředků, konfigurací a testovacích scénářů, které potřebujete k efektivnímu testování výkonnosti.

Definování kritérií přijetí

Kritéria přijetí určují požadavky na výkon, které musí úloha splňovat, aby byla považována za přijatelnou nebo úspěšnou. Definujte kritéria, která odpovídají cílům výkonu.

Zkontrolujte cíle výkonu. Cíle výkonu definují požadovanou úroveň výkonu vaší úlohy. Zkontrolujte cíle výkonu stanovené pro danou úlohu. Cíle výkonu jsou metriky, které můžou zahrnovat dobu odezvy, propustnost, využití prostředků nebo jakékoli jiné relevantní ukazatele výkonu. Například můžete mít cíl doby odezvy pod určitou prahovou hodnotou, například méně než 2 sekundy.

Definujte kritéria přijetí. Přeložte výkonnostní cíle na konkrétní kritéria přijetí, která můžete použít k vyhodnocení výkonu úloh. Předpokládejme například, že váš cíl výkonu pro dobu odezvy je 2 sekundy nebo méně. Kritériem přijetí může být průměrná doba odezvy úlohy menší než 2 sekundy. Pomocí těchto kritérií přijetí můžete určit, jestli úloha splňuje požadovanou úroveň výkonu.

Při definování kritérií přijetí je důležité zaměřit se na uživatele a jejich očekávání. Kritéria přijetí pomáhají zajistit, aby dodaná práce splňovala potřeby a požadavky uživatelů. Při začlenění perspektivy uživatele do kritérií přijetí mějte na paměti následující aspekty:

  • Požadavky uživatelů: Seznamte se s potřebami a cíli uživatelů pro úlohy. Zvažte, jak by měla úloha fungovat, aby tyto požadavky splňovala.

  • Uživatelské prostředí: Definujte kritéria přijetí, která zachycují požadované uživatelské prostředí. Zahrnují faktory, jako je doba odezvy, použitelnost, přístupnost a celková spokojenost.

  • Funkční požadavky: Řeší konkrétní funkce, které uživatel očekává v úloze. Definujte kritéria přijetí těchto funkčních požadavků, abyste zajistili jejich splnění.

  • Případy použití: Zvažte různé scénáře nebo případy použití, se kterými se uživatel může setkat. Na základě těchto případů použití definujte kritéria přijetí, abyste ověřili výkon úloh v reálných situacích.

Nastavte prahové hodnoty přijetí. Určete prahové hodnoty v rámci kritérií přijetí, která určují, jestli úloha splňuje výkonnostní cíle. Tyto prahové hodnoty definují přijatelný rozsah výkonu pro každou metriku. Předpokládejme například, že kritérium přijetí doby odezvy je kratší než 2 sekundy. Prahovou hodnotu můžete nastavit na 2,5 sekundy. Tato úroveň znamená, že jakákoli doba odezvy delší než 2,5 sekundy se považuje za problém s výkonem.

Definujte kritéria pro předávání. Určete kritéria pro určení, jestli úloha prošla nebo selhala v testu výkonnosti. Předání můžete definovat jako splnění všech kritérií přijetí nebo dosažení určitého procenta z nich.

Vyberte typ testu.

Pokud chcete vybrat správný typ testu výkonnosti, je důležité sladit test s kritérii přijetí. Kritéria přijetí definují podmínky, které je potřeba splnit, aby se požadavek nebo oprava chyby považovala za provedenou. Testy výkonnosti by se měly zaměřit na ověření, jestli úloha splňuje tato kritéria přijetí a za zadaných podmínek funguje podle očekávání. Sladění typu testu výkonnosti s kritérii přijetí pomáhá zajistit, aby se test zaměřil na splnění výkonnostních očekávání, která tato kritéria definují.

  • Seznamte se s kritérii přijetí. Projděte si kritéria přijetí požadavku nebo opravy chyby. Kritéria popisují konkrétní podmínky a funkce, které je třeba splnit.

  • Identifikace relevantních metrik výkonu Na základě kritérií přijetí určete metriky výkonu, které jsou důležité pro dosažení požadovaných výsledků. Pokud se například kritéria přijetí zaměřují na dobu odezvy, může být vhodné určit prioritu zátěžového testování.

  • Vyberte odpovídající typ testu. Vyhodnoťte dostupné typy testů a zvolte ten, který nejlépe odpovídá identifikovaným metrikám výkonu a kritériím přijetí.

Následující tabulka obsahuje vzorek typů testů a jejich případů použití.

Typ testu Description Případ použití
Zátěžové testování Simulace realistických uživatelských zatížení za účelem měření výkonu úloh při očekávaných zatíženích ve špičce Určuje odolnost proti zatížení.
Zátěžové testování Posouvejte úlohu nad rámec běžných limitů, identifikujte její zásadní body a změřte její schopnost obnovení. Určuje odolnost a odolnost.
Zátěžové testování (zátěžové testování) Spusťte úlohu pod trvalým vysokým zatížením po delší dobu, abyste zjistili, že došlo ke snížení výkonu, nevracení paměti nebo problémům s prostředky. Vyhodnocuje stabilitu a spolehlivost v průběhu času.
Testování špičkou Simulace náhlého zvýšení uživatelského zatížení za účelem posouzení toho, jak vaše úloha zvládá náhlé změny v poptávce Měří schopnost škálovat a udržovat výkon během období špičky.
Testování kompatibility Otestujte výkon úloh na různých platformách, prohlížečích nebo zařízeních. Pomáhá zajistit konzistentní výkon v různých prostředích.

Určete prioritu vybraných typů testů na základě charakteristik a požadavků vaší úlohy. Vezměte v úvahu faktory, jako je důležitost metrik výkonu, očekávání uživatelů, obchodní priority a známé problémy nebo ohrožení zabezpečení.

Výběr testovacích nástrojů

Zvolte vhodné nástroje na základě typu testování výkonnosti, které chcete spustit. Vyhodnoťte infrastrukturu, prostředky a omezení testovacího prostředí. Zvolte testovací nástroje, které podporují požadované typy testů a poskytují potřebné funkce pro monitorování, měření, analýzu a vytváření sestav.

Nástroj pro monitorování výkonu aplikací (APM) poskytuje podrobné přehledy o aplikacích a je nezbytným testovacím nástrojem. Pomáhá trasovat jednotlivé transakce a mapovat jejich cesty prostřednictvím různých služeb úloh. Po testování byste měli použít nástroj APM k analýze a porovnání testovacích dat se standardními hodnotami výkonu.

K identifikaci kritických bodů výkonu v kódu použijte nástroje pro profilaci. Profilace pomáhá identifikovat oblasti kódu, které spotřebovávají nejvíce prostředků a potřebují optimalizaci. Poskytuje přehled o době provádění a využití paměti různých částí kódu.

Následující kroky vám můžou pomoct vybrat vhodné testovací nástroje:

  • Identifikace požadavků na testování Začněte tím, že pochopíte konkrétní požadavky na testování výkonnosti. Zvažte různé faktory:

    • Typ úlohy
    • Metriky výkonu, které se mají měřit, jako je doba odezvy a propustnost
    • Složitost architektury úloh
    • Testovací prostředí, například cloudové, místní nebo hybridní
  • Nástroje pro testování výzkumu. Proveďte výzkum a identifikujte nástroje pro testování výkonnosti, které odpovídají vašim požadavkům. Zvažte komerční a opensourcové nástroje, které jsou dostupné na trhu. Vyhledejte nástroje, které podporují požadované typy testování výkonnosti, jako je zátěžové testování nebo zátěžové testování, a které poskytují funkce pro měření metrik výkonu.

  • Vyhodnoťte funkce nástroje. Vyhodnoťte funkce, které každý testovací nástroj poskytuje. Hledejte funkce, jako je simulace realistického chování uživatelů a škálovatelnost pro zpracování velkých uživatelských zatížení. Zvažte podporu různých protokolů a technologií, integraci s jinými testovacími nástroji nebo architekturami a možnosti vytváření sestav a analýzy.

  • Zvažte kompatibilitu a integraci. Zjistěte kompatibilitu testovacích nástrojů se stávající infrastrukturou a technologiemi. Ujistěte se, že se nástroje dají snadno integrovat do testovacího prostředí a komunikovat s úlohami potřebnými pro monitorování a analýzu.

  • Vyhodnoťte náklady a licencování. Vyhodnoťte strukturu nákladů a licenční podmínky, které jsou přidružené k testovacím nástrojům. Vezměte v úvahu faktory, jako jsou počáteční investice, náklady na údržbu a náklady na podporu. Zvažte také další licenční požadavky, které závisí na počtu uživatelů nebo virtuálních uživatelů.

  • Provedení testování konceptu. Vyberte několik nástrojů, které se na základě vašeho hodnocení zdají být nejvhodnější. Proveďte testování konceptu v malém měřítku, abyste ověřili použitelnost, funkce a efektivitu nástrojů ve vašem konkrétním testovacím scénáři.

  • Zvažte podporu a školení. Vyhodnoťte úroveň podpory a školení, kterou poskytuje dodavatel nástroje nebo komunita. Určete dostupnost dokumentace, kurzů a kanálů technické podpory, které vám pomůžou s případnými problémy nebo problémy, které mohou během procesu testování nastat.

Vytvoření testovacích scénářů

Vytvářením testovacích scénářů se rozumí proces návrhu konkrétních situací nebo podmínek, které jsou vhodné pro testování výkonu úlohy. Testovací scénáře se vytvářejí za účelem emulace realistického chování uživatelů a vzorů úloh. Tyto scénáře poskytují testerům výkonu způsob, jak vyhodnotit výkon úloh za různých podmínek.

Testovací scénáře umožňují replikovat různé vzory úloh, jako je souběžný přístup uživatelů, období zatížení ve špičce nebo konkrétní sekvence transakcí. Testováním úlohy podle různých vzorů úloh můžete identifikovat kritické body výkonu a optimalizovat přidělování prostředků.

  • Definujte chování uživatelů. Emulovat realistické chování uživatelů a vzory úloh identifikací kroků a akcí, které uživatelé provádějí při interakci s úlohou. Zvažte aktivity, jako je přihlášení, vyhledávání, odesílání formulářů nebo přístup ke konkrétním funkcím. Jednotlivé scénáře rozdělte na konkrétní kroky a akce, které představují interakci uživatele s úlohou. Můžete zahrnout procházení stránek, provádění transakcí nebo interakci s různými prvky úlohy.

  • Určení zapojení dat Identifikujte testovací data potřebná ke spuštění testovacích scénářů. Můžete zahrnout vytváření nebo generování realistických datových sad, které představují různé scénáře, uživatelské profily nebo objemy dat. Ujistěte se, že testovací data jsou různorodá a zahrnují různé případy použití, aby bylo možné poskytovat komplexní vyhodnocení výkonu.

  • Návrh testovacích skriptů Vytvořte testovací skripty, které automatizují provádění definovaných testovacích scénářů. Testovací skripty se obvykle skládají z posloupnosti akcí, požadavků HTTP nebo interakcí s rozhraními API úloh nebo uživatelskými rozhraními. Pomocí nástrojů pro testování výkonnosti nebo programovacích jazyků napište skripty s ohledem na faktory, jako jsou parametrizace, korelace a dynamické zpracování dat. Ověřte správnost a funkčnost testovacích skriptů. Ladit všechny problémy, jako jsou chyby skriptů, chybějící nebo nesprávné akce nebo problémy související s daty. Ověření testovacího skriptu je zásadní pro zajištění přesného a spolehlivého provádění testů výkonnosti.

  • Konfigurace testovacích proměnných a parametrů Konfigurace proměnných a parametrů v rámci testovacích skriptů za účelem zavedení proměnlivosti a simulace reálných scénářů Zahrňte parametry, jako jsou přihlašovací údaje uživatele, vstupní data nebo náhodnost, které napodobují různá chování uživatelů a odezvy úloh.

  • Iterativně upřesňovat skripty. Průběžně upřesňovat a vylepšovat testovací skripty na základě zpětné vazby, výsledků testů nebo měnících se požadavků. Zvažte optimalizaci logiky skriptu, parametrizace a zpracování chyb nebo přidání dalších ověřovacích a kontrolních bodů.

Konfigurace testovacího prostředí

Konfigurace testovacího prostředí odkazuje na proces nastavení konfigurace infrastruktury, softwaru a sítě, které potřebujete k vytvoření prostředí, které se podobá vašemu produkčnímu prostředí.

Pokud chcete testovací prostředí nastavit tak, aby se zvýšila efektivita výkonu, zahrňte do procesu konfigurace následující kroky:

  • Zrcadlení produkčního prostředí Nastavte testovací prostředí tak, aby se podobaly produkčnímu prostředí. Vezměte v úvahu faktory, jako je konfigurace infrastruktury, nastavení sítě a konfigurace softwaru. Cílem je zajistit, aby výsledky testů výkonnosti odpovídaly skutečným podmínkám.

  • Zřiďte dostatek prostředků. Přidělte testovacímu prostředí odpovídající prostředky, jako je procesor, paměť a místo na disku. Ujistěte se, že dostupné prostředky zvládnou očekávanou úlohu a poskytují přesná měření výkonu.

  • Replikujte síťové podmínky. Nakonfigurujte nastavení sítě v testovacím prostředí tak, aby replikoval očekávané síťové podmínky během skutečného nasazení úlohy. Musíte zahrnout šířku pásma, latenci a síťové protokoly.

  • Nainstalujte a nakonfigurujte závislosti. Nainstalujte software, knihovny, databáze a další závislosti potřebné ke správnému běhu úlohy. Nakonfigurujte tyto závislosti tak, aby odpovídaly očekávanému produkčnímu prostředí.

Kompromis: S údržbou oddělených testovacích prostředí, ukládáním dat, používáním nástrojů a spouštěním testů jsou spojené náklady. Znát náklady na testování výkonu a najít způsob, jak optimalizovat útratu.

Riziko: Produkční data můžou obsahovat citlivé informace. Bez robustní strategie drhnutí a maskování riskujete únik citlivých dat při použití produkčních dat k testování.

Provedení testů

Testy výkonnosti spusťte pomocí zvoleného testovacího nástroje. Testování zahrnuje měření a zaznamenávání metrik výkonu, monitorování stavu a zachytávání všech problémů s výkonem, které nastanou.

Monitorujte a shromažďujte metriky výkonu, jako jsou doba odezvy, propustnost, využití procesoru a paměti a další relevantní indikátory.

Pomocí definovaných testovacích scénářů můžete zatížení umístit pod očekávané zatížení. Provádějte testy za těchto proměnlivých podmínek zatížení. K analýze chování úloh v různých scénářích můžete například použít úrovně normální, nejvyšší a zátěžové.

Analýza výsledků

Analýza výsledků testů zahrnuje prozkoumání shromážděných dat a metrik z testů výkonnosti, abyste získali přehled o výkonu úlohy. Cílem je identifikovat problémy s výkonem a využít zpětnou vazbu k úpravě priorit při vývoji aplikací. Následující akce jsou klíčovými kroky pro analýzu výsledků testů.

Zkontrolujte metriky výkonu. Podívejte se na metriky výkonu, které shromažďujete během testování výkonu, jako jsou doby odezvy, propustnost, míra chyb, využití procesoru a paměti a latence sítě. Analyzujte tyto metriky, abyste porozuměli celkovému výkonu úlohy.

  • Zjistěte kritické body. Vyhodnoťte metriky výkonu a identifikujte případné kritické body nebo oblasti neefektivního výkonu. Vyhodnocení může zahrnovat vysokou dobu odezvy, omezení prostředků, problémy s databází, latenci sítě a omezení škálovatelnosti. Určení původních příčin těchto kritických bodů vám pomůže určit prioritu vylepšení výkonu.

  • Korelace metrik Vyhodnoťte vztahy a korelace mezi různými metrikami výkonu. Můžete například analyzovat, jak zvýšené zatížení nebo využití prostředků ovlivňuje doby odezvy. Pochopení těchto korelací může poskytnout cenné přehledy o chování úloh za různých podmínek. Hledejte vzory a trendy v datech o výkonu v průběhu času. Analyzujte výkon při různých úrovních zatížení nebo v určitých obdobích. Zjišťování trendů může pomoct identifikovat sezónní variace, doby využití ve špičce nebo opakující se problémy s výkonem.

Vyhodnoťte kritéria přijetí. Porovnejte výsledky opakovaného testování s předdefinovanými kritérii přijetí a výkonnostními cíli. Vyhodnoťte, jestli úloha splňuje požadované standardy výkonu. Pokud úloha nesplňuje kritéria přijetí, prošetřete a upřesněte optimalizace.

Iterujte a upřesněte analýzu. Podle potřeby proveďte další úpravy a vylepšení. Shromážděná data a metriky použijte k diagnostice konkrétních problémů s výkonem. Diagnostika může zahrnovat trasování komponent úloh, zkoumání souborů protokolů, monitorování využití prostředků nebo analýzu chybových zpráv. Ponořte se hlouběji do dat, abyste porozuměli základním příčinám problémů s výkonem.

Na základě analýzy výsledků testů určete prioritu identifikovaných problémů s výkonem a implementujte potřebná vylepšení. Tato vylepšení mohou zahrnovat optimalizaci kódu, ladění databázových dotazů, vylepšení mechanismů ukládání do mezipaměti a optimalizaci konfigurací sítě.

Vytvoření směrných plánů

Směrné plány poskytují referenční bod pro porovnání výsledků výkonu v průběhu času. Standardní hodnoty by měly být smysluplné snímky výkonu úloh – nemusíte používat každý test jako směrný plán.

Vezměte v úvahu cíle úloh a zdokumentujte snímky výkonu, které vám umožní učit se v průběhu času a optimalizovat je. Tato základní měření použijte jako srovnávací test pro budoucí testy výkonu a použijte je k identifikaci jakéhokoli snížení nebo zlepšení.

Pokud chcete vytvořit standardní hodnoty pro testování výkonu a použít je jako srovnávací test pro budoucí testy výkonu, postupujte takto:

  • Identifikujte metriky výkonu. Určete konkrétní metriky výkonu, které chcete měřit a sledovat. Mezi příklady patří:

    • Doba odezvy nebo jak rychle úloha reaguje na požadavky.
    • Propustnost nebo počet žádostí, které se zpracovávají za jednotku času.
    • Využití prostředků, jako je využití procesoru, paměti a disku.
  • Zaznamenávejte smysluplná měření. Zaznamenejte metriky výkonu, které získáte během testu, jako základní měření. Tato měření představují výchozí bod, se kterým porovnáváte budoucí testy výkonnosti.

  • Porovnejte budoucí testy. V následných testech výkonu porovnejte metriky výkonu se stanovenými směrnými hodnotami a prahovými hodnotami. Porovnání umožňuje identifikovat všechna vylepšení nebo snížení výkonu.

Nepřetržité testování

Průběžné testování zahrnuje průběžné monitorování a vylepšování testů. Průběžné testování pomáhá udržovat konzistentní a přijatelné úrovně výkonu. Úloha by měla poskytovat konzistentní a přijatelnou úroveň výkonu vzhledem ke směrnému plánu. V průběhu času byste měli úlohu vyladit tak, aby se dosáhlo konzistentního výkonu, který je v rámci přijatelných limitů výkonu. Tady jsou některé klíčové postupy:

  • Nastavte limity snížení výkonu. Definujte číselné prahové hodnoty, které určují úroveň snížení výkonu, která je přijatelná v průběhu času. Nastavením těchto limitů můžete monitorovat kolísání výkonu a přijímat upozornění, když výkon klesne pod definovanou prahovou hodnotu.

  • Zahrňte kontrolu kvality. Do procesu zajištění kvality začleňte požadavky na výkon, jako je využití procesoru a maximální počet požadavků za sekundu. Přistupujte k požadavkům na výkon se stejnou úrovní důležitosti jako funkčním požadavkům. Tento proces pomáhá zajistit, aby úloha před nasazením do produkčního prostředí splňovala definované požadavky na výkon.

  • Automatizujte upozorňování. V živých prostředích je rychlá detekce a reakce zásadní. Nastavte automatizované systémy upozornění, které jako referenci používají standardní hodnoty výkonu. Pokud dojde k významné odchylce ve výkonu, jsou potřebné týmy okamžitě upozorněny, aby zareagovaly.

  • Testujte změny. Některé problémy s výkonem se můžou projevit jenom v živém nastavení. Použijte důkladné testovací postupy pro navrhované změny kódu a infrastruktury. Pomocí instrumentace kódu získáte přehled o charakteristikách výkonu aplikace, jako jsou horké cesty, přidělení paměti a uvolňování paměti. Toto testování zajistí, že jakákoliv zaváděná změna nesnižuje výkon nad rámec přijatelných limitů.

Usnadnění Azure

Provádění testů: Azure Pipelines umožňuje integrovat testování výkonu do kanálu CI/CD. Zátěžové testování můžete začlenit jako krok do kanálu, abyste ověřili výkon a škálovatelnost vašich aplikací.

Azure Chaos Studio nabízí způsob, jak do aplikace vkládat skutečné chyby, abyste mohli spouštět řízené experimenty injektáže chyb. Experimenty vám pomůžou měřit, pochopit a zlepšit odolnost cloudových aplikací a služeb.

Azure Load Testing je služba zátěžového testování, která generuje vysoké zatížení pro libovolnou aplikaci. Zátěžové testování poskytuje funkce pro automatizaci zátěžových testů a jejich integraci do pracovního postupu kontinuální integrace a průběžného doručování (CI/CD). Můžete definovat testovací kritéria, například průměrnou dobu odezvy nebo prahové hodnoty chyb, a automaticky zastavit zátěžové testy na základě konkrétních chybových podmínek. Zátěžové testování nabízí řídicí panel, který poskytuje živé aktualizace a podrobné metriky prostředků komponent aplikací Azure během zátěžového testu. Můžete analyzovat výsledky testů, identifikovat kritické body výkonu a porovnat několik testovacích běhů, abyste pochopili regrese výkonu v průběhu času.

Analýza výsledků: Azure Monitor je komplexní řešení monitorování pro shromažďování, analýzu a reagování na telemetrická data z cloudových a místních prostředí. Application Insights je rozšíření monitoru, které poskytuje funkce APM. Application Insights můžete použít k monitorování aplikací během vývoje a testování a také v produkčním prostředí.

Kompromis: Testování trvá určitou dobu a dovednosti a může ovlivnit provozní efektivitu.

Kontrolní seznam efektivity výkonu

Projděte si kompletní sadu doporučení.