Integration des JMeter API Clients mit CI/CD-Pipelines
Diese Anleitung erklärt, wie Sie einen gespeicherten LoadFocus-JMeter-Test aus CircleCI, Azure DevOps, GitHub Actions, GitLab CI/CD oder Jenkins ausführen, damit ein Performance-Test Ihr Deployment bestehen oder scheitern lassen kann.
Inhaltsverzeichnis
Abschnitt betitelt „Inhaltsverzeichnis“- Allgemeiner Ansatz
- CircleCI-Integration
- Azure DevOps-Integration
- GitHub Actions-Integration
- GitLab CI/CD-Integration
- Jenkins-Integration
- Best Practices
- Fehlerbehebung
Allgemeiner Ansatz
Abschnitt betitelt „Allgemeiner Ansatz“Unabhängig von der CI/CD-Plattform gibt es gemeinsame Schritte zur Integration des LoadFocus JMeter API Clients:
- Client installieren: Installieren Sie
@loadfocus/loadfocus-api-clientzu Beginn Ihres Workflows - Anmeldedaten konfigurieren: Speichern Sie Ihren API-Schlüssel und Ihre Team-ID aus den geheimen Variablen Ihrer Plattform
- Tests ausführen: Führen Sie einen gespeicherten JMeter-Test per Namen aus, mit Schwellenwerten
- Ergebnisse verarbeiten: Lesen Sie die Ausgabe oder speichern Sie sie mit
--format json - Entscheidungen treffen:
run-testbeendet sich mit Exit-Code 1, wenn ein Schwellenwert verfehlt wird oder der Lauf fehlschlägt, der Pipeline-Schritt schlägt also von selbst fehl
Die drei Befehle, mit --name als exaktem Namen eines Tests, den Sie in LoadFocus gespeichert haben:
npm install -g @loadfocus/loadfocus-api-clientloadfocus-api config set --apikey "$LOADFOCUS_API_KEY" --teamid "$LOADFOCUS_TEAM_ID"loadfocus-api jmeter run-test --name "My_JMeter_Test" --thresholds "avgresponse<=200,errors==0"Best Practices
Abschnitt betitelt „Best Practices“Bei der Integration des LoadFocus JMeter API Clients mit Ihrer CI/CD-Pipeline beachten Sie diese Best Practices:
Sicherheit
Abschnitt betitelt „Sicherheit“- Kodieren Sie niemals Ihren API-Schlüssel oder Ihre Team-ID fest in Ihrer Pipeline-Konfiguration
- Verwenden Sie das Secrets-Management-System Ihrer CI/CD-Plattform
- Beschränken Sie den Zugriff auf Ihre Leistungstestergebnisse auf autorisiertes Personal
Leistungstest-Konfiguration
Abschnitt betitelt „Leistungstest-Konfiguration“- Verwenden Sie beschreibende Testnamen, die den getesteten Branch/die Umgebung enthalten
- Setzen Sie angemessene Schwellenwerte basierend auf den Leistungsanforderungen Ihrer Anwendung
- Erwägen Sie die Ausführung verschiedener Testprofile für verschiedene Umgebungen (z. B. leichtere Tests für dev, vollständige Tests für Staging)
Pipeline-Integration
Abschnitt betitelt „Pipeline-Integration“- Führen Sie Leistungstests aus, nachdem funktionale Tests bestanden haben
- Erwägen Sie die parallele Ausführung von Leistungstests mit anderen nicht-blockierenden Aufgaben
- Richten Sie Benachrichtigungen für Leistungstestfehler ein
Ergebnisanalyse
Abschnitt betitelt „Ergebnisanalyse“- Speichern Sie Leistungstestergebnisse als Artefakte für historische Vergleiche
- Erwägen Sie die Implementierung einer Trendanalyse, um Leistungsverschlechterungen im Zeitverlauf zu erkennen
- Dokumentieren Sie Baseline-Leistungsmetriken zum Vergleich
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Häufige Probleme
Abschnitt betitelt „Häufige Probleme“Testausführung schlägt fehl
Abschnitt betitelt „Testausführung schlägt fehl“- Überprüfen Sie, ob Ihr API-Schlüssel und Ihre Team-ID korrekt konfiguriert sind
- Prüfen Sie, ob Sie das Limit für gleichzeitige Tests Ihres Kontos erreicht haben
- Überprüfen Sie, ob der Testname in Ihrem LoadFocus-Konto existiert
Schwellenwerte funktionieren nicht wie erwartet
Abschnitt betitelt „Schwellenwerte funktionieren nicht wie erwartet“- Stellen Sie sicher, dass die Schwellenwertsyntax korrekt ist: eine kommagetrennte Liste aus Metrik, Operator und Zahl, zum Beispiel
avgresponse<=200,errors==0. Metriken sindavgresponse,errors,p95,p99,min,maxundhitspersec(Antwortzeiten in Millisekunden). Operatoren sind<,<=,>,>=,==(oder=) und!= - Ein nicht lesbarer Schwellenwert wird mit einer Warnung übersprungen. Kann keiner der übergebenen Schwellenwerte gelesen werden, gibt
run-testeinen Fehler aus und beendet sich mit Exit-Code 1, statt den Standardavgresponse<=100zu verwenden. Prüfen Sie die ersten Zeilen der Ausgabe auf "Invalid threshold" - Prüfen Sie, ob die ausgewerteten Metriken für Ihren Test relevant sind
- Überprüfen Sie, ob der Test genug Last erzeugt, um aussagekräftige Ergebnisse zu liefern
Pipeline-Timeout
Abschnitt betitelt „Pipeline-Timeout“- Passen Sie die Timeout-Einstellungen in Ihrer CI/CD-Konfiguration an
- Mit
--wait-timeout <seconds>legen Sie fest, wie lange der Client auf das Ende des Tests wartet (Standard 1800). Läuft die Zeit ab, schlägt der Befehl mit Exit-Code 1 fehl, der Test läuft in LoadFocus aber weiter --poll-interval <seconds>legt fest, wie oft der Status geprüft wird (Standard 10)
Für plattformspezifische Integrationsdetails siehe die speziellen Anleitungen für CircleCI, Azure DevOps, GitHub Actions, Jenkins und GitLab CI/CD.