Manuelle Konfiguration Ihres CI/CD-Workflows für die Ausführung von Auslastungstests

Sie können einen Auslastungstest in Azure Load Testing automatisieren, indem Sie eine CI/CD-Pipeline erstellen. In diesem Artikel erfahren Sie, wie Sie GitHub Actions, Azure Pipelines oder andere CI-Tools manuell konfigurieren, um einen vorhandenen Test in Azure Load Testing aufzurufen. Automatisieren Sie einen Auslastungstest, um die Leistung und Stabilität Ihrer Anwendung unter Last kontinuierlich zu überprüfen.

So fügen Sie einer CI/CD-Pipeline einen vorhandenen Auslastungstest hinzu:

  • Konfigurieren Sie die Dienstauthentifizierung, damit das CI-Tool eine Verbindung mit Ihrer Azure Lasttestressource herstellen kann.
  • Fügen Sie Ihrem Repository Lasttesteingabedateien hinzu, z. B. das Testskript und die YAML-Konfiguration für den Auslastungstest.
  • Aktualisieren Sie die CI/CD-Pipelinedefinition, um Azure Load Testing aufzurufen.

Voraussetzungen

  • Eine Azure DevOps Organisation und projekt. Wenn Sie nicht über eine Azure DevOps Organisation verfügen, können Sie eine kostenlos erstellen. Wenn Sie Hilfe bei den ersten Schritten mit Azure Pipelines benötigen, lesen Sie Create your first pipeline.

Konfigurieren der Dienstauthentifizierung

Um einen Auslastungstest in Ihrem CI/CD-Workflow auszuführen, müssen Sie dem CI/CD-Workflow die Berechtigung für den Zugriff auf Ihre Auslastungstestressource erteilen. Erstellen Sie einen Dienstprinzipal für den CI/CD-Workflow und weisen Sie die Azure RBAC-Rolle "Lastentest-Mitwirkender" zu.

Erstellen einer Dienstverbindung in Azure Pipelines

In Azure Pipelines erstellen Sie eine serviceverbindung in Ihrem Azure DevOps Projekt, um auf Ressourcen in Ihrem Azure-Abonnement zuzugreifen. Wenn Sie die Dienstverbindung erstellen, erstellt Azure DevOps ein Microsoft Entra Dienstprinzipalobjekt.

  1. Melden Sie sich bei Ihrer Azure DevOps Organisation (https://dev.azure.com/<your-organization>) an, und wählen Sie Ihr Projekt aus.

    Ersetzen Sie den Textplatzhalter <your-organization> durch Ihren Projektbezeichner.

  2. Wählen Sie Project Einstellungen>Service connections>+ Neue Dienstverbindung aus.

  3. Wählen Sie im Bereich Neue Dienstverbindung den Azure Resource Manager aus, und wählen Sie dann Nächst aus.

  4. Wählen Sie die Authentifizierungsmethode Dienstprinzipal (automatisch) und anschließend Weiter aus.

  5. Geben Sie die Details zur Dienstverbindung ein, und wählen Sie dann Speichern aus, um die Dienstverbindung zu erstellen.

    Feld Wert
    Bereichsebene Abonnement.
    Abonnement Wählen Sie das Azure-Abonnement aus, das Ihre Ressourcen zum Ladentest hostet.
    Ressourcengruppe Wählen Sie die Ressourcengruppe aus, die die Ressource für den Auslastungstest enthält.
    Name der Dienstverbindung Geben Sie für die Dienstverbindung einen eindeutigen Namen ein.
    Zugriffserlaubnis für alle Pipelines gewähren Aktiviert.
  6. Wählen Sie in der Liste der Dienstverbindungen die zuvor erstellte Dienstverbindung aus, und wählen Sie dann Dienstprinzipal verwalten aus.

    Screenshot: Auswahloptionen für die Verwaltung eines Dienstprinzipals

    Das Azure Portal wird auf einer separaten Browserregisterkarte geöffnet und zeigt die Dienstprinzipaldetails an.

  7. Kopieren Sie im Azure Portal den Wert Displayname.

    Sie verwenden diesen Wert im nächsten Schritt, um dem Dienstprinzipal Berechtigungen zum Ausführen von Auslastungstests zu erteilen.

Gewähren des Zugriffs auf Azure Load Testing

Azure Load Testing verwendet Azure RBAC, um Berechtigungen zum Ausführen bestimmter Aktivitäten für Ihre Auslastungstestressource zu erteilen. Um einen Auslastungstest über Ihre CI/CD-Pipeline auszuführen, weisen Sie dem Dienstprinzipal die Rolle „Mitwirkender für Auslastungstest“ zu.

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Load Testing Ressource.

  2. Klicken Sie auf Zugriffssteuerung (IAM)>Hinzufügen>Rollenzuweisung hinzufügen.

  3. Wählen Sie auf der Registerkarte Rolle in der Liste der Auftragsfunktionsrollen die Option Mitwirkender für Auslastungstest aus.

    Screenshot, das die Liste der Rollen auf der Seite „Rollenzuweisung hinzufügen“ im Azure-Portal zeigt, wobei die Rolle „Mitwirkender für Lasttests“ hervorgehoben wird.

  4. Wählen Sie auf der Registerkarte Mitglieder die Option Mitglieder auswählen aus, und verwenden Sie dann den Anzeigenamen, den Sie zuvor kopiert haben, um den Dienstprinzipal zu suchen.

  5. Wählen Sie den Dienstprinzipal und dann Auswählen aus.

  6. Wählen Sie auf der Registerkarte Überprüfen + zuweisen die Option Überprüfen + zuweisen aus, um die Rollenzuweisung hinzuzufügen.

Sie können jetzt die Dienstverbindung in Ihrer Azure Pipelines Workflowdefinition verwenden, um auf Ihre Azure Auslastungstestressource zuzugreifen.

Hinzufügen von Auslastungstestdateien in Ihrem Repository

Um einen Auslastungstest mit Azure Load Testing in einem CI/CD-Workflow auszuführen, müssen Sie alle Ladetesteingabedateien in Ihrem Quellcodeverwaltungs-Repository hinzufügen.

Wenn Sie keinen Auslastungstest haben, fügen Sie dem Quellcode-Repository die folgenden Dateien hinzu:

  • Auslastungstestkonfigurationsdatei (YAML). Erfahren Sie, wie Sie eine Auslastungstestkonfigurations-YAML-Datei erstellen können.
  • Testplandatei. Fügen Sie für JMeter-basierte Tests ein JMeter-Testskript (JMX-Datei) hinzu. Fügen Sie für Locust-basierte Tests ein Locust-Testskript (.py Datei) hinzu. Fügen Sie für URL-basierte Tests eine JSON-Anforderungsdatei hinzu.
  • Alle JMeter-Benutzereigenschaftsdateien.
  • Alle Eingabedatendateien, die Ihr Testplan verwendet. Beispiel: CSV-Datendateien.

Wenn Sie über einen vorhandenen Ladetest verfügen, können Sie die Konfigurationseinstellungen und alle Eingabedateien direkt aus dem Azure-Portal herunterladen. Führen Sie die folgenden Schritte aus, um die Eingabedateien für einen vorhandenen Ladetest im Azure-Portal herunterzuladen:

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Load Testing Ressource.

  2. Wählen Sie im linken Bereich Tests aus, um die Liste der Auslastungstests anzuzeigen, und wählen Sie dann Ihren Test aus.

    Screenshot mit der Liste der Tests für eine Azure Load Testing resource.

  3. Wählen Sie die Auslassungspunkte (...) neben dem Testlauf aus, mit dem Sie arbeiten, und wählen Sie dann Eingabedatei herunterladen aus.

    Der Browser lädt einen gezippten Ordner herunter, der die Eingabedateien für den Auslastungstest enthält.

    Screenshot: Herunterladen der Ergebnisse eines Auslastungstestlaufs

  4. Verwenden Sie ein beliebiges ZIP-Tool, um die Eingabedateien zu extrahieren.

    Der Ordner enthält die folgenden Dateien:

    • config.yaml: Die YAML-Konfigurationsdatei für den Auslastungstest. Sie verweisen auf diese Datei in der CI/CD-Workflowdefinition.
    • .jmx oder .py: Das JMeter- oder Locust-Testskript
    • Alle zusätzlichen Eingabedateien, z. B. CSV-Dateien oder Benutzereigenschaftendateien, die zum Ausführen des Auslastungstests benötigt werden.
  5. Committen Sie alle extrahierten Eingabedateien in Ihr Quellcodeverwaltungsrepository.

    Verwenden Sie das Quellcoderepository, in dem Sie die CI/CD-Pipeline konfigurieren.

Aktualisieren der CI/CD-Workflowdefinition

Azure Load Testing unterstützt sowohl GitHub Actions als auch Azure Pipelines für die Ausführung von Auslastungstests.

Installieren der Azure Load Testing-Erweiterung für Azure DevOps

Zum Erstellen und Ausführen eines Auslastungstests verwendet die Azure Pipelines Workflowdefinition die Azure Load Testing-Aufgabeerweiterung aus dem Azure DevOps Marketplace.

  1. Öffnen Sie die Aufgabenerweiterung Azure Load Testing im Azure DevOps Marketplace, und wählen Sie Get it free aus.

  2. Wählen Sie Ihre Azure DevOps Organisation und dann Install aus, um die Erweiterung zu installieren.

    Wenn Sie nicht über Administratorrechte für die ausgewählte Azure DevOps Organisation verfügen, wählen Sie Request aus, um einen Administrator zur Installation der Erweiterung anzufordern.

Aktualisieren des Azure Pipelines-Workflows

Aktualisieren Sie ihren Azure Pipelines Workflow so, dass ein Auslastungstest für Ihre Azure Load Testing-Ressource ausgeführt wird.

  1. Melden Sie sich bei Ihrer Azure DevOps Organisation (https://dev.azure.com/<your-organization>) an, und wählen Sie Ihr Projekt aus.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus, wählen Sie Ihre Pipeline und dann Bearbeiten aus, um Ihre Workflowdefinition zu bearbeiten.

    Wählen Sie alternativ Pipeline erstellen aus, um eine neue Pipeline in Azure Pipelines zu erstellen.

  3. Verwenden Sie die AzureLoadTest-Aufgabe, um den Auslastungstest auszuführen.

    Geben Sie in der loadTestConfigFile-Eigenschaft die Konfigurationsdatei für den Auslastungstest an, die Sie zuvor exportiert haben.

    Ersetzen Sie die Platzhalter für <load-testing-resource> und <load-testing-resource-group> text durch den Namen ihrer Azure Lasttestressource und der Ressourcengruppe.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    Optional können Sie Parameter oder Geheimnisse mithilfe der env-Eigenschaft oder der secrets-Eigenschaft an den Auslastungstest übergeben. Legen Sie fest waitForCompletion: false , ob Sie fortfahren möchten, ohne auf den Abschluss des Ladetestlaufs zu warten.

  4. Verwenden Sie die Aufgabe publish, um die Testergebnisse als Artefakte in Ihrer Azure Pipelines Workflowausführung zu veröffentlichen.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

Anzeigen von Auslastungstestergebnissen

Wenn Sie einen Auslastungstest über Ihre CI/CD-Pipeline ausführen, können Sie die Zusammenfassungsergebnisse direkt im CI/CD-Ausgabeprotokoll anzeigen. Wenn Sie die Testergebnisse als Pipelineartefakt veröffentlicht haben, können Sie auch eine CSV-Datei für die weitere Berichterstellung herunterladen.

Screenshot: Protokollierungsinformationen des Workflows

Bereinigen von Ressourcen

Wenn Sie die erstellten Ressourcen nicht mehr benötigen, löschen Sie sie, damit Ihnen keine weiteren Kosten entstehen.

  1. Entfernen Sie die Änderungen an Azure Pipelines:

    1. Melden Sie sich bei Ihrer Azure DevOps Organisation (https://dev.azure.com/<your-organization>) an, und wählen Sie Ihr Projekt aus.

      Ersetzen Sie den Textplatzhalter <your-organization> durch Ihren Projektbezeichner.

    2. Wenn Sie eine neue Pipeline erstellt haben:

      1. Wählen Sie "Pipelines" und dann Ihre Pipeline aus.

      2. Wählen Sie die Auslassungspunkte und anschließend Löschen aus.

        Screenshot zum Löschen einer Azure Pipelines definition.

      3. Geben Sie den Pipelinenamen ein, und wählen Sie dann Löschen aus, um die Pipeline zu löschen.

    3. Wenn Sie eine vorhandene Workflowdefinition geändert haben, machen Sie die Änderungen für das Ausführen des Auslastungstests rückgängig, und speichern Sie den Workflow.

  2. Entfernen der Dienstverbindung:

    1. Wählen Sie Project Settings>Service connections und dann Ihre Dienstverbindung aus.
    2. Wählen Sie Bearbeiten>Löschen aus, um die Dienstverbindung zu entfernen.

Nächste Schritte

Fahren Sie mit dem nächsten Artikel fort, um zu erfahren, wie Sie Leistungsregressionen ermitteln, indem Sie Fehlerkriterien für Tests definieren und Testläufe vergleichen.