Freigeben über


Schnellstart: Erstellen und Ausführen eines Auslastungstests mit Visual Studio Code und GitHub Copilot

Erfahren Sie, wie Sie die Azure Load Testing-Erweiterung für Visual Studio Code verwenden, um Locust-Ladetests mit Copilot einfach zu erstellen, lokal zu durchlaufen und in Azure mühelos zu skalieren. Ganz gleich, ob Sie neu bei Locust oder einem Leistungstestexperten sind, die Azure Load Testing-Erweiterung optimiert die Testerstellung, Iteration und Skalierung direkt aus Ihrer VS Code-Umgebung. Azure Load Testing ist ein verwalteter Dienst, mit dem Sie einen Auslastungstest im Cloudmaßstab ausführen können. Locust ist ein Open Source Load Testing Tool, mit dem Sie alle Ihre Tests in Python-Code schreiben können.

Diese Schnellstartanleitung führt Sie durch das Generieren, Verfeinern und Ausführen realistischer Auslastungstests. Am Ende verfügen Sie über ein voll funktionsfähiges Lastentestskript, das aus einer Postman-Sammlung, Einer Schlaflosigkeitssammlung oder HTTP-Datei generiert wurde, die mit Copilot-basierten Verbesserungen erweitert wurde und bereit ist, in Azure Load Testing zu skalieren.

Voraussetzungen

Tipp

Der GitHub Copilot Chat von VS Code bietet mehrere KI-Modelle. Sie können Modelle mithilfe der Modellauswahl im Chateingabefeld wechseln. Wenn Sie nicht sicher sind, welches zu verwenden ist, empfehlen wir GPT-4o.

Öffnen der exemplarischen Vorgehensweise

Öffnen Sie zunächst die Befehlspalette in VS Code, und führen Sie Folgendes aus: Ladentests: Exemplarische Vorgehensweise öffnen. Diese exemplarische Vorgehensweise enthält die wichtigsten Einstiegspunkte der Erweiterung.

Sie können auch direkt über die Befehlspalette auf die Features zugreifen, indem Sie das Präfix "Load Testing " verwenden. Einige häufig verwendete Befehle umfassen:

  • Auslastungstests: Locust-Test erstellen

  • Auslastungstests: Ladentest ausführen (lokal)

  • Auslastungstests: Ausführen des Auslastungstests (Azure Load Testing)

    Screenshot der wichtigsten Einstiegspunkte für die Azure Load Testing VS Code-Erweiterung.

Generieren eines Locust-Skripts mit Copilot

Sie können ein Locust-Skript aus jeder vorhandenen Postman-Sammlung, Schlaflosigkeitssammlung oder HTTP-Datei generieren. Wenn die Datei mehrere Anforderungen enthält, versucht Copilot, sie in ein zusammenhängendes Szenario zu sequenzieren.

  1. Klicken Sie in der exemplarischen Vorgehensweise auf die Schaltfläche " Ladentest erstellen ", oder führen Sie "Load Testing: Create Locust test " aus der Befehlspalette aus.

  2. Sie können die Quelle auswählen, um ein Locust-Testskript automatisch zu generieren:

    • Wenn Sie eine Postman-Sammlung, eine Schlaflosigkeitssammlung oder EINE HTTP-Datei auswählen, können Copilot mehrere API-Vorgänge, Anforderungsdaten und Authentifizierungsdetails extrahieren und einen vollständigeren und realistischeren Auslastungstest erstellen.
    • Wenn Sie eine einzelne URL auswählen, können Sie eine einzelne Endpunkt-URL eingeben und ein einfaches Skript generieren, das Sie anpassen oder erweitern können.
  3. Für diese exemplarische Vorgehensweise können Sie " Beispiel testen: Pet Shop-API" auswählen, die die Datei zum Generieren eines Beispiel-Locust-Testskripts verwendet.For this walkthrough, you can select Try Sample: Pet Shop API, which uses the petstore-sample.http file to generate a sample Locust test script.

  4. Copilot analysiert die ausgewählte Datei und generiert ein Locust-basiertes Ladetestskript, sequenziert API-Anforderungen automatisch, um die reale Nutzung zu simulieren und die Authentifizierung sicher zu verarbeiten.

  5. Nachdem das Skript generiert wurde, schlägt das Copilot-Chatfenster weitere Einrichtungsschritte vor, z. B. das Definieren von Umgebungsvariablen. Wenn Copilot Umgebungsvariablen vorschlägt, erstellen Sie eine .env Datei in Ihrem Projekt, und fügen Sie die empfohlenen Werte hinzu.

Anpassen des Ladetestskripts

Bevor Sie den Test ausführen, können Sie ihn mit Copilot verfeinern. Wenn Sie beispielsweise das Skript untersuchen, stellen Sie möglicherweise fest, dass die gleiche Anforderungsnutzlast mit jeder Anforderung gesendet wird:

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

So machen Sie den Test dynamischer, indem Die Anforderungsnutzlast zufällig festgelegt wird:

  1. Öffnen Sie den Bereich "Copilot-Chat ".
  2. Geben Sie Folgendes ein: Randomize request payloads und drücken Sie die EINGABETASTE.
  3. Copilot generiert eine vorgeschlagene Änderung zur Einführung von Zufallszahlen.
  4. Klicken Sie im Editor auf "Übernehmen" , der oberhalb des generierten Codeausschnitts im Copilot-Chatfenster angezeigt wird.
  5. Klicken Sie nach der Überprüfung der Änderungen auf "Übernehmen " und aktualisieren Sie Ihr Skript.
  6. Speichern der Datei

Jetzt simuliert jede Anforderung eine realistischere Benutzerinteraktion. Der Code sieht ungefähr wie der folgende Codeausschnitt aus:

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

Auslastungstest ausführen

Sie können den Auslastungstest auf zwei Arten ausführen:

  • Lokal zur schnellen Überprüfung ausführen
  • Ausführen in Azure Load Testing für eine hochskalige, mehrstufige Last

Lokal zur schnellen Überprüfung ausführen

Um den Test schnell zu überprüfen, führen Sie ihn lokal mithilfe von Locust aus Visual Studio Code aus:

  1. Öffnen Sie die Befehlspalette, und führen Sie Folgendes aus : Load Testing: Run load test (local).

  2. Die Locust-Web-UI wird automatisch in einem Browser gestartet. Es kann einige Sekunden dauern, bis der Locust-Server bereit ist und der Browser geöffnet wird.

  3. Überprüfen Sie auf der Seite " Neue Auslastungstest starten" die Eingabefelder, und klicken Sie auf "Start". Locust startet das Senden von Anforderungen, das Protokollieren von Fehlern und das Nachverfolgen von Leistungsstatistiken.

    Screenshot der Locust-Web-UI zum lokalen Ausführen eines Ladetests.

  4. Erkunden Sie die Locust-Benutzeroberfläche , um Reaktionszeiten, Fehlerraten und Anforderungsdurchsatz zu analysieren.

    Screenshot der Locust-Web-UI zum lokalen Anzeigen und Analysieren von Testergebnissen.

Tipp

Wenn Locust Fehler für die Retrieve Pet und Update Pet Anforderungen meldet, kann dies darauf zurückzuführen sein, wie die Pet Store-API Anforderungen verarbeitet. Versuchen Sie, Copilot aufzufordern, "zufällige Verzögerungen zwischen Anforderungen in run_scenario" hinzuzufügen. Wenn Sie ein Problem mit dem Skript selbst vermuten, legen Sie es als Umgebungsvariable fest DEBUG_MODE=True , und führen Sie den Test erneut aus, um detailliertere Debuginformationen zu erhalten.

Wenn Sie den Test lieber über ein VS-Codeterminal ausführen möchten:

  1. Öffnen Sie ein Terminal in VS Code.

  2. Führen Sie den folgenden Befehl aus:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Gibt das Locust-Testskript an.
    • -u 10: Simuliert bis zu 10 virtuelle Benutzer.
    • -r 2: Öffnet zwei virtuelle Benutzer pro Sekunde.
    • --run-time 1m: Führt den Test 1 Minute lang aus.
  3. Öffnen Sie einen Browser, um http://0.0.0.0:8089 die Locust-Web-UI anzuzeigen.

Skalieren in Azure Load Testing

Für Szenarien mit hoher Auslastung, in denen Sie viele Tausend gleichzeitige virtuelle Benutzer in mehreren Regionen simulieren müssen, können Sie Ihren Test in Azure Load Testing ausführen.

So führen Sie einen großen Test aus:

  1. Öffnen Sie die Befehlspalette , und führen Sie Folgendes aus: Load Testing: Run load test (Azure Load Testing).

  2. Wählen Sie " Konfigurationsdatei erstellen..." aus.

  3. Folgen Sie der geführten Einrichtung, die Folgendes umfasst:

    • Melden Sie sich bei Azure an, und wählen Sie Ihr Abonnement aus.

    • Erstellen einer neuen Azure Load Testing-Ressource oder Auswählen einer vorhandenen Ressource.

    • Auswählen von Auslastungstestbereichen zum globalen Verteilen des Datenverkehrs.

  4. Nach Abschluss des Setups wird eine YAML-Konfigurationsdatei (z. B loadtest.config.yaml. ) generiert und dem Stammordner des Arbeitsbereichs hinzugefügt.

    • Diese Datei definiert das Locust-Skript, Ladeparameter, Umgebungsvariablen, Regionen und andere Dateien (z. B. CSV-Datasets).

    • Standardwerte sind 200 virtuelle Benutzer, die für 120 Sekunden in den einzelnen ausgewählten Regionen ausgeführt werden.

    • Übernehmen Sie diese Datei in Ihrem Repository, um zukünftige Auslastungstestausführungen wiederzuverwenden und zu automatisieren.

  5. Copilot überprüft die Konfiguration vor der Ausführung. Folgen Sie den Anweisungen im Chatfenster. Andernfalls werden das Testskript und die zugehörigen Artefakte in Azure Load Testing hochgeladen und für die Ausführung vorbereitet. Dieser Vorgang kann bis zu einer Minute dauern, und der Fortschritt wird im Ausgabebereich angezeigt.

    Screenshot des Ladetestfortschritts in der VS Code-Ausgabekonsole.

  6. Wenn der Test gestartet wird, wird in der unteren rechten Ecke von VS Code eine Benachrichtigung (Popupmeldung) angezeigt. Klicken Sie auf die Schaltfläche " In Azure Portal öffnen ", um die Testausführung in Echtzeit zu überwachen.

  7. Wenn der Test gestartet wird, wird in der unteren rechten Ecke eine Benachrichtigung (Popupmeldung) angezeigt. Klicken Sie auf die Schaltfläche " In Azure Portal öffnen ", um die Testausführung in Echtzeit zu überwachen.

    Screenshot der Ergebnisse des Auslastungstests in Azure Load Testing.

Tipp

Um schnell auf Testergebnisse aus früheren Ausführungen zuzugreifen, verwenden Sie den Befehl" " Ladentests: Auslastungstest anzeigen".

In dieser Schnellstartanleitung wurden vertrauliche Variablen wie API_KEY in einer .env Datei gespeichert und in den Clouddienst hochgeladen. Als bewährte Methode sollten geheime Schlüssel jedoch sicher in Azure Key Vault verwaltet werden. Die Erweiterung enthält Anleitungen zum Einrichten dieses Vorgangs.

Bisher in dieser Schnellstartanleitung wurden vertrauliche Variablen wie API_KEY in einer .env Datei gespeichert und in den Clouddienst hochgeladen. Als bewährte Methode sollten geheime Schlüssel jedoch sicher in Azure Key Vault verwaltet werden. Die Erweiterung enthält Anleitungen zum Einrichten dieses Vorgangs.

  1. Öffnen Sie das Fenster "Copilot-Chat ", geben Sie ein @testing /setupLoadTestSecretsInAzure , und drücken Sie die EINGABETASTE.

  2. Copilot führt Sie durch die folgenden Schritte:

  3. Copilot führt Sie durch:

    • Erstellen eines Azure Key Vault.
    • Zuweisen einer verwalteten Identität zu Ihrer Azure Load Testing-Ressource.
    • Hinzufügen von geheimen Schlüsseln zu Azure Key Vault.
    • Konfigurieren Der YAML-Datei für den Verweis auf Schlüsseltresorschlüssel anstelle von .env.

Immer wenn Sie Das Locust-Skript oder die YAML-Konfiguration ändern, können Sie den Test erneut ausführen, indem Sie "Run load test" (Azure Load Testing) ausführen.

Zusammenfassung

In dieser Schnellstartanleitung haben Sie die Azure Load Testing-Erweiterung für Visual Studio Code verwendet, um Locust-Ladetests mit Copilot einfach zu erstellen, lokal zu durchlaufen und in Azure mühelos zu skalieren. Die Azure Load Testing-Erweiterung für VS Code vereinfacht den Prozess der Erstellung eines realistischen Testskripts für Ihr Testszenario. Azure Load Testing abstrahiert die Komplexität der Einrichtung der Infrastruktur zum Simulieren der hohen Benutzerlast für Ihre Anwendung.

Sie können den Auslastungstest weiter erweitern, um auch serverseitige Metriken der Anwendung unter Auslastung zu überwachen und Testfehlermetriken anzugeben, um benachrichtigt zu werden, wenn die Anwendung Ihre Anforderungen nicht erfüllt. Um sicherzustellen, dass die Anwendung weiterhin gut funktioniert, können Sie auch Auslastungstests als Teil Ihres Continuous Integration und Continuous Delivery (CI/CD) Workflows integrieren.