Load Testing-Technologien

Die folgenden Protokolle werden nativ von der LoadView-Testplattform unterstützt.

Wählen Sie eine der unten aufgeführten Technologien aus, um mehr zu erfahren.

AJAX-Auslastungstests

Vor mehr als 20 Jahren gab es keine Möglichkeit, eine Webseite zu aktualisieren, ohne beim Erneutladen der gesamten Seite einen langweiligen weißen Bildschirm anzuzeigen. Glücklicherweise hat AJAX diese Lücke geschlossen und ein asynchrones Datenladekonzept eingeführt, das es dem Benutzer ermöglicht, mit der Seite zu interagieren, während die Daten im Hintergrund geladen werden. Heute ist dieses Konzept die Grundlage unserer inhaltsreichen und interaktiven Web-Anwendungen.

AJAX ist eine Abkürzung für Asynchronous JavaScript und XML und es ist mehr als eine Technologie, weil es aus HTML, CSS, JavaScript, XMLHttpRequest und einer serverseitigen Skriptsprache wie PHP besteht. Eine AJAX-Anforderung besteht aus den folgenden 6 Schritten:

  1. Eine Webseite löst ein Ereignis zur Änderung des Inhalts aus.
  2. Der Handler dieser Webseite erstellt ein XMLHttpRequest-Objekt
  3. Das XMLHttpRequest-Objekt fordert ein Dokument vom Server an.
  4. Der Server ruft die entsprechenden Daten ab und sendet sie zurück.
  5. Die XMLHttpRequest löst ein Ereignis aus, um die Webseite zu benachrichtigen, auf der die Daten angekommen sind.
  6. Der Handler verarbeitet die Daten und zeigt sie an

Die Kehrseite aus Der Sicht eines Performance-Ingenieurs ist, dass die Automatisierung einer solchen asynchronen Kommunikation schwierig ist. Erwägen Sie das Testen einer Webanwendung, die 100 gleichzeitige Benutzer und 10000 Suchvorgänge pro Stunde bedienen muss. Sie haben die Aufgabe zu überprüfen, ob die durchschnittliche Antwortzeit dieser Anwendung innerhalb der Grenzen von 3 Sekunden liegt.

Grundsätzlich haben Sie die folgenden beiden Optionen für ein Auslastungstestszenario:

 

  1. Protokollbasierte Simulation
  2. Browserbasierte Simulation

Vergleichen wir die Protokollebene mit der Browserebene Load Simulation. Die folgende Tabelle zeigt die Ergebnisse dieses Experiments:

Beschreibung

Screenshot

Simulation auf Protokollebene

1 Client-Server-Anforderung

0,52 Sek. Ladezeit

AJAX-Protokollsimulation

Browser-Level-Simulation

32 Client-Server-Anforderungen

2,18 Sek. Ladezeit

AJAX-Browsersimulation
Wenn Sie sich für die protokollbasierte Simulation entscheiden, würden Sie 10000 x 31 = 310.000 Anforderungen verpassen und falsche Antwortzeiten melden, da ein großer Teil der Antwortzeiten auf der Clientseite verloren geht. Offensichtlich würde dies zu völlig ungenauen Auslastungstestergebnissen führen.

AngularJS-Lasttests

Front-End-Entwickler lieben AngularJS, da es hilft, komplexen Code zu vereinfachen. Dieses einfache und leistungsstarke Framework löst die fehleranfälligen DOM-Manipulationsprobleme mit seiner deklarativen Beschreibung des UI-Flusses. AngularJS ist ein Open Source JavaScript Framework und kann einer Seite mit einem einfachen Skript-Tag hinzugefügt werden, wie z. B.:

<script src=”https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js”>
</script>

Es unterstützt die Trennung von Bedenken und bringt dynamische Elemente in statisches HTML. Wie jede andere Anwendung können auch AngularJS-basierte Systeme schnell von Leistungsproblemen betroffen sein. Im Folgenden sind einige Schritte zu finden, die Sie ausführen können, um die Dinge in Ihrem nächsten NG-Auslastungstestprojekt zu beschleunigen:

  • Reduzieren Sie die Anzahl der DOM-Vorgänge auf das Minimum
  • Reduzieren Sie die Gesamten der DOM-Struktur
  • Verwenden von Chrome-Profiler zum Überprüfen des Speicherbedarfs
  • Reduzieren Sie die Aktivitäten in Ihrem Watcher

LoadView bietet Ihnen alles, was Sie brauchen, wenn es um genaue AngularJS-Lasttests geht.

Im folgenden Beispiel wird eine Nachrichteneingabe verwendet, die auf AngularJS basiert. Der Screenshot unten enthält seinen Quellcode auf der linken Seite und die App auf der rechten Seite.

AngularJS-Nachrichteneingabe

Beschreibung

Screenshot

Aufzeichnungstestskript für AngularJS-Anwendung

Aufzeichnen des AngularJS-Skripts mit dem EveryStep Web Recorder

AngularJS-Datensatztestskript

Design Load Test für AngularJS-Anwendung

Konfigurieren des Testausführungsplans

AngularJS Design Load Test

Flash Load Testing

Flash ist eine Authoring-Software und wird verwendet, um vektorgrafische Animationen zu erstellen. Es ist eine plattformunabhängige Technologie und läuft auf jedem Computer, auf dem ein Flash-Player installiert ist. Aus Sicherheitsgründen verbieten Unternehmen Flash häufig von ihrer Infrastruktur. Sie können jedoch schöne Anwendungen mit Flash erstellen, da der Overhead gering ist. Der einzige kleine Nachteil von Flash ist jedoch, dass es nicht ohne ein aktiviertes Flash-Player-Plugin ausgeführt wird.

LoadView bietet Ihnen alles, was Sie brauchen, wenn es um genaue FLASH-Lasttests geht. Ich habe einen einfachen Flash-basierten Rechner verwendet: https://www.dotcom-tools.com/samples/Calculator.html. Mein Auslastungstestszenario führt eine einfache Berechnung von 1 + 2 = 3 aus.

Beschreibung

Screenshot

Aufzeichnen eines Testskripts für eine Flash-Anwendung

Aufzeichnen des Skripts mit dem EveryStep Web Recorder

Hinzufügen der Überprüfung

Ausführen & Hochladen des Skripts

Flash Record ein Testskript

Entwerfen eines Auslastungstests für eine Flash-Anwendung

Konfigurieren des Testausführungsplans

Verteilen Sie Ihren virtuellen Benutzer auf Lastinjektoren auf der ganzen Welt

Flash-Design ein Auslastungstest

Ausführen des Auslastungstests für die Flash-Anwendung

Sehen Sie sich an, wie LoadView die Last hochschraubt, und notieren Sie sich die Reaktionszeiten Ihrer Flash-Anwendung während des Auslastungstests.

Flash-Ablauf eines Auslastungstests

Ergebnisanalyse für die Flash-Anwendung

Sobald der Testlauf abgeschlossen ist, bietet LoadView einen detaillierten Bericht, Videos und wertvolle Einblicke, z. B. Wasserfalldiagramme oder Videos.

Teilen Sie die Daten Ihres Dev-Teams, um die Ursache von Hotspots zu identifizieren.

Flash-Ergebnisanalyse

Bekanntes Problem

Das Skripten einer Flash-basierten Anwendung funktioniert nur mit Internet Explorer. Sie erhalten den folgenden Fehler, wenn Sie Chrome oder einen anderen Browser für Ihre Aufnahme verwenden.

Flash-Problem

HTML5-Auslastungstests

HTML5 ist die fünfte Version des HTML-Standards, der immer noch das Rückgrat unserer Web-Anwendungen ist. Die Inhaltsstoffe von HTLM5 sind:

  • HTML, das die Struktur bereitstellt
  • CSS, das sich um die Präsentation kümmert
  • JavaScript, das Dinge möglich macht

HTML5 gibt Ihnen alles, was erforderlich ist, um schöne Anwendungen zu implementieren, die in Ihrem Browser ausgeführt werden, ohne dass Plugins erforderlich sind. Solche Anwendungen werden als plattformübergreifende Anwendungen bezeichnet. Sie werden auf jedem Gerät ausgeführt, wenn Ihr Browser HTML5 unterstützt. Im Folgenden finden Sie ein Beispiel für das Auslastungstesten von HTML5 mit LoadView.

Beschreibung

Screenshot

Aufzeichnen eines Testskripts für eine HTML5-Anwendung

Aufzeichnen des Skripts mit dem EveryStep Web Recorder

Hinzufügen der Überprüfung

Ausführen & Hochladen des Skripts

HTML5 Zeichnet ein Testskript auf

Entwerfen eines Auslastungstests für eine HTML5-Anwendung

Konfigurieren des Testausführungsplans

Verteilen Sie Ihren virtuellen Benutzer auf Lastinjektoren auf der ganzen Welt

HTML5 Entwerfen eines Auslastungstests

Ausführen eines Auslastungstests für eine HTML5-Anwendung

Wenn LoadView die Auslastung erhöht, zeigen Sie die Antwortzeiten Ihrer HTML5-Anwendung und das Verhalten während der Ausführung von Auslastungstests an.

HTML5 Ausführen eines Auslastungstests

Ergebnisanalyse für eine HTML5-Anwendung

Sobald der Testlauf abgeschlossen ist, bietet LoadView einen detaillierten Bericht, Videos und wertvolle Einblicke, z. B. Wasserfalldiagramme oder Videos.

Teilen Sie diese Ergebnisse mit Ihrem Dev-Team, um die Ursache von Hotspots zu identifizieren.

HTML5-Ergebnisanalyse

JavaScript-Auslastungstests

JavaScript ist die wichtigste Programmiersprache des Webs. Es wird verwendet, um interaktive Funktionen ins Web zu bringen und schafft die Grundlage für viele Frameworks, wie AngularJS oder AJAX. Hacker haben vor kurzem JavaScript verwendet, um kritische Befehle auf dem Computer der Opfer auszuführen. Sie können javaScript-Ausführung in Ihrem Browser deaktivieren, aber dies blockiert viele Websites auf Ihrem Computer.

Es gibt einige bekannte Leistungseinschränkungen, wenn es um JavaScript geht. Es ist eine gute Idee, diese in Ihrem nächsten JavaScript-basierten Auslastungstest zu untersuchen. Hier sind einige Dinge, die Sie tun können, um den Skriptprozess zu vereinfachen:

 

  • Reduzieren der Aktivität in Schleifen
    • Führen Sie keine Berechnungen innerhalb Ihrer Schleifen durch, da dies mehrfach ausgeführt wird und die Reaktionszeiten beeinflusst.
  • Reduzieren des DOM-Zugriffs
    • Der DOM-Zugriff ist langsam. Erstellen Sie eine lokale Variable, weisen Sie den erforderlichen Wert zu und verwenden Sie diesen für Ihre Vorgänge.
  • Dom-Größe reduzieren
    • Wenn sie die DOM-Größe klein hält, werden die Ladezeiten der Seite und der DOM-Zugriff über JavaScript beschleunigt.
  • Verzögern des JavaScript-Ladens
    • Laden Sie das Skript am Ende der Seite, da das Seitenrendering blockiert wird, bis der Download abgeschlossen ist. Alternativ können Sie auch das Tag “defer=true” verwenden, das das Skript lädt, nachdem Ihre Seite gerendert wurde.

LoadView bietet Ihnen alles, was Sie brauchen, wenn es um genaue JavaScript-Auslastungstests geht. Das folgende Beispiel zeigt, wie einfach JavaScript-Auslastungstests mit LoadView tatsächlich sind.

Beschreibung

Screenshot

Aufzeichnungstestskript für Ihre Anwendung

Aufzeichnen des Skripts mit dem EveryStep Web Recorder

Ausführen & Hochladen des Skripts

JavaScript-Datensatztestskript

Design Load Test für Ihre Anwendung

Konfigurieren des Testausführungsplans

Verteilen Sie Ihren virtuellen Benutzer auf Ladeinjektoren auf der ganzen Welt.

JavaScript Design Load Test

Ausführen des Auslastungstests für Ihre Anwendung

Wenn LoadView die Auslastung erhöht, zeigen Sie die Antwortzeiten Ihrer JavaScript-Anwendung und das Verhalten während der Ausführung von Auslastungstests an.

JavaScript-Ausführungsauslastungstest

Ergebnisanalyse für Ihre Anwendung

Sobald der Testlauf abgeschlossen ist, liefert LoadView einen detaillierten Bericht, Videos und wertvolle Einblicke, z. B. Wasserfalldiagramme oder Videos.

Teilen Sie diese Ergebnisse mit Ihrem Dev-Team, um die Ursache von Hotspots zu identifizieren.

JavaScript-Ergebnisse
JavaScript-Ergebnisanalyse

JSON-Lasttests

JSON ist eine Abkürzung für JavaScript Object Notation und ähnelt XML. Es ist ein sehr häufiges Datenformat und wird für alle Arten von Browser-Server-Kommunikation verwendet. Einfachheit, breite Unterstützung für Programmiersprachen und geringer Overhead sind der Grund für seine Popularität.

Einige JSON-spezifische Leistungs-Hotspots umfassen Folgendes:

  • Download großer Dateien dauert zu lange
  • Speicherauslastung ist zu hoch

Im Vergleich zu SOAP XML ist der Platzbedarf von JSON geringer und einfacher zu lesen. Das folgende Beispiel veranschaulicht JSON-Auslastungstests mit LoadView.

Wir verwenden JSON in der Suchfunktion auf unserer Website. Dies ist der entsprechende JSON-Quellcode:

JSON-Quellcode

Dies ist die Suchfunktion, die wir in der JSON-Lasttest-Präsentation verwenden werden:

JSON-Funktionalität

Wir haben Chrome-Entwicklertools verwendet, um die in diesem Suchformular verwendete Anforderungs-URL zu identifizieren.

JSON Chrome Dev-Tool
Sie können eine HTTP-basierte Aufgabe, die diese Suchanfrage mit der URL https://www.dotcom-monitor.com/?s=load+testausführt, problemlos einrichten, aber dies wird die JSON-Suchhinweisfunktion nicht belasten. Daher habe ich beschlossen, einen echten browserbasierten Test mit unserem EveryStep Web Recorder einzurichten, um die Suche aufzuzeichnen und in meinem Auslastungstest zu verwenden.

Beschreibung

Screenshot

Aufzeichnungstestskript für JSON-Anwendung

Das Auslastungstesten beginnt mit der Aufzeichnung eines Skripts mit dem EveryStep Web Recorder.

JSON-Datensatztestskript

Design Load Test für JSON-Anwendung

In diesem Schritt können Sie den Testplan und die Standorte konfigurieren.

JSON-Entwurfsauslastungstest

Ausführen des Auslastungstests für JSON-Anwendung

Wenn LoadView die Auslastung erhöht, zeigen Sie die Antwortzeiten Ihrer JSON-Anwendung und das Verhalten während der Ausführung von Auslastungstests an.

JSON-Auslastungstest ausführen

Ergebnisanalyse für JSON-Anwendung

LoadView erstellt ein Wasserfalldiagramm und einen Bericht, die für Entwickler freigegeben werden können, um Probleme zu identifizieren und Änderungen zu implementieren.

JSON-Ergebnisanalyse

Einseitige Anwendungsauslastungstests

Einzelseitige Anwendungen (SBAs) verhalten sich eher wie eine Desktopanwendung, da sie die aktuelle Seite dynamisch neu schreiben, anstatt ganze neue Seiten von einem Server zu laden. Die Benutzerfreundlichkeit auf solchen SPAs ist oft besser, da es weniger Unterbrechungen gibt. Die anfänglichen Ladezeiten von SPAs sind in der Regel länger, da Frameworks heruntergeladen werden müssen. SOAP, JSON oder AJAX werden häufig für die Kommunikation zwischen SPA-Client und Server verwendet.

Zu den brennendsten Leistungsproblemen von BSP gehören die folgenden:

  • Die anfängliche Ladezeit der Seite ist lang
    • Reduzieren Sie die Größe Ihrer Frameworks
  • Speicherverluste
    • Überprüfen Sie regelmäßig den Speicherbedarf Ihres SPAs
  • Datendarstellung
    • Verzögern des Ladens eines Objekts oder einer Daten (verzögertes Laden von Daten)

LoadView bietet Ihnen alles, was Sie brauchen, wenn es um genaue SPA-Lasttests geht. Für diese Lasttest-Präsentation haben wir die folgende Anwendung verwendet: https://www.welcometofillory.com/map

Beschreibung

Screenshot

Aufzeichnungstestskript für Einzelseitenanwendung
SPA-Datensatztestskript

Entwurfsauslastungstest für einseitige Anwendung

SPA Design Lasttest
Ausführen des Auslastungstests für eine einseitige Anwendung

Wenn LoadView die Last erhöht, zeigen Sie Die Antwortzeiten Ihrer Anwendung und das Verhalten während der Ausführung von Auslastungstests an.

SPA-Ausführung-Auslastungstest

Ergebnisanalyse für Ihre Einzelseite-Anwendung

SPA Ergebnisanalyse

Wie bereits erwähnt, ist die anfängliche Ladezeit für SpAs oft recht lang. In unserem Schaufenster dauerte der Download dieser ersten Seite mehr als 35 Sekunden und die Seitengröße beträgt mehr als 95 MB. Offensichtlich muss diese Anwendung etwas optimiert werden.

SOAP-Lastprüfung

Simple Object Access Protocol (SOAP) ist eine viel mehr als eine Programmiersprache. Im Gegensatz zu JavaScript, einer Entwicklungssprache, ermöglicht SOAP die Kommunikation über jedes Gerät und Betriebssystem. Der grundlegende Baustein von SOAP ist XML. SOAP hat ein Format zum Senden und Empfangen von Nachrichten eingeführt.

Einige der beliebtesten Leistungs-Hotspots im Zusammenhang mit SOAP sind die folgenden:

  • Chatty-Anwendung
  • Falsche oder keine Caching-Strategie
  • Serialisierung verursacht hohen Overhead
  • Keine Eingabevalidierung bei verbraucherseitiger oder ineffizienter Webmethodenverarbeitung

SOAP-basierte Webdienste bieten eine Beschreibung ihrer Dienste in WSDL. Diese Webdienstbeschreibungssprache kann für die manuelle Bedienung unserer automatisierten Tests verwendet werden. In unserem Showcase unten werde ich zeigen, wie Auslastungstests für eine SOAP-basierte Anwendung eingerichtet werden.

Dieser einfache CurrencyConverter wird in unserem Beispielauslastungstest-Setup verwendet:

https://www.webservicex.net/CurrencyConvertor.asmx?WSDL

SOAP-Währungsrechner

In den folgenden Schritten wird erläutert, wie SOAP-Auslastungstests mit LoadView durchgeführt werden.

Beschreibung

Screenshot

Erstellen des Testskripts für Ihre Anwendung

Erstellen Sie eine HTTP-Aufgabe, und fügen Sie die POST-Anforderungsdetails hinzu.

SOAP-Erstellungsskript
SOAP-Testskript

Entwerfen des Auslastungstests für Ihre Anwendung

SOAP-Entwurfsauslastungstest

Ausführen des Auslastungstests für Ihre Anwendung

Wenn LoadView die Last erhöht, zeigen Sie die Antwortzeiten Ihrer SOAP-Anwendung und das Verhalten während der Ausführung von Auslastungstests an.

SOAP-Auslastungstest

Ergebnisanalyse für Ihre Anwendung

SOAP-Ergebnisse
SOAP-Ergebnisanalyse

Web-API-REST-Auslastungstests

REST ist ein weit verbreiteter Kommunikationsstandard, der für Representational State Transfer steht. Es strukturiert Daten in maschinenlesbarem Format und nutzt XML oder JSON. Im Gegensatz zu SOAP, das stark funktionsorientiert ist, ist REST sehr datengesteuert. RESTful API- und RESTful-Dienste sind zwei häufig verwendete Begriffe in dieser Disziplin, aber sie bedeuten nichts anderes als REST-Dienste.

Beim Leistungstest von REST-Diensten geht es darum, Daten an Dienste zu senden oder die Antwort von ihnen zu überprüfen. Zu den häufigsten REST-Leistungs-Hotspots gehören die folgenden:

  • Chatty-Dienste
  • Zu viel oder nicht benötigte Daten übertragen
  • Keine Wiederverwendung von TCP-Verbindungen

Entwicklergemeinschaften sind sich nicht oft einig, ob Webdienste in SOAP oder REST implementiert werden sollen. Aus Performance-Sicht sind REST-basierte Services auf Geschwindigkeit ausgelegt. Ihr Protokoll-Overhead ist geringer, und es ist keine XML-Analyse erforderlich. Die folgende Fallstudie veranschaulicht, wie Web-API-REST-Tests mit LoadView durchgeführt werden können.

Beschreibung

Screenshot

Erstellen des Testskripts für Ihren Restful-Dienst

Erstellen einer HTTP-Aufgabe

Hinzufügen der GET-Anforderungsdetails

Hinzufügen der Schlüsselwortüberprüfung

REST Testskript erstellen

Entwerfen des Auslastungstests für Ihre Anwendung

Richten Sie den Test- und Ausführungsplan ein.

REST Design Load Test

Ausführen des Auslastungstests für Ihre Anwendung

Beobachten Sie die Lastkurve, während der Test initiiert wird.

REST Run Load Test

Ergebnisanalyse für Ihre Anwendung

Analysieren Sie die Ergebnisse und teilen Sie sie mit Ihrem Dev-Team.

REST Ergebnisanalyse

WebSockets-Auslastungstests

WebSockets sind so konzipiert, dass eine wechselseitige Kommunikation zwischen Client und Server ermöglicht wird, d. h., beide Parteien kommunizieren und Daten gleichzeitig austauschen. Echte Parallelität und Leistungsoptimierung sind die beiden wichtigsten Punkte von WebSockets.

Zu den Vorteilen der Verwendung von WebSockets gehören die folgenden:

  • Bidirektionale
    • Kein vordefiniertes Nachrichtenmuster, Client oder Server kann eine Nachricht an die andere Partei senden
  • Vollduplex
    • Unabhängige Kommunikation zwischen Client und Server
  • Einzelne TCP-Verbindung
    • AKTUALISIEREN der HTTP-Verbindung, Client und Server kommunizieren über dieselbe TCP-Verbindung

Wenn wir WebSockets mit REST- oder SOAP-basierten Kommunikationsmustern vergleichen, sind die Antwortzeiten ersterer viel besser, da WebSockets die Wiederverwendung derselben TCP-Verbindung ermöglichen. Untersuchungen haben gezeigt, dass WebSocket-basierte Dienste bis zu 10-mal schneller sind.

Für diesen Test verwenden wir einen ChatBot, der einige grundlegende Fragen beantwortet.

Beschreibung

Screenshot

Aufzeichnen des Testskripts für Ihre WebSocket-basierte Anwendung

WebSockets-Datensatztestskript

Entwerfen des Auslastungstests für Ihre WebSocket-basierte Anwendung

Erstellen Sie den Testplan, und verteilen Sie die Last auf verschiedene Teststandorte.

WebSockets-Entwurfsauslastungstest

Ausführen des Auslastungstests für WebSocket-basierte Anwendung

WebSockets ausführen Auslastungstest

Ergebnisanalyse für WebSocket-basierte Anwendung

WebSockets-Ergebnisanalyse

Laden von Tests mit dem LoadView Plugin für Jenkins

Das LoadView Plugin für Jenkins ermöglicht es Leistungstestteams, echte browserbasierte Auslastungstests einfach in ihre Jenkins-Testbuilds zu integrieren. Dadurch wird sichergestellt, dass Anwendungen kontinuierlich über einen längeren Zeitraum getestet und ausgewertet werden, sodass Teams Fehler und Engpässe identifizieren und beheben können, bevor Code und Anwendungen in die Produktion verschoben werden.

Entdecken Sie Leistungsprobleme früher und veröffentlichen Sie zuverlässigere Anwendungen in die Produktion, indem Sie LoadView-Leistungstests in Ihren CI-Entwicklungsprozess integrieren. Generieren Sie umfassende Testberichte und erhalten Sie Einblicke in die Codeleistung.

Jenkins-Lasttest
Bringen Sie Ihre Auslastungstests auf die
Nächste Stufe

Erleben Sie unvergleichliche Funktionen mit grenzenloser Skalierbarkeit. Keine Kreditkarte, kein Vertrag.