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:
- Eine Webseite löst ein Ereignis zur Änderung des Inhalts aus.
- Der Handler dieser Webseite erstellt ein XMLHttpRequest-Objekt
- Das XMLHttpRequest-Objekt fordert ein Dokument vom Server an.
- Der Server ruft die entsprechenden Daten ab und sendet sie zurück.
- Die XMLHttpRequest löst ein Ereignis aus, um die Webseite zu benachrichtigen, auf der die Daten angekommen sind.
- 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:
- Protokollbasierte Simulation
- 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
Browser-Level-Simulation
32 Client-Server-Anforderungen
2,18 Sek. Ladezeit
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.
Beschreibung
Screenshot
Aufzeichnungstestskript für AngularJS-Anwendung
Aufzeichnen des AngularJS-Skripts mit dem EveryStep Web Recorder
Design Load Test für AngularJS-Anwendung
Konfigurieren des Testausführungsplans
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
Entwerfen eines Auslastungstests für eine Flash-Anwendung
Konfigurieren des Testausführungsplans
Verteilen Sie Ihren virtuellen Benutzer auf Lastinjektoren auf der ganzen Welt
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.
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.
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.
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
Entwerfen eines Auslastungstests für eine HTML5-Anwendung
Konfigurieren des Testausführungsplans
Verteilen Sie Ihren virtuellen Benutzer auf Lastinjektoren auf der ganzen Welt
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.
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.
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
Design Load Test für Ihre Anwendung
Konfigurieren des Testausführungsplans
Verteilen Sie Ihren virtuellen Benutzer auf Ladeinjektoren auf der ganzen Welt.
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.
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.
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:
Dies ist die Suchfunktion, die wir in der JSON-Lasttest-Präsentation verwenden werden:
Wir haben Chrome-Entwicklertools verwendet, um die in diesem Suchformular verwendete Anforderungs-URL zu identifizieren.
Beschreibung
Screenshot
Aufzeichnungstestskript für JSON-Anwendung
Das Auslastungstesten beginnt mit der Aufzeichnung eines Skripts mit dem EveryStep Web Recorder.
Design Load Test für JSON-Anwendung
In diesem Schritt können Sie den Testplan und die Standorte konfigurieren.
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.
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.
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
Entwurfsauslastungstest für 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.
Ergebnisanalyse für Ihre Einzelseite-Anwendung
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.
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
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.
Entwerfen des Auslastungstests für Ihre Anwendung
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.
Ergebnisanalyse für Ihre Anwendung
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
Entwerfen des Auslastungstests für Ihre Anwendung
Richten Sie den Test- und Ausführungsplan ein.
Ausführen des Auslastungstests für Ihre Anwendung
Beobachten Sie die Lastkurve, während der Test initiiert wird.
Ergebnisanalyse für Ihre Anwendung
Analysieren Sie die Ergebnisse und teilen Sie sie mit Ihrem Dev-Team.
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
Entwerfen des Auslastungstests für Ihre WebSocket-basierte Anwendung
Erstellen Sie den Testplan, und verteilen Sie die Last auf verschiedene Teststandorte.
Ausführen des Auslastungstests für WebSocket-basierte Anwendung
Ergebnisanalyse für WebSocket-basierte Anwendung
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.
Nächste Stufe
Erleben Sie unvergleichliche Funktionen mit grenzenloser Skalierbarkeit. Keine Kreditkarte, kein Vertrag.