Sdílet prostřednictvím


Rychlý start: Vytvoření a spuštění zátěžového testu pomocí editoru Visual Studio Code a GitHub Copilotu

Naučte se používat rozšíření Azure Load Testing pro Visual Studio Code k snadnému vytváření zátěžových testů pomocí Copilotu, jejich lokální iteraci a snadnému škálování v Azure. Ať už jste nováček ve výkonnostním testování nebo odborník na testování výkonu, rozšíření Azure Load Testing zjednodušuje vytváření testů, iteraci a škálování přímo ve vašem prostředí VS Code. Azure Load Testing je spravovaná služba, která umožňuje spustit zátěžový test v cloudovém měřítku. Locust je open-sourceový nástroj pro zátěžové testování, který umožňuje psát všechny vaše testy v Pythonu.

Tento krátký průvodce vás provede generováním, zdokonalováním a spouštěním realistických zátěžových testů. Na závěr máte plně funkční skript zátěžového testu vygenerovaný z kolekce Postman, kolekce Insomnia nebo souboru .http, vylepšený pomocí funkcí Copilot a připravený pro škálování v Azure Load Testing.

Požadavky

Tip

GitHub Copilot Chat v rámci VS Code nabízí několik modelů umělé inteligence. Modely můžete přepínat pomocí výběru modelu v poli pro zadávání chatu. Pokud si nejste jistí, který z nich se má použít, doporučujeme GPT-4o.

Otevřete návod

Začněte tím, že otevřete paletu příkazů ve VS Code a spusťte: Zátěžové testování: Otevřít průvodce. Tento průvodce poskytuje klíčové vstupní body rozšíření.

K funkcím můžete přistupovat také přímo z palety příkazů pomocí předpony Zátěžové testování . Mezi běžně používané příkazy patří:

  • Zátěžové testování: Vytvoření testu v Locustu

  • Zátěžové testování: Spuštění zátěžového testu (místní)

  • Zátěžové testování: Spuštění zátěžového testu (Zátěžové testování Azure)

    Snímek obrazovky znázorňující klíčové vstupní body rozšíření VS Code pro zátěžové testování Azure

Vygenerujte skript Locust s využitím Copilotu.

Locust skript můžete vygenerovat z jakékoli existující Postman kolekce, Insomnia kolekce nebo souboru .http. Pokud soubor obsahuje více požadavků, copilot se pokusí je sekvencovat do soudržného scénáře.

  1. V návodu klikněte na tlačítko Vytvořit zátěžový test nebo spusťte zátěžové testování: Vytvořit Locust test z příkazové palety.

  2. Můžete zvolit zdroj pro automatické vygenerování testovacího skriptu Locust.

    • Výběrem kolekce Postman, kolekce režimu spánku nebo souboru .http umožňuje Copilot extrahovat více operací rozhraní API, vyžádat data a podrobnosti o ověřování – vytvoření ucelenějšího a realističtějšího zátěžového testu.
    • Když zvolíte jednu adresu URL , můžete zadat jednu adresu URL koncového bodu a vygenerovat jednoduchý skript, který můžete přizpůsobit nebo rozbalit.
  3. Pro účely tohoto názorného postupu můžete vybrat vyzkoušet ukázku: Pet Shop API, který používá soubor petstore-sample.http k vygenerování ukázkového testovacího skriptu Python.

  4. Copilot analyzuje vybraný soubor a vygeneruje skript zátěžového testu založený na Locustu, který automaticky sekvencuje požadavky rozhraní API pro simulaci skutečného využití a bezpečné zpracování ověření.

  5. Po vygenerování skriptu okno Copilot Chat navrhne další kroky nastavení, například definování proměnných prostředí. Pokud Copilot navrhne proměnné prostředí, vytvořte .env v projektu soubor a přidejte doporučené hodnoty.

Přizpůsobení skriptu zátěžového testu

Před spuštěním testu ho můžete upřesnit pomocí Copilotu. Například prozkoumáním skriptu si můžete všimnout, že se s každým požadavkem odešle stejná datová část požadavku:

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

Pokud chcete, aby byl test dynamičtější náhodným nastavením datové části požadavku:

  1. Otevřete panel chatu Copilot .
  2. Zadejte: Randomize request payloads a stiskněte Enter.
  3. Copilot vygeneruje navrženou úpravu pro zavedení randomizace.
  4. Klikněte na Použít v Editoru , který se zobrazí nad vygenerovaným fragmentem kódu v okně Copilot Chat.
  5. Po zkontrolování změn kliknutím na Tlačítko Zachovat přijměte a aktualizujte skript.
  6. Uložení souboru

Každý požadavek teď simuluje realističtější interakci uživatelů. Kód vypadá přibližně jako následující fragment kódu:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

Spuštění zátěžového testu

Zátěžový test můžete spustit dvěma způsoby:

  • Místní spuštění pro rychlé ověření
  • Spuštění ve službě Azure Load Testing pro vysoce škálovatelné zatížení ve více oblastech

Místní spuštění pro rychlé ověření

Pokud chcete test rychle ověřit, spusťte ho místně pomocí Locust z Visual Studio Code:

  1. Otevřete paletu příkazů a spusťte: Zátěžové testování: Spusťte zátěžový test (místní).

  2. Webové uživatelské rozhraní Locust se automaticky spustí v prohlížeči. Může trvat několik sekund, než bude server Locust připravený a prohlížeč se otevře.

  3. Na stránce Spustit nový zátěžový test zkontrolujte vstupní pole a klikněte na Tlačítko Start. Locust začíná odesílat žádosti, zaznamenávat případné chyby a sledovat statistiky výkonu.

    Snímek obrazovky, který ukazuje webové uživatelské rozhraní Locust pro lokální spuštění zátěžového testu.

  4. Prozkoumejte uživatelské rozhraní Locust a analyzujte dobu odezvy, chybovost a propustnost požadavků.

    Snímek obrazovky, který ukazuje webové uživatelské rozhraní Locust pro místní zobrazení a analýzu výsledků testů.

Tip

Pokud Locust hlásí selhání u žádostí Retrieve Pet a Update Pet, může to být způsobeno tím, jak rozhraní API Pet Store zpracovává požadavky. Zkuste Copilotovi zadat úkol "Přidej náhodná zpoždění mezi požadavky v run_scenario". Pokud máte podezření na problém se samotným skriptem, nastavte DEBUG_MODE=True ho jako proměnnou prostředí a znovu spusťte test, abyste získali podrobnější informace o ladění.

Pokud chcete test spustit z terminálu VS Code:

  1. Otevřete terminál ve VS Code.

  2. Spusťte následující příkaz:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Určuje testovací skript Locust.
    • -u 10: Simuluje až 10 virtuálních uživatelů.
    • -r 2: Zvyšuje dva virtuální uživatele za sekundu.
    • --run-time 1m: Spustí test po dobu 1 minuty.
  3. Otevřete prohlížeč na http://0.0.0.0:8089 a zobrazte webové uživatelské rozhraní Locust.

Škálování nahoru v Azure Load Testing

Ve scénářích s vysokým zatížením, ve kterých potřebujete simulovat mnoho tisíc souběžných virtuálních uživatelů ve více oblastech, můžete test spustit v Azure Load Testing.

Provedení rozsáhlého testu:

  1. Otevřete paletu příkazů a spusťte: Zátěžové testování: Spusťte zátěžový test (Zátěžové testování Azure).

  2. Vyberte Vytvořit konfigurační soubor....

  3. Postupujte podle asistovaného nastavení, které zahrnuje:

    • Přihlaste se k Azure a vyberte své předplatné.

    • Vytvoření nového prostředku služby Azure Load Testing nebo výběru existujícího prostředku

    • Výběr oblastí zátěžového testu pro globální distribuci provozu

  4. Po dokončení instalace se vygeneruje a přidá konfigurační soubor YAML (například loadtest.config.yaml) do kořenové složky pracovního prostoru.

    • Tento soubor definuje skript Locust, zatěžovací parametry, proměnné prostředí, regiony a jakékoli další soubory (například datové sady CSV).

    • Výchozí hodnoty jsou 200 virtuálních uživatelů spuštěných po dobu 120 sekund v každé vybrané oblasti.

    • Potvrďte tento soubor v úložišti, abyste mohli znovu použít a automatizovat budoucí spuštění zátěžového testu.

  5. Copilot ověří konfiguraci před spuštěním. Postupujte podle pokynů uvedených v okně chatu. V opačném případě se testovací skript a související artefakty nahrají do služby Azure Load Testing a připraví se ke spuštění. Tento proces může trvat až minutu a průběh se zobrazí na panelu Výstup .

    Snímek obrazovky znázorňující průběh zátěžového testu ve výstupní konzole nástroje VS Code

  6. Při spuštění testu se v pravém dolním rohu VS Code zobrazí oznámení (informační zpráva). Kliknutím na tlačítko Otevřít na webu Azure Portal můžete monitorovat provádění testů v reálném čase.

  7. Při spuštění testu se v pravém dolním rohu zobrazí oznámení (informační zpráva). Kliknutím na tlačítko Otevřít na webu Azure Portal můžete monitorovat provádění testů v reálném čase.

    Snímek obrazovky znázorňující výsledky zátěžového testu ve službě Azure Load Testing

Tip

Pokud chcete rychle získat přístup k výsledkům testů z předchozích spuštění, použijte příkaz: Zátěžové testování: Zobrazení spuštění zátěžového testu.

V tomto rychlém startu byly citlivé proměnné jako API_KEY uloženy do souboru .env a nahrány do cloudové služby. Jako osvědčený postup by se ale tajné kódy měly bezpečně spravovat ve službě Azure Key Vault. Toto rozšíření obsahuje pokyny k nastavení.

Zatím v tomto rychlém návodu byly citlivé proměnné, jako je API_KEY, uloženy do souboru .env a byly nahrány do cloudové služby. Jako osvědčený postup by se ale tajné kódy měly bezpečně spravovat ve službě Azure Key Vault. Toto rozšíření obsahuje pokyny k nastavení.

  1. Otevřete okno chatu Copilot , zadejte @testing /setupLoadTestSecretsInAzure a stiskněte Enter.

  2. Copilot vás provede následujícími kroky:

  3. Copilot vás provede:

    • Vytvoření služby Azure Key Vault
    • Přiřazení spravované identity k prostředku Azure Load Testing
    • Přidání tajných kódů do služby Azure Key Vault
    • Konfigurace souboru YAML tak, aby odkazoval na tajemství služby Key Vault místo .env.

Pokaždé, když upravíte skript Locustu nebo konfiguraci YAML, můžete test znovu spustit volbou Spustit zátěžový test (Azure Load Testing).

Shrnutí

V tomto rychlém startu jste použili rozšíření Azure Load Testing pro Visual Studio Code k snadnému vytváření zátěžových testů Locust pomocí Copilotu, pro iteraci v místním prostředí a snadné škálování v Azure. Rozšíření Azure Load Testing pro VS Code zjednodušuje proces vytvoření realistického testovacího skriptu pro váš testovací scénář. Azure Load Testing abstrahuje složitost nastavení infrastruktury pro simulaci vysokého zatížení uživatelů pro vaši aplikaci.

Zátěžový test můžete dále rozšířit tak, aby monitoroval metriky na straně serveru aplikace pod zatížením, a určit metriky selhání testu, aby se zobrazily upozornění, když aplikace nesplňuje vaše požadavky. Abyste zajistili, že aplikace bude i nadále fungovat dobře, můžete také integrovat zátěžové testování jako součást pracovního postupu kontinuální integrace a průběžného nasazování (CI/CD).