Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Last- und Leistungstests in einer DevOps Delivery-Pipeline

Von Sergej Baranow

11. Juli 2017

6  min lesen

Leistungstests werden zunehmend Teil der Continuous-Delivery-Pipeline in DevOps-Einstellungen. Hier sprechen wir über Leistungstests und die besten Möglichkeiten, Last- und Leistungstests in die Bereitstellung von Anwendungen einzubeziehen.

In DevOps-Umgebungen wird es zu einer bewährten Methode, Leistungstests als Teil der Pipeline für die kontinuierliche Bereitstellung durchzuführen. Leistungstests müssen daher ein wesentlicher Bestandteil der kontinuierlichen Anwendungsbereitstellung sein.

Immer mehr Teams erkennen, dass eine Regression der Leistung die Anwendungsqualität ebenso stark beeinflussen kann wie eine Regression der Funktionalität! Daher konzentrieren wir uns auf Leistungstests und darauf, wie Last- und Leistungstests am besten in die Anwendungsbereitstellung integriert werden können.

Integrieren Sie Leistungstests in die Continuous-Delivery-Pipeline

Sie können mit der Integration von Leistungstests in die Pipeline für die kontinuierliche Bereitstellung beginnen, indem Sie Jenkins oder einem Tool für die kontinuierliche Integration Ihrer Wahl ausgewählte Leistungstests hinzufügen und diese regelmäßig ausführen lassen.

Abhängig von Ihren Anforderungen können Sie Leistungstests an einem oder mehreren der folgenden Punkte in der Build- / Testinfrastruktur ausführen:

  • Nach jedem Build mit einem reduzierten Satz von Leistungs-Rauchtests.
  • Einmal am Tag mit einem umfassenderen Satz von Leistungstests.
  • Einmal am Wochenende oder basierend auf der Verfügbarkeit der Infrastruktur, mit einer Reihe von Langzeittests für Dauertests oder Lasttests mit hohem Volumen für Stresstests.

Dies allein reicht jedoch nicht aus.

Das manuelle Analysieren von Lasttestberichten kann zeitaufwändig sein und erfordert möglicherweise besondere Fähigkeiten, über die nicht jeder Entwickler verfügt. Ohne die Möglichkeit, die Analyse von Lasttestberichten zu automatisieren, wird die Überprüfung der Ergebnisse von Leistungstests zu einer mühsamen Zeitsenke. Wichtige Leistungsinformationen können ebenfalls übersehen werden. In solchen Szenarien führen Sie möglicherweise kontinuierlich Leistungstests durch, deren Nutzen jedoch begrenzt ist.

So optimieren Sie Leistungstests mit einem Shift-Left-Ansatz

Automatisieren Sie die Erfassung und Analyse von Leistungstestergebnissen

Um den vollen Nutzen kontinuierlicher Leistungstests nutzen zu können, müssen Sie einen wirksamen Mechanismus zur Analyse der Ergebnisse von Leistungstests einrichten. Parasoft-Lasttest und sein LoadTest Continuum (ein Modul von Parasoft SOAtest) stellen Ihnen Tools zur Verfügung, mit denen Sie die Erfassung und Analyse von Leistungstestergebnissen automatisieren und Einblicke in die Leistung Ihrer Anwendung erhalten können.

So richten Sie Ihre Umgebung für die Ausführung kontinuierlicher Leistungstests ein

Die folgenden Schritte helfen Ihnen beim Einrichten Ihrer Umgebung für die kontinuierliche Ausführung von Leistungstests mit Parasoft LoadTest und LoadTest Continuum:

  1. Überprüfen und konfigurieren Sie die QoS-Metriken des LoadTest-Projekts für die Automatisierung.
  2. Bereitstellen und Konfigurieren von LoadTest Continuum für die Erfassung von Lasttestberichten.
  3. Konfigurieren Sie LoadTest-Projekte zur Ausführung in Stapeln.
  4. Starten Sie die Ausführung von LoadTest-Projektstapeln als Teil der kontinuierlichen Integration und verwenden Sie LoadTest Continuum, um die Ergebnisse von Leistungstests regelmäßig zu überprüfen und zu analysieren.

Ich werde diese Schritte im Folgenden einzeln ausführlicher ausführen.

Schritt 1 - Überprüfen und Konfigurieren von QoS-Metriken für die Automatisierung

Qoft-Metriken (Parasoft LoadTest Quality of Service) sind eines der Hauptmerkmale für die Automatisierung der Analyse von Leistungstestergebnissen. QoS-Metriken reduzieren große Datenmengen in einem Auslastungstestbericht auf eine Reihe von Erfolgs- / Fehlerantworten zur Leistung Ihrer Anwendung. Parasoft LoadTest bietet eine Vielzahl von QoS-Metriken, die von gebrauchsfertigen Schwellenwertmetriken bis zu benutzerdefinierten Metriken reichen, mit denen Sie die LoadTest-API für die erweiterte Analyse von Lasttestdaten verwenden können.

Um Ihre Leistungstests für die Automatisierung vorzubereiten, müssen Sie die QoS-Metriken in Ihren LoadTest-Projekten überprüfen. Führen Sie ein LoadTest-Projekt aus und untersuchen Sie den Bericht: Alle Erfolgs- und Fehlerkriterien, anhand derer Sie einen Lasttestbericht manuell analysieren, sollten als QoS-Metriken dargestellt werden. Konvertieren Sie so viele Metriken wie möglich in "numerische" Metriken. Eine numerische QoS-Metrik gibt nicht nur ein Erfolgs- / Fehlerergebnis zurück, sondern quantifiziert auch einen wichtigen Leistungsindikator für diese Metrik. Beispielsweise würde eine Metrik, die einen CPU-Auslastungsschwellenwert validiert, auch den tatsächlichen CPU-Auslastungswert als numerische Metrik bereitstellen.

In LoadTest Continuum werden häufig numerische Metriken verwendet, um die Metrikleistung über die Zeit darzustellen:

Abb. 1. Numerische Metrikergebnisse, die in einem LoadTest Continuum-Bericht aufgezeichnet sind.

Sobald Sie die QoS-Metriken für Ihre LoadTest-Projekte konfiguriert haben, ist es Zeit, das LoadTest-Kontinuum für die Erfassung und Analyse von Leistungsdaten einzurichten.

Schritt 2 - Bereitstellen und Konfigurieren von LoadTest Continuum

Bereitstellen und Konfigurieren des Webanwendungsarchivs LoadTest Continuum ltc.war (verfügbar im Installationsverzeichnis SOAtest / LoadTest ab Version 9.10.2), wie im Abschnitt „LoadTest Continuum“ der LoadTest-Dokumentation beschrieben.

Schritt 3 – Konfigurieren Sie LoadTest-Projekte in Batches für die Ausführung

Kombinieren Sie Ihre LoadTest-Projekte zu CMD-Skripten für die Stapelausführung. Mit LoadTest .cmd-Skripten können Sie Gruppen von Projekten angeben, aus denen verschiedene Sätze von Leistungstests bestehen, z. B. die zuvor erwähnten „Rauch“ -Tests, täglichen Tests oder Wochenendtests.

Konfigurieren Sie die .cmd-Skripte so, dass Berichtsdaten an LoadTest Continuum gesendet werden, wie im Abschnitt „Senden von Berichten an LoadTest Continuum“ in der LoadTest-Dokumentation beschrieben. Richten Sie Ihr Tool für die kontinuierliche Integration so ein, dass LoadTest .cmd-Skripte als Teil eines Erstellungsprozesses oder in regelmäßigen Abständen ausgeführt werden. In Jenkins können Sie beispielsweise ein LoadTest .cmd-Skript mit dem folgenden Schritt zum Erstellen eines Windows-Batch-Befehls ausführen:

% SOATEST_HOME% \ lt.exe ”-J-Xmx4096M -cmd -run“% WORKSPACE% \ ltcontinuum.cmd

Schritt 4 – Richten Sie ein Dashboard in Parasoft DTP ein

Parasoft DTP enthält Berichts- und Analyse-Dashboards, mit denen Sie dies tun können Überwachen Sie den Zustand und den Fortschritt Ihres Softwareprojekts mit einer Vielzahl von Widgets und Berichten.

Ein Parasoft LoadTest-Kontinuum DTP-Widget Ermöglicht das Hinzufügen der neuesten Zusammenfassung der LoadTest-Ergebnisse zu Ihrem DTP-Projekt-Dashboard und bietet eine schnelle Möglichkeit, den Status der Leistungstestergebnisse in Ihrer täglichen Routine zur Überprüfung des Projektstatus zu bewerten.

Das Widget zeigt die Anzahl der insgesamt durchgeführten und fehlgeschlagenen Tests und Metriken für die letzten LoadTest-Läufe an. Um die Ergebnisse detaillierter anzuzeigen, klicken Sie im Widget auf den Projektlink. Die Seite LoadTest Continuum wird in einer neuen Registerkarte geöffnet.

Abb. 2. LoadTest Continuum-Widgets in einem DTP-Dashboard.

Gehen Sie einfach folgendermaßen vor, um ein benutzerdefiniertes LoadTest Continuum-HTML-Widget in DTP einzurichten:

  1. Erstellen Sie im Parasoft DTP Report Center ein neues Dashboard oder öffnen Sie ein vorhandenes.
  2. Klicken Sie auf Widget hinzufügen. Wählen Sie im Dialogfeld "Widget hinzufügen" die Option "Benutzerdefiniert" -> "Benutzerdefiniertes HTML-Widget".
  3. Kopieren Sie den Inhalt der folgenden Datei aus der LoadTest Continuum-Installation in den HTML-Textbereich des Dialogfelds:% TOMCAT_HOME% \ webapps \ ltc \ dtp \ ltc_dtp_widget.html
  4. Ändern Sie den HTML-Code mit Ihren benutzerdefinierten Einstellungen:
    1. Suchen Sie die Funktion getServerURL (). Ändern Sie den Rückgabewert mit dem Host und dem Port Ihrer LoadTest Continuum-Installation.
    2. Suchen Sie die Funktion getProjectName (). Ändern Sie den Rückgabewert mit dem Namen des Projekts, das Sie im Widget verfolgen möchten.
  5. Klicken Sie auf Erstellen.

Schritt 5 – Überprüfen und analysieren Sie die Ergebnisse der Leistungstests

Parasoft LoadTest Continuum dient sowohl als Erfassungspunkt für Ihre LoadTest-Berichte als auch als Analysetool, das Lasttestdaten aus mehreren Läufen organisiert. LoadTest Continuum organisiert die Daten in einer Informationspyramide, mit der Sie Ihre Leistungstestergebnisse auf verschiedenen Detailebenen überprüfen können, von allgemeinen täglichen Zusammenfassungen oben über QoS-Metrikergebnisse im Kern bis hin zu detaillierten Lasttestberichten oben Unterseite:

Abb.. 3. Die tägliche Zusammenfassung und Testmetrikansicht von LoadTest Continuum.

Betrachten Sie den folgenden Workflow als Beispiel für eine regelmäßige (tägliche) Testüberprüfung:

  1. Führen Sie bei fehlgeschlagenen Tests die folgenden Schritte aus:
    1. Öffnen Sie die Ansicht "Testverlauf" und überprüfen Sie, ob der Test regelmäßig oder sporadisch fehlgeschlagen ist. Der erste Fall würde wahrscheinlich auf eine Regression hinweisen; der zweite Fall eine Instabilität.
    2. Überprüfen Sie die fehlgeschlagenen Metriken des Tests:
      1. Öffnen Sie für eine numerische Metrik die Diagrammansicht des Metrikverlaufs. Verwenden Sie das Metrikverlaufsdiagramm für Einblicke. Wenn beispielsweise ein Test, zu dem die Metrik gehört, instabil ist, weisen kleine Schwankungen des Metrikgraphen normalerweise darauf hin, dass der Metrikschwellenwert angepasst werden muss. Große Schwankungen weisen auf Probleme mit Code oder Infrastruktur hin.
      2. Öffnen Sie den Link Alle Diagramme dieses Tests. Überprüfen Sie die Diagramme anderer numerischer Metriken für denselben Test auf Schwankungen, die den Metrikschwellenwert nicht überschritten haben.
  2. Wenn Sie die LoadTest Continuum DTP-Widgets nicht eingerichtet haben, überprüfen Sie zunächst die Erfolgs- / Fehlerzusammenfassungen der Tests und Metriken auf der Hauptprojektseite des LTC.
  3. Folgen Sie bei Projekten mit Fehlern dem Link zur LTC-Projektseite, um die Details zu überprüfen.
  4. Beginnen Sie mit der Überprüfung des Status Ihrer letzten Auslastungstestläufe in den LoadTest Continuum DTP-Widgets.
  5. Machen Sie dasselbe für den Link Alle Diagramme dieser Metrik, um zu überprüfen, ob ähnliche Metriken anderer Tests betroffen waren. Wenn ja, weist dies auf ein Systemproblem mit Ihrer Anwendung oder Infrastruktur hin, das nicht auf einen einzelnen Test beschränkt ist (siehe Abb. 4).
  6. Für eine eingehendere Analyse öffnen Sie die HTML- oder binären Lasttestberichte des fehlgeschlagenen Tests.

Abb.. 4. Load Test Continuum Alle Diagramme derselben Metrikansicht zeigen die Leistungsverbesserung der CPU% -Metrik über mehrere Tests hinweg.

Die Integration eines Leistungstestprozesses in die Pipeline für die kontinuierliche Bereitstellung ist für die Sicherstellung der Softwarequalität von entscheidender Bedeutung. Um diesen Prozess optimal nutzen zu können, müssen Sie einen effektiven Mechanismus für die Automatisierung der Analyse von Leistungstestergebnissen einrichten.

Seien Sie kontinuierlich mit Parasoft

Sie können Parasoft LoadTest und LoadTest Continuum in Parasoft SOAtest einrichten, das alles bietet, was Sie benötigen, um alle Ihre hochgesteckten Automatisierungsziele für die Analyse von Testergebnissen zu erreichen. Mit einer ausgeklügelten Automatisierung innerhalb von Funktionstests können Sie auf qualitativ hochwertigere Software zugreifen.

Mehr erfahren

Schalten Sie Belastungs- und Leistungstests in der Frühphase frei, indem Sie Ihre vorhandenen Funktionstests verwenden.

Von Sergej Baranow

Sergei ist Principal Software Engineer bei Parasoft und konzentriert sich auf Last- und Leistungstests innerhalb von Parasoft SOAtest.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.