Kurz: Spuštění zátěžového testu pro identifikaci kritických míst výkonu ve webové aplikaci
V tomto kurzu se dozvíte, jak identifikovat kritické body výkonu webové aplikace pomocí služby Azure Load Testing Preview. Vytvoříte zátěžový test pro ukázkovou Node.js aplikace.
Ukázková aplikace se skládá z Node.js API, které komunikuje s databází NoSQL. Webové rozhraní API nasadíte do Azure App Service aplikací a jako databázi použijete Cosmos DB.
V tomto kurzu se naučíte:
- Nasaďte ukázkovou aplikaci.
- Vytvořte a spusťte zátěžový test.
- Identifikujte kritické body výkonu v aplikaci.
- Odeberte kritický bod.
- Znovu spusťte zátěžový test a zkontrolujte vylepšení výkonu.
Důležité
Zátěžové testování Azure je aktuálně ve verzi PREVIEW. Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Požadavky
- Účet Azure s aktivním předplatným. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Tento kurz vyžaduje místní spuštění Azure CLI. Musíte mít nainstalované Azure CLI verze 2.2.0 nebo novější. Verzi zjistíte spuštěním příkazu
az --version. Pokud potřebujete nainstalovat nebo upgradovat rozhraní příkazového řádku, podívejte se na postup instalace Azure CLI. - Stáhněte a nainstalujte si VS Code.
- Stažení a instalace Gitu
Nasazení ukázkové aplikace
Abyste mohli ukázkovou aplikaci načíst, musíte ji z provozu z provozu. K tomu použijte příkazy Azure CLI, příkazy Gitu a příkazy PowerShellu.
Otevřete Windows PowerShell, přihlaste se k Azure a nastavte předplatné:
az login az account set --subscription <your-Azure-Subscription-ID>Naklonovat zdrojové repo ukázkové aplikace.
git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.gitUkázková aplikace je Node.js aplikace skládající se z Azure App Service komponenty a databáze Cosmos DB. Úložiště obsahuje skript PowerShellu, který nasadí ukázkovou aplikaci do vašeho předplatného Azure. Obsahuje také skript Apache JMeter, který použijete v pozdějších krocích.
Přejděte do Node.js aplikace a nasaďte ukázkovou aplikaci pomocí skriptu PowerShellu.
cd nodejs-appsvc-cosmosdb-bottleneck .\deploymentscript.ps1Tip
Můžete nainstalovat PowerShell Core na Linux, WSL nebo macOS.
Po instalaci můžete předchozí příkaz spustit jako
pwsh ./deploymentscript.ps1.Po zobrazení výzvy zadejte:
- ID vašeho předplatného Azure
- Jedinečný název vaší webové aplikace.
- Umístění. Ve výchozím nastavení je umístění
eastus. Kódy oblastí můžete získat spuštěním příkazu Get-AzLocation.
Důležité
Jako název webové aplikace používejte pouze malá písmena a číslice. Žádné mezery. Žádné speciální znaky.
Po dokončení nasazení přejděte do spuštěné ukázkové aplikace otevřením
https://<yourappname>.azurewebsites.netv okně prohlížeče.Pokud chcete zobrazit komponenty aplikace, přihlaste se k Azure Portal a přejděte do skupiny prostředků, kterou jste vytvořili.
Teď, když máte aplikaci nasazenou a spuštěnou, můžete začít s prvním zátěžový testem.
Konfigurace a vytvoření zátěžového testu
V této části vytvoříte zátěžový test pomocí existujícího testovacího skriptu Apache JMeter.
Konfigurace skriptu Apache JMeter
Zdrojové repo ukázkové aplikace obsahuje skript Apache JMeter s názvem SampleApp.jmx . Tento skript provádí při každé iteraci testu tři volání rozhraní API:
add– Provede operaci vložení dat v Cosmos DB pro počet návštěvníků ve webové aplikaci.get– Provede operaci GET z Cosmos DB a načte počet.lasttimestamp– Aktualizuje časové razítko od posledního uživatele, který na web přešel.
V této části aktualizujete skript Apache JMeter pomocí adresy URL ukázkové webové aplikace, kterou jste nasadili v předchozí části.
Než začnete, ujistěte se, že máte adresář naklonované ukázkové aplikace otevřený v VS Code.
Otevřete adresář naklonované ukázkové aplikace v VS Code.
cd nodejs-appsvc-cosmosdb-bottleneck code .Otevřete
SampleApp.jmx.Vyhledejte
<stringProp name="HTTPSampler.domain">.V souboru se zobrazí tři
<stringProp name="HTTPSampler.domain">instance .Nahraďte hodnotu adresou URL nově nasazené ukázkové aplikace ve všech třech instancích.
<stringProp name="HTTPSampler.domain">yourappname.azurewebsites.net</stringProp>Aktualizujte hodnotu na všech třech místech. Nezahrnujte
https://předponu .Uložte změny a zavřete soubor.
Vytvoření prostředku Azure Load Testing
Prostředek zátěžového testování je prostředek nejvyšší úrovně pro aktivity zátěžového testování. Tento prostředek poskytuje centralizované místo pro zobrazení a správu zátěžových testů, výsledků testů a dalších souvisejících artefaktů.
Pokud už máte prostředek zátěžového testování, tuto část přeskočte a pokračujte vytvořením zátěžového testu.
Pokud ještě nemáte prostředek zátěžového testování, vytvořte si ho:
Přihlaste se k Azure Portal pomocí přihlašovacích údajů pro vaše předplatné Azure.
Vyberte tlačítko nabídky v levém horním rohu portálu a pak vyberte + Vytvořit prostředek.
Pomocí panelu hledání vyhledejte Azure Load Testing.
Vyberte Azure Load Testing.
V podokně Azure Load Testing (Zátěžové testování Azure) vyberte Create (Vytvořit).
Při konfiguraci nového prostředku Azure Load Testing zadejte následující informace.
Pole Popis Předplatné Vyberte předplatné Azure, které chcete použít pro tento prostředek Azure Load Testing. Skupina prostředků Vyberte existující skupinu prostředků nebo vyberte Vytvořit novou a pak zadejte jedinečný název nové skupiny prostředků. Name Zadejte jedinečný název pro identifikaci vašeho prostředku Azure Load Testing.
Název nesmí obsahovat speciální znaky, například \ /""[]: |<>+=;,?*@& nebo prázdné znaky. Název nemůže začínat "_" ani končí na "." nebo "-". Délka musí být v rozmezí 1 až 64 znaků.Umístění Vyberte zeměpisné umístění pro hostování prostředku Azure Load Testing.
Poznámka
Volitelně můžete na kartě Značky nakonfigurovat další podrobnosti. Značky jsou páry název/hodnota, které umožňují kategorizovat prostředky a zobrazit konsolidovanou fakturaci použitím stejné značky na více prostředků a skupin prostředků.
Po dokončení konfigurace prostředku vyberte Zkontrolovat a vytvořit.
Zkontrolujte všechna nastavení konfigurace a výběrem možnosti Vytvořit spusťte nasazení prostředku Azure Load Testing.
Po dokončení procesu se zobrazí zpráva o úspěšném nasazení.
Pokud chcete zobrazit nový prostředek, vyberte Přejít k prostředku.
Na stránce prostředku Azure Load Testing vyberte Access Control (IAM) a pak vyberte Přidat přiřazení role.
Abyste mohli spravovat zátěžové testy v prostředku Azure Load Testing, musíte mít správné přístupové oprávnění.
Ke svému účtu Azure musíte přiřadit roli Přispěvatel zátěžového testu nebo Vlastník zátěžového testu. Podrobnosti o přiřazování rolí najdete v tématu Přiřazení rolí Azure pomocí Azure Portal.
Důležité
Pokud chcete přiřadit role Azure, musíte mít
Microsoft.Authorization/roleAssignments/writeoprávnění, například Správce uživatelských přístupů nebo Vlastník. Může trvat několik minut, než se přiřazení rolí pro váš účet stanou aktivními. Aktualizujte webovou stránku uživatelského rozhraní tak, aby odrážela aktualizovaná oprávnění.
V další části vytvoříte zátěžový test v prostředku zátěžového testování ukázkové aplikace.
Vytvoření zátěžového testu
Přejděte k prostředku zátěžového testu a na panelu příkazů vyberte Vytvořit nový test.
Na kartě Základy zadejte Název testu a Informace o popisu testu. Volitelně můžete zaškrtnutím políčka Spustit test po vytvoření automaticky spustit zátěžový test po jeho vytvoření.
Na kartě Testovací plán vyberte testovací metodu skriptu JMeter a pak z adresáře klonované ukázkové aplikace vyberte testovací skript SampleApp.jmx. Dále vyberte Upload a nahrajte soubor do Azure a nakonfigurujte zátěžový test.
Volitelně můžete vybrat a nahrát další konfigurační soubory Apache JMeter.
Na kartě Načíst nakonfigurujte následující podrobnosti. Pro tento kurz můžete ponechat výchozí hodnoty:
Nastavení Hodnota Popis Instance modulu 1 Počet paralelních testovacích modulů, které spouští skript Apache JMeter.
Na kartě Monitorování zadejte součásti aplikace, které chcete monitorovat metriky prostředků. Pokud chcete spravovat seznam součástí aplikace, vyberte Přidat/upravit.
Vyberte Zkontrolovat a vytvořit, zkontrolujte všechna nastavení a vyberte Vytvořit.
Spuštění zátěžového testu v Azure Portal
V této části použijete nástroj Azure Portal ručně spustit zátěžový test, který jste vytvořili dříve. Pokud jste zaškrtli políčko Spustit test po vytvoření , test již bude spuštěn.
Vyberte testy pro zobrazení seznamu testů a potom vyberte test, který jste vytvořili dříve.
Tip
K omezení počtu testů můžete použít vyhledávací pole a filtr časového rozsahu .
Na stránce testovací běhy vyberte Spustit nebo Spustit test.
Pro spuštění zátěžového testu vyberte na stránce Souhrn spuštění možnost Spustit . Zobrazí se seznam testovacích běhů.
Testování zatížení Azure začíná monitorovat a zobrazovat metriky serveru aplikace na řídicím panelu.
Když je test spuštěný, uvidíte metriky na straně klienta streamování. Ve výchozím nastavení se výsledky automaticky aktualizují každých pět sekund.
Můžete použít více filtrů nebo agregovat výsledky do různých percentilů a přizpůsobit tak grafy.
Tip
Zátěžový test můžete kdykoli zastavit z Azure Portal uživatelského rozhraní výběrem možnosti zastavit.
Než budete pokračovat k další části, počkejte na úplné dokončení zátěžového testu.
Určení kritických bodů z hlediska výkonu
V této části budete analyzovat výsledky zátěžového testu pro identifikaci kritických bodů výkonu v aplikaci. K určení původní příčiny problému zkontrolujte metriky na straně klienta i na straně serveru.
Nejprve se podíváme na metriky na straně klienta. Všimnete si, že je 90. percentil pro metriku doby odezvy pro
addagetpožadavky rozhraní API vyšší než prolasttimestamprozhraní API.
Můžete vidět podobný vzor pro chyby, kde
lasttimestamprozhraní API obsahuje méně chyb než ostatní rozhraní API.
Výsledky
addgetrozhraní API a jsou podobné, zatímcolasttimestamprozhraní API se chová jinak. Příčinou může být vztahující se k databázi, protožeaddrozhraní igetrozhraní API obsahují přístup k databázi.Pokud chcete tento problém prozkoumat podrobněji, přejděte dolů k části řídicí panel metriky na straně serveru .
metrika na straně serveru vám ukáže podrobné informace o komponentách aplikace Azure: Azure App Service plán, Azure App Service webové aplikace a Azure Cosmos DB.
V Azure App Service metriky plánu vidíte, že Procento procesoru a procentuální metriky paměti jsou v přijatelném rozsahu.
teď se podíváme na Cosmos DB metriky na straně serveru.
Všimnete si, že normalizovaná metrika spotřeby ru ukazuje, že databáze byla rychle spuštěna v 100% využití prostředků. Použití vysokého využití prostředků může způsobit chyby omezení databáze a prodloužit dobu odezvy pro
addgetwebová rozhraní API a.můžete také zjistit, že metrika zřízené propustnosti pro instanci Azure Cosmos DB má maximální propustnost 400 ru. Zvýšením zajištěné propustnosti databáze může být vyřešen problém s výkonem.
V další části zvýšíte propustnost zřízené databází a pak ověříte, zda byla vyřešena kritická místa výkonu aplikace.
Zvýšit propustnost databáze
V této části přidělíte více prostředků databázi, abyste vyřešili problém s výkonem.
v případě Azure Cosmos DB nakonfigurujete nastavení RU na úrovni databáze.
do Cosmos DB prostředku, který jste zřídili v rámci nasazení ukázkové aplikace.
Vyberte kartu Průzkumník dat .
vyberte možnost Nastavení škálování & a aktualizujte hodnotu propustnosti na 1200.
Vyberte Uložit a potvrďte změny.
Ověřit zvýšení výkonu
Teď, když jste zvýšili propustnost databáze, znovu spustíte zátěžový test a ověříte, že se zvýšily výsledky výkonu.
Vraťte se na stránku podrobnosti testovacího běhu, vyberte možnost znovu spustit a pak na stránce Souhrn spuštění vyberte možnost Spustit .
Zobrazí se nová položka testovacího běhu se sloupcem stav, který projde stavem zřizování, spouštění a dokončeno . V každém okamžiku vyberte položku testovacího běhu, abyste mohli sledovat, jak probíhá zátěžový test.
Po dokončení zátěžového testu zkontrolujte dobu odezvy a chyby metrik na straně klienta.
pak zkontrolujte metriky na straně serveru pro Azure Cosmos DB a ujistěte se, že se zvýšil výkon.
všimnete si, že Cosmos DB normalizovaná spotřeba RU je teď ve správném 100%.
Po změně nastavení škálování databáze teď uvidíte, že:
- Zvýšila se doba odezvy
addgetrozhraní API a. - Normalizovaná spotřeba RU zůstává v souladu s maximálním limitem.
V důsledku toho byl vylepšen celkový výkon vaší aplikace.
Vyčištění prostředků
Důležité
Prostředky, které jste vytvořili, můžete použít jako požadavky v dalších kurzech a článcích s návody pro zátěžové testování Azure.
Pokud nemáte v plánu používat žádné z prostředků, které jste vytvořili, odstraňte je, aby se vám za ně ne účtovány žádné další poplatky.
Na webu Azure Portal:
V levém horním rohu vyberte tlačítko nabídky a pak vyberte Skupiny prostředků.
V seznamu vyberte skupinu prostředků, kterou jste vytvořili.
Vyberte Odstranit skupinu prostředků.

Zadejte název skupiny prostředků. Vyberte Odstranit.
Alternativně můžete použít Azure CLI.
az group delete --name <yourresourcegroup>Nezapomeňte, že odstraněním skupiny prostředků se odstraní všechny prostředky v ní.
Další kroky
přejděte k dalšímu kurzu, kde se dozvíte, jak nastavit pracovní postup automatizované regrese testování pomocí Azure Pipelines nebo GitHub akcí.