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.

  1. Otevřete Windows PowerShell, přihlaste se k Azure a nastavte předplatné:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Naklonovat zdrojové repo ukázkové aplikace.

     git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.git
    

    Uká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.

  3. Přejděte do Node.js aplikace a nasaďte ukázkovou aplikaci pomocí skriptu PowerShellu.

     cd nodejs-appsvc-cosmosdb-bottleneck
     .\deploymentscript.ps1
    

    Tip

    Můžete nainstalovat PowerShell Core na Linux, WSL nebo macOS.

    Po instalaci můžete předchozí příkaz spustit jako pwsh ./deploymentscript.ps1 .

  4. 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.

  5. Po dokončení nasazení přejděte do spuštěné ukázkové aplikace otevřením https://<yourappname>.azurewebsites.net v okně prohlížeče.

  6. Pokud chcete zobrazit komponenty aplikace, přihlaste se k Azure Portal a přejděte do skupiny prostředků, kterou jste vytvořili.

    Snímek obrazovky se seznamem skupin prostředků Azure

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.

  1. Otevřete adresář naklonované ukázkové aplikace v VS Code.

    cd nodejs-appsvc-cosmosdb-bottleneck
    code .
    
  2. Otevřete SampleApp.jmx.

  3. Vyhledejte <stringProp name="HTTPSampler.domain">.

    V souboru se zobrazí tři <stringProp name="HTTPSampler.domain"> instance .

  4. 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 .

  5. 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:

  1. Přihlaste se k Azure Portal pomocí přihlašovacích údajů pro vaše předplatné Azure.

  2. Vyberte tlačítko nabídky v levém horním rohu portálu a pak vyberte + Vytvořit prostředek.

    Snímek obrazovky znázorňující + Vytvořit prostředek

  3. Pomocí panelu hledání vyhledejte Azure Load Testing.

  4. Vyberte Azure Load Testing.

  5. V podokně Azure Load Testing (Zátěžové testování Azure) vyberte Create (Vytvořit).

    Snímek obrazovky znázorňuje stránku pro vytvoření zátěžového testování Azure

  6. 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.

    Snímek obrazovky znázorňuje karty Základy při vytváření 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ů.

  7. Po dokončení konfigurace prostředku vyberte Zkontrolovat a vytvořit.

  8. 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í.

  9. Pokud chcete zobrazit nový prostředek, vyberte Přejít k prostředku.

    Snímek obrazovky znázorňuje obrazovku dokončení nasazení

  10. 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í.

    Snímek obrazovky, který ukazuje, jak nakonfigurovat řízení přístupu

    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.

    Snímek obrazovky znázorňuje obrazovku přiřazení role

    Důležité

    Pokud chcete přiřadit role Azure, musíte mít Microsoft.Authorization/roleAssignments/write oprá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

  1. Přejděte k prostředku zátěžového testu a na panelu příkazů vyberte Vytvořit nový test.

    Snímek obrazovky znázorňuje vytvoření nového testu

  2. 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í.

    Snímek obrazovky znázorňuje kartu Základy při vytváření nového testu

  3. 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.

    Snímek obrazovky znázorňuje kartu Testovací plán a postup nahrání skriptu Apache JMeter

    Volitelně můžete vybrat a nahrát další konfigurační soubory Apache JMeter.

  4. 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.

    Snímek obrazovky znázorňuje kartu Načíst při vytváření nového testu

  5. 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.

    Snímek obrazovky znázorňuje kartu Monitorování při vytváření nového testu

    Snímek obrazovky, který ukazuje, jak přidat prostředky Azure k monitorování během zátěžového testu

    Snímek obrazovky znázorňuje kartu Monitorování se seznamem prostředků Azure, které se mají monitorovat

  6. Vyberte Zkontrolovat a vytvořit, zkontrolujte všechna nastavení a vyberte Vytvořit.

    Snímek obrazovky znázorňuje kartu Zkontrolovat a vytvořit při vytváření nového testu

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.

  1. Vyberte testy pro zobrazení seznamu testů a potom vyberte test, který jste vytvořili dříve.

    Snímek obrazovky, který zobrazuje seznam testů.

    Tip

    K omezení počtu testů můžete použít vyhledávací pole a filtr časového rozsahu .

  2. Na stránce testovací běhy vyberte Spustit nebo Spustit test.

    Snímek obrazovky, který ukazuje, jak spustit test.

  3. 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ů.

    Snímek obrazovky zobrazující stránku souhrnu spuštění

    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.

    Snímek obrazovky zobrazující řídicí panel s výsledky testu

    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.

  1. Nejprve se podíváme na metriky na straně klienta. Všimnete si, že je 90. percentil pro metriku doby odezvy pro add a get požadavky rozhraní API vyšší než pro lasttimestamp rozhraní API.

    Snímek obrazovky zobrazující metriky na straně klienta

    Můžete vidět podobný vzor pro chyby, kde lasttimestamp rozhraní API obsahuje méně chyb než ostatní rozhraní API.

    Snímek obrazovky, který zobrazuje graf chyb.

    Výsledky add get rozhraní API a jsou podobné, zatímco lasttimestamp rozhraní API se chová jinak. Příčinou může být vztahující se k databázi, protože add rozhraní i get rozhraní API obsahují přístup k databázi.

  2. 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.

    Snímek obrazovky, který ukazuje metriky plánu Azure App Service.

    V Azure App Service metriky plánu vidíte, že Procento procesoru a procentuální metriky paměti jsou v přijatelném rozsahu.

  3. teď se podíváme na Cosmos DB metriky na straně serveru.

    snímek obrazovky zobrazující Azure Cosmos DB metriky

    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 add get webová 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.

  1. do Cosmos DB prostředku, který jste zřídili v rámci nasazení ukázkové aplikace.

  2. Vyberte kartu Průzkumník dat .

    snímek obrazovky, který zobrazuje nastavení škálování Cosmos DB.

  3. vyberte možnost Nastavení škálování & a aktualizujte hodnotu propustnosti na 1200.

    snímek obrazovky, který zobrazuje aktualizované nastavení škálování Cosmos DB.

  4. 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.

  1. 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 .

    Snímek obrazovky, který ukazuje, jak spustit zátěžový test.

    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.

  2. Po dokončení zátěžového testu zkontrolujte dobu odezvy a chyby metrik na straně klienta.

  3. pak zkontrolujte metriky na straně serveru pro Azure Cosmos DB a ujistěte se, že se zvýšil výkon.

    snímek obrazovky, který zobrazuje Cosmos DB metriky na straně klienta po aktualizaci nastavení škálování.

    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 add get rozhraní 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:

    1. V levém horním rohu vyberte tlačítko nabídky a pak vyberte Skupiny prostředků.

    2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili.

    3. Vyberte Odstranit skupinu prostředků.

      Snímek obrazovky s výběry k odstranění skupiny prostředků na portálu Azure Portal.

    4. 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í.