Lesen von Daten aus einer CSV-Datei in JMeter mit Azure Load Testing

In diesem Artikel erfahren Sie, wie Sie Daten aus einer CSV-Datei (Durch Trennzeichen getrennte Werte) in JMeter mit Azure Load Testing lesen. Sie können das CSV-Datasetkonfigurationselement von JMeter in Ihrem Testskript verwenden.

Verwenden Sie Daten aus einer externen CSV-Datei, um das JMeter-Testskript konfigurierbar zu machen. Sie können beispielsweise eine API für jeden Eintrag in einer CSV-Datei eines Kunden aufrufen.

In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Konfigurieren Sie Ihr JMeter-Skript, um die CSV-Datei zu lesen.
  • Fügen Sie die CSV-Datei zum Auslastungstest hinzu.
  • Teilen Sie die CSV-Datei optional gleichmäßig auf alle Testmodulinstanzen auf.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie kein Azure-Abonnement haben, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
  • Eine Azure Load Testing-Ressource. Informationen zum Erstellen einer Load Testing-Ressource finden Sie unter Erstellen der Azure Load Testing-Ressource.
  • Ein Apache JMeter-Testskript (JMX).
  • (Optional) Apache JMeter GUI zum Erstellen Ihres Testskripts. Informationen zum Installieren von Apache JMeter finden Sie unter Apache JMeter Erste Schritte.

Konfigurieren Ihres JMeter-Skripts

In diesem Abschnitt konfigurieren Sie Ihr Apache JMeter-Skript so, dass es auf die externe Datei verweist. Sie verwenden ein CSV-Datasetkonfigurationselement, um Daten aus einer CSV-Datei zu lesen.

Azure Load Testing lädt die JMX-Datei und alle zugehörigen Dateien in einen einzelnen Ordner hoch. Wenn Sie in Ihrem JMeter-Skript auf eine externe Datei verweisen, vergewissern Sie sich, dass Sie nur den Dateinamen verwenden und alle Dateipfadverweise entfernt werden.

So bearbeiten Sie Ihr JMeter-Skript mithilfe der Apache JMeter-GUI:

  1. Wählen Sie das CSV-Datasetkonfigurationselement in Ihrem Testplan aus.

  2. Aktualisieren Sie die Dateinamen-Information und entfernen Sie jegliche Pfad-Referenz.

  3. Geben Sie optional die CSV-Feldnamen in Variablennamen ein, wenn Sie die CSV-Datei auf Testmodule aufteilen.

    Azure Load Testing behält die Kopfzeile beim Aufteilen der CSV-Datei nicht bei. Geben Sie die Variablennamen im CSV Data Set Config-Element anstelle einer Kopfzeile an.

    Screenshot: JMeter-Benutzeroberfläche zum Konfigurieren eines CSV-Dataset-Konfigurationselements.

  4. Wiederholen Sie die vorherigen Schritte für jedes CSV Data Set Config-Element im Skript.

  5. Speichern Sie das JMeter-Skript, und fügen Sie es ihrem Testplan hinzu.

So bearbeiten Sie Ihr JMeter-Skript mit Visual Studio Code oder ihrem bevorzugten Editor:

  1. Öffnen Sie die JMX-Datei in Visual Studio Code.

  2. Für jedes CSVDataSet:

    1. Aktualisieren Sie das filename-Element, und entfernen Sie jeden Dateipfadverweis.

    2. Fügen Sie die CSV-Feldnamen als durch Kommas getrennte Liste in variableNames hinzu.

    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search parameters" enabled="true">
      <stringProp name="delimiter">,</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="filename">search-params.csv</stringProp>
      <boolProp name="ignoreFirstLine">true</boolProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <stringProp name="shareMode">shareMode.all</stringProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="variableNames">username,query</stringProp>
    </CSVDataSet>
    
  3. Speichern Sie das JMeter-Skript, und fügen Sie es ihrem Testplan hinzu.

Hinzufügen einer CSV-Datei zum Auslastungstest

Wenn Sie in Ihrem JMeter-Skript auf eine externe Datei verweisen, laden Sie diese Datei in Ihren Auslastungstest hoch. Wenn die Auslastung gestartet wird, kopiert Azure Load Testing alle Dateien in einen einzelnen Ordner in jeder der Testmodulinstanzen.

Wichtig

Azure Load Testing behält die Kopfzeile beim Aufteilen der CSV-Datei nicht bei. Bevor Sie die CSV-Datei dem Auslastungstest hinzufügen, entfernen Sie die Kopfzeile aus der Datei.

So fügen Sie dem Auslastungstest mithilfe des Azure-Portal eine CSV-Datei hinzu:

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

  2. Im linken Bereich, wählen Sie Tests, um eine Liste der Tests aufzurufen.

    Tipp

    Sie können das Suchfeld und den Filter Zeitbereich verwenden, um die Anzahl der Tests einzuschränken.

  3. Wählen Sie ihren Test aus der Liste aus, indem Sie das Kontrollkästchen aktivieren, und klicken Sie dann auf Bearbeiten.

    Screenshot: Liste der Auslastungstest und die Schaltfläche „Bearbeiten“

  4. Auf der Test bearbeiten Seite, wählen Sie die Registerkarte Testplan.

  5. Wählen Sie die CSV-Datei auf Ihrem Computer und wählen Sie dann Hochladen aus, um die Datei auf Azure hochzuladen.

    Screenshot: Registerkarte „Testplan“ im Bereich „Test bearbeiten“.

  6. Wählen Sie Anwenden, um den Test zu modifizieren und die neue Konfiguration bei der Wiederholung anzuwenden.

Wenn Sie einen Auslastungstest in Ihrem CI/CD-Workflow ausführen, können Sie der YAML-Datei der Testkonfiguration eine CSV-Datei hinzufügen. Weitere Informationen zum Ausführen eines Auslastungstests in einem CI/CD-Workflow finden Sie im Tutorial: Automatisierte Regressionstests.

So fügen Sie Ihrem Auslastungstest eine CSV-Datei hinzu:

  1. Committen Sie die CSV-Datei an das Quellcodeverwaltungsrepository, das die JMX-Datei und die YAML-Testkonfigurationsdatei enthält.

  2. Öffnen Sie die YAML-Testkonfigurationsdatei in Visual Studio Code oder im Editor Ihrer Wahl.

  3. Fügen Sie die CSV-Datei den configurationFiles Einstellungen hinzu. Sie können Platzhalter verwenden oder mehrere einzelne Dateien angeben.

    testName: MyTest
    testPlan: SampleApp.jmx
    description: Run a load test for my sample web app
    engineInstances: 1
    configurationFiles:
    - search-params.csv
    

    Hinweis

    Wenn Sie die CSV-Datei in einem separaten Ordner speichern, geben Sie die Datei mit einem relativen Pfadnamen an. Weitere Informationen zur YAML-Syntax finden Sie in der YAML-Referenz zur Testkonfiguration.

  4. Speichern Sie die YAML-Konfigurationsdatei, und committen Sie sie in Ihr Quellcodeverwaltungsrepository.

    Bei der nächsten Ausführung des CI/CD-Workflows wird die aktualisierte Konfiguration verwendet.

Aufteilen von CSV-Eingabedaten auf Testmodule

Standardmäßig kopiert und verarbeitet Azure Load Testing Ihre Eingabedateien unverändert in allen Testmodulinstanzen. Azure Load Testing ermöglicht es Ihnen, die CSV-Eingabedaten gleichmäßig auf alle Modulinstanzen aufzuteilen. Wenn Sie über mehrere CSV-Dateien verfügen, wird jede Datei gleichmäßig geteilt.

Wenn Sie beispielsweise über eine große CSV-Eingabedatei für Kunden verfügen und der Auslastungstest auf 10 parallelen Testmodulen ausgeführt wird, verarbeitet jede Instanz ein Zehntel der Kunden.

Wichtig

Azure Load Testing behält die Kopfzeile beim Aufteilen der CSV-Datei nicht bei.

  1. Konfigurieren Sie Ihr JMeter-Skript so, dass es Variablennamen beim Lesen der CSV-Datei verwendet.
  2. Entfernen Sie die Kopfzeile aus der CSV-Datei, bevor Sie sie dem Auslastungstest hinzufügen.

So konfigurieren Sie Ihren Auslastungstest zum Aufteilen von CSV-Eingabedateien:

  1. Navigieren Sie zur Seite Testplan für den Auslastungstest.

  2. Wählen Sie CSV gleichmäßig auf Testmodule aufteilen aus.

    Screenshot des Kontrollkästchens zum Aktivieren des Aufteilens der CSV-Eingabedateien beim Konfigurieren eines Tests im Azure-Portal.

  3. Wählen Sie Anwenden aus, um die Konfigurationsänderungen zu bestätigen.

    Wenn Sie den Test das nächste Mal ausführen, teilt Azure Load Testing die CSV-Datei gleichmäßig auf die Testmodule auf und verarbeitet sie.

  1. Öffnen Sie die YAML-Testkonfigurationsdatei in Visual Studio Code oder im Editor Ihrer Wahl.

  2. Fügen Sie die splitAllCSVs Einstellung hinzu, und legen Sie ihren Wert auf True fest.

    testName: MyTest
    testPlan: SampleApp.jmx
    description: Run a load test for my sample web app
    engineInstances: 1
    configurationFiles:
      - customers.csv
    splitAllCSVs: True
    
  3. Speichern Sie die YAML-Konfigurationsdatei, und committen Sie sie in Ihr Quellcodeverwaltungsrepository.

    Wenn Sie den Test das nächste Mal ausführen, teilt Azure Load Testing die CSV-Datei gleichmäßig auf die Testmodule auf und verarbeitet sie.

Nächste Schritte