Dela via


Snabbstart: Skapa och köra ett belastningstest med Visual Studio Code och GitHub Copilot

Lär dig hur du använder Azure Load Testing-tillägget för Visual Studio Code för att enkelt skapa Locust-belastningstester med Hjälp av Copilot, iterera lokalt och skala enkelt i Azure. Oavsett om du är nybörjare på Locust eller en expert på prestandatestning effektiviserar Azure Load Testing-tillägget skapande, iteration och skalning direkt från VS Code-miljön. Azure Load Testing är en hanterad tjänst som gör att du kan köra ett belastningstest i molnskala. Locust är ett verktyg för belastningstestning med öppen källkod som gör att du kan skriva alla dina tester i Python-kod.

Den här snabbstartsguiden hjälper dig att generera, förfina och genomföra realistiska belastningstester. I slutet har du ett fullständigt funktionellt belastningstestskript som genererats från en Postman-samling, Insomnia-samling eller .http-fil, utökad med Copilot-drivna förbättringar och redo att skalas i Azure Load Testing.

Förutsättningar

Tips/Råd

VS Code GitHub Copilot Chat erbjuder flera AI-modeller. Du kan byta modell med hjälp av modellväljaren i chattens textfält. Om du är osäker på vilken som ska användas rekommenderar vi GPT-4o.

Öppna genomgången

Kom igång genom att öppna kommandopaletten i VS Code och köra: Belastningstestning: Öppna genomgång. Den här genomgången innehåller de viktigaste startpunkterna för tillägget.

Du kan också komma åt funktionerna direkt från kommandopaletten med hjälp av prefixet Belastningstestning . Några vanliga kommandon är:

  • Belastningstestning: Skapa gräshoppstest

  • Belastningstestning: Kör belastningstest (lokalt)

  • Belastningstest: Kör belastningstest (Azure Load Testing)

    Skärmbild som visar de viktigaste startpunkterna för tillägget Azure Load Testing VS Code.

Generera ett Locust-skript med Copilot

Du kan generera ett Locust-skript från en befintlig Postman-samling, Insomnia-samling eller .http-fil. Om filen innehåller flera begäranden försöker Copilot sekvensera dem i ett sammanhängande scenario.

  1. Klicka på knappen Skapa ett belastningstest i genomgången eller kör Belastningstestning: Skapa gräshoppstest från kommandopaletten.

  2. Du kan välja källa för att generera ett Locust-testskript automatiskt:

    • Genom att välja en Postman-samling, Insomnia-samling eller .http-fil kan Copilot extrahera flera API-åtgärder, begära data och autentiseringsinformation – vilket skapar ett mer komplett och realistiskt belastningstest.
    • Om du väljer Enskild URL kan du ange en url för en enskild slutpunkt, vilket genererar ett enkelt skript som du kan anpassa eller expandera.
  3. För den här genomgången kan du välja Prova exempel: API för djurbutik, som använder petstore-sample.http filen för att generera ett Locust-exempeltestskript.

  4. Copilot analyserar den valda filen och genererar ett Locust-baserat belastningstestskript, som automatiskt sekvenserar API-begäranden för att simulera verklig användning och hantera autentisering på ett säkert sätt.

  5. När skriptet har genererats föreslår Copilot Chat-fönstret andra konfigurationssteg, till exempel att definiera miljövariabler. Om Copilot föreslår miljövariabler skapar du en .env fil i projektet och lägger till de rekommenderade värdena.

Anpassa belastningstestskriptet

Innan du kör testet kan du förfina det med Copilot. Genom att till exempel undersöka skriptet kanske du märker att samma nyttolast för begäran skickas med varje begäran:

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"
}

Så här gör du testet mer dynamiskt genom att randomisera nyttolasten för begäran:

  1. Öppna Copilot Chat-panelen .
  2. Skriv: Randomize request payloads och tryck på Retur.
  3. Copilot genererar en föreslagen ändring för att införa randomisering.
  4. Klicka på Använd i redigeraren som visas ovanför det genererade kodfragmentet i Copilot Chat-fönstret.
  5. När du har granskat ändringarna klickar du på Behåll för att acceptera och uppdatera skriptet.
  6. Spara filen

Nu simulerar varje begäran en mer realistisk användarinteraktion. Koden ser ut ungefär som följande kodfragment:

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"])
}

Kör belastningstestet

Du kan köra belastningstestet på två sätt:

  • Kör lokalt för snabb validering
  • Kör i Azure Load Testing för storskalig belastning i flera regioner

Kör lokalt för snabb validering

Du kan snabbt verifiera testet genom att köra det lokalt med hjälp av Locust från Visual Studio Code:

  1. Öppna kommandopaletten och kör: Belastningstestning: Kör belastningstest (lokalt).

  2. Locust-webbgränssnittet startas automatiskt i en webbläsare. Det kan ta några sekunder innan Locust-servern är klar och att webbläsaren öppnas.

  3. På sidan Starta nytt belastningstest granskar du indatafälten och klickar på Start. Locust börjar skicka begäranden, logga eventuella fel och spåra prestandastatistik.

    Skärmbild som visar locust-webbgränssnittet för att köra ett belastningstest lokalt.

  4. Utforska locust-användargränssnittet för att analysera svarstider, felfrekvenser och dataflöde för begäranden.

    Skärmbild som visar locust-webbgränssnittet för att visa och analysera testresultat lokalt.

Tips/Råd

Om Locust rapporterar fel för begärandena Retrieve Pet och Update Pet kan det bero på hur djurbutikens API bearbetar begäranden. Försök att be Copilot att lägga till slumpmässiga fördröjningar mellan begäranden i run_scenario. Om du misstänker ett problem med själva skriptet anger du DEBUG_MODE=True som en miljövariabel och kör testet igen för att få mer detaljerad felsökningsinformation.

Om du föredrar att köra testet från en VS Code-terminal:

  1. Öppna en terminal i VS Code.

  2. Kör följande kommando:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Specificerar Locust-testskriptet.
    • -u 10: Simulerar upp till 10 virtuella användare.
    • -r 2: Ökar två virtuella användare per sekund.
    • --run-time 1m: Kör testet i 1 minut.
  3. Öppna en webbläsare på http://0.0.0.0:8089 för att visa Locust-webbgränssnittet.

Skala upp i Azure Load Testing

För scenarier med hög belastning där du behöver simulera tusentals samtidiga virtuella användare i flera regioner kan du köra testet i Azure Load Testing.

Så här kör du ett storskaligt test:

  1. Öppna kommandopaletten och kör: Belastningstestning: Kör belastningstest (Azure Load Testing).

  2. Välj Skapa en konfigurationsfil....

  3. Följ den guidade installationen, som omfattar:

    • Logga in på Azure och välj din prenumeration.

    • Skapa en ny Azure Load Testing-resurs eller välja en befintlig resurs.

    • Välja belastningstestregioner för att distribuera trafik globalt.

  4. När installationen är klar genereras en YAML-konfigurationsfil (till exempel loadtest.config.yaml) och läggs till i arbetsytans rotmapp.

    • Den här filen definierar Locust-skriptet, inläsningsparametrar, miljövariabler, regioner och andra filer (till exempel CSV-datauppsättningar).

    • Standardvärdena är 200 virtuella användare som körs i 120 sekunder i varje vald region.

    • Lägg till den här filen i ditt repository för att möjliggöra återanvändning och automatisera framtida belastningstestningar.

  5. Copilot validerar konfigurationen före körning. Följ anvisningarna i chattfönstret. Annars, om allt stämmer, laddas testskriptet och dess relaterade artefakter upp till Azure Load Testing och görs redo för körning. Den här processen kan ta upp till en minut och förloppet visas på panelen Utdata .

    Skärmbild som visar belastningstestets förlopp i VS Code-utdatakonsolen.

  6. När testet startar visas ett meddelande (popup-meddelande) i det nedre högra hörnet av VS Code. Klicka på knappen Öppna i Azure-portalen för att övervaka testkörningen i realtid.

  7. När testet startar visas ett meddelande (popup-meddelande) i det nedre högra hörnet. Klicka på knappen Öppna i Azure-portalen för att övervaka testkörningen i realtid.

    Skärmbild som visar belastningstestresultaten i Azure Load Testing.

Tips/Råd

Om du snabbt vill komma åt testresultat från tidigare körningar använder du kommandot: Belastningstestning: Visa belastningstestkörningar.

I den här snabbstarten har känsliga variabler som API_KEY lagrats i en .env fil och laddats upp till molntjänsten. Vi rekommenderar dock att hemligheter hanteras på ett säkert sätt i Azure Key Vault. Tillägget innehåller vägledning om hur du konfigurerar detta.

Hittills i den här snabbstarten har känsliga variabler som API_KEY lagrats i en .env fil och laddats upp till molntjänsten. Vi rekommenderar dock att hemligheter hanteras på ett säkert sätt i Azure Key Vault. Tillägget innehåller vägledning om hur du konfigurerar detta.

  1. Öppna fönstret Copilot Chat , skriv @testing /setupLoadTestSecretsInAzure och tryck på Retur.

  2. Copilot vägleder dig genom följande steg:

  3. Copilot vägleder dig genom:

    • Skapa ett Azure Key Vault.
    • Tilldela en hanterad identitet till din Azure Load Testing-resurs.
    • Lägga till hemligheter i Azure Key Vault.
    • Konfigurera YAML-filen för att referera till Key Vault-hemligheter i stället för .env.

När du ändrar locust-skriptet eller YAML-konfigurationen kan du köra testet igen genom att köra Kör belastningstest (Azure Load Testing).

Sammanfattning

I den här snabbstarten använde du Azure Load Testing-tillägget för Visual Studio Code för att enkelt skapa Locust-belastningstester med Hjälp av Copilot, iterera lokalt och skala enkelt i Azure. Azure Load Testing-tillägget för VS Code förenklar processen med att skapa ett realistiskt testskript för ditt testscenario. Azure Load Testing sammanfattar komplexiteten i att konfigurera infrastrukturen för att simulera högskalig användarbelastning för ditt program.

Du kan utöka belastningstestet ytterligare för att även övervaka mått på serversidan för programmet under belastning och ange testfelmått för att få aviseringar när programmet inte uppfyller dina krav. För att säkerställa att programmet fortsätter att fungera bra kan du även integrera belastningstestning som en del av ditt CI/CD-arbetsflöde (kontinuerlig integrering och kontinuerlig distribution).