Moderne clientseitige JavaScript-Frameworks wie Angular, Ember, Ext JS, Knockout, React und Vue unterstützen alle Grundlagen und Regeln für einseitige Anwendungen (PAS). SPAs bieten Benutzern eine nahtlosere Benutzererfahrung, wie man es von der Verwendung einer Web-App erhalten würde, aber SPA-Lasttests können sich mit Open-Source-Tools wie JMeter als problematisch erweisen. In diesem Artikel wird erläutert, wie Open-Source-Lasttestlösungen wie JMeter Test-SPAs verarbeiten und wie LoadView unterschiedlich ist und die Einschränkungen von JMeter überwindet.

Was ist eine Einseitige Anwendung?

Eine einseitige Anwendung oder SPA ist eine einzelne URL-Webanwendung oder -website, die vollständig in einem Webbrowser ausgeführt wird. Wenn ein Benutzer auf eine SPA-Anwendung oder -Website zugreift, werden alle Elemente wie JavaScript, HTML, CSS usw. heruntergeladen. Aufgrund dieser Funktionalität müssen SPAs den Browser nicht jedes Mal neu laden oder aktualisieren, wenn ein Benutzer zu einer neuen Seite navigiert, wie dies heute in mehrseitigen Anwendungen (MPAs) üblich ist. Wenn neue Daten erforderlich sind, wird die Seite dynamisch mit neuen Daten vom Webserver aktualisiert, ohne dass der Benutzer den Unterschied kennt.

Überlegungen beim Laden von einseitigen Anwendungen

SPAs eignen sich hervorragend zum Erstellen von Anwendungen und Websites, die schnell reagieren, aber wenn es an der Zeit ist, Leistungstests durchzuführen, sollten Sie einige Dinge berücksichtigen, bevor Sie das richtige Tool oder die richtige Lösung für das Auslastungstesten Ihrer SPAs auswählen.

Eines der ersten Punkte, die berücksichtigt werden, ist, dass die SPA-Logik stark auf JavaScript-Technologie basiert. Jedes Mal, wenn ein Benutzer auf eine Schaltfläche klickt oder eine andere Aktion auf der Webseite ausführt (Navigation zwischen Registerkarten, Ausfüllen von Webformularen usw.), führt ein Browser JavaScript aus und rendert die Webseite.

Darüber hinaus umfasst die Authentifizierung in einem SPA HTTP-Header mit Zugriffsanmeldeinformationen, z. B. JSON-Webtoken. Zugriffstoken werden von einem SPA-Server für jede Sitzung bereitgestellt. Wenn ein Browser HTTP-Aufrufe ausführt, extrahiert er das Token aus der SPA-Serverantwort und gibt es mit jeder HTTP-Anforderung zurück.

Was ist JMeter?

JMeter ist ein Open-Source-Performance-Test-Tool, das von der Apache Software Foundation entwickelt wurde. Das primäre Ziel von JMeter ist die Durchführung von Leistungstests, kann aber auch für Funktionstests, wie z. B. Komponententests, verwendet werden. Es wurde erstmals 1998 zur Verfügung gestellt und verfügt über Lasttestfunktionen auf Enterprise-Qualität. JMeter-Funktionalitäten können aufgrund seiner Plugin-basierten Architektur einfach erweitert werden.

Es ist eines der beliebtesten Open-Source-Tools, die zur Analyse der Leistung Ihrer Website oder Anwendungen unter hoher Auslastung verwendet werden. Es wird aktiv gepflegt und regelmäßig aktualisiert, um neue Technologien zu unterstützen, jedoch hat JMeter aufgrund der schieren Menge an Funktionen, die es bietet, ein wenig eine komplexe Benutzeroberfläche. Diese Komplexität macht es nicht so benutzerfreundlich wie andere Werkzeuge auf dem Markt, da es ein wenig eine Lernkurve erforderte, um kompetent und erfahren mit der Software zu werden.

JMeter-Einschränkungen

Diese SPA-Logikmerkmale setzen Beschränkungen für SPA-Lasttests mit Anwendungen, die mit Frameworks wie JMeter erstellt wurden. JMeter ist KEIN Browser und funktioniert auf Protokollebene. Dies erschwert den Versuch, Leistungstests aus der Perspektive des Benutzers auszuführen. Beispielsweise unterstützt JMeter JavaScript nicht und kann daher keine AJAX-Anforderungen unterstützen, sodass JMeter in diesem Fall nur HTTP-Datenverkehr simulieren kann.

JMeter ermöglicht das Emulieren von SPA-Webanforderungen an den Server, ohne die Anwendung selbst zu testen. Das Erstellen von Anforderungen für den Betrieb mit Benutzerdaten auf der Seite erfordert jedoch entsprechende Kenntnisse in der Webentwicklung. Um sich beispielsweise bei einer SPA-Anwendung anzumelden, müssen Sie die Aufrufe des Clients für jede Sitzung authentifizieren. Andernfalls kann die Seitenleistung nicht genau getestet werden (weitere Informationen zu JMeter finden Sie in unserem Ultimate Guide to JMeter Load Testing.

Warum Open-Source-Lasttesttools verwenden?

Wenn die Zeit für SPA-Lasttests kommt, Die erste Frage, die Ihnen in den Sinn kommt, ist, welche Tools für Auslastungstests verwendet werden sollen. Dies ist eine der wichtigsten Entscheidungen, die Sie treffen müssen, da die Wahl des richtigen Tools der Schlüssel zu erfolgreichen Auslastungstests und Ihrer Website ist. Oder Optimierung der Anwendungsleistung. Jedes Tool, ob Open-Source oder kommerzielle Vielfalt, hat seine Vor- und Nachteile, aber Sie sollten immer alle Faktoren wie Genauigkeit, Benutzerfreundlichkeit, einfache Skripterstellung, Zuverlässigkeit, Skalierbarkeit, Reporting, Überwachung, etc. berücksichtigen, bevor Sie sich für eine auswählen. JMeter verfügt beispielsweise nicht über integrierte Berichtsfunktionen, sodass JMeter-Benutzer den Bericht manuell selbst erstellen müssen, indem sie die Ausgaben ihrer Auslastungstestsverstehen.

Open-Source-Lasttest-Tools werden oft von einigen der großen Entwickler gepflegt und sind frei, mit ihrem Quellcode für die Anpassung zur Verfügung zu verwenden, wie Sie benötigen. Sie können das Open-Source-Tool verwenden und seine Funktionalität für den internen Gebrauch erweitern. Neben JMeter sind gatling, The Grinder, Locust, Tsung und WebLOAD. Im Folgenden werden einige der Vor- und Nachteile der Verwendung von Open-Source-Tools aufgeführt, die Sie sorgfältig untersuchen sollten, bevor Sie ein Tool auswählen.

Vorteile der Verwendung von Open-Source Load Testing Tools

  • Es sind keine Anfangsinvestitionen erforderlich, da sie kostenlos genutzt werden können.
  • Quellcode ist für die Erweiterung der Funktionalität auf der Grundlage interner Anwendungsfälle verfügbar.
  • Verwaltet von Top-Entwicklern und den Open-Source-Communities.

Nachteile der Verwendung von Open-Source Load Testing Tools

  • Sie müssen in Hardware investieren, um Open-Source-Tools auf Ihren Servern auszuführen.
  • Der Aufbau und die Wartung der Lasttestinfrastruktur würde zusätzliche Personal- und IT-Kosten erfordern.
  • Virtuelle Benutzer (Last) werden auf Ihren internen Servern generiert, was zu unrealistischen Bedingungen und irreführenden Ergebnissen führt, da Ihre Endbenutzer von verschiedenen Geräten und geografischen Standorten kommen würden.
  • Viele Open-Source-Lasttesttools unterstützen nur protokollbasierte Auslastungstests und keine browserbasierten Auslastungstests, was nicht ideal ist, da moderne Websites/Anwendungen stark auf browserbasierte JavaScript-Ausführung angewiesen sind.
  • Open-Source-Lasttest-Tools haben nur eingeschränkten Support, was bedeutet, wenn Sie vor einer Herausforderung in der Implementierung oder Wartung stehen, sind Sie ziemlich auf sich allein gestellt.
  • Sicherheit ist ein wichtiges Anliegen bei Open-Source-Lasttesttools.
  • Das Einrichten der Open-Source-Lasttestinfrastruktur erfordert Zeit.
  • Open-Source-Lasttesttools können sich aufgrund von Herausforderungen und erforderlichens Management auf die Projektzeitachse auswirken.
  • CPU- und Speicherprobleme können auftreten, wenn Sie große Auslastungstests ausführen.
  • Die Skalierung ist schwierig, wenn Ihre Anwendung und Ihre Benutzer wachsen.

LoadView: Beste Auslastungstests Alternative zu JMeter und Open-Source-Tools

Lasttests sind ein Muss für die Analyse der Geschwindigkeit, Stabilität und Skalierbarkeit Ihrer Websites, Anwendungen und APIs. Es gibt sowohl kostenlose als auch kommerzielle Lasttest-Tools auf dem Markt, die Sie basierend auf Ihren Anforderungen wählen können. Open-Source-Lasttest-Tools erfordern zwar keine anfänglichen Investitionen, kosten aber den Bau und die Verwaltung Ihrer eigenen Infrastruktur mit eingeschränkten Funktionen. Kommerzielle Lasttesttools wie LoadView bieten umfangreiche Funktionen und Funktionen für genaue Ergebnisse und Benutzerfreundlichkeit.

LoadView ist ein cloudbasiertes Auslastungstesttool, das die Einschränkungen von JMeter und anderen Open-Source-Lasttestlösungen eliminiert. Sehen wir uns an, wie LoadView es macht und was sind die anderen Features, die es von anderen Auslastungstesttools abheben.

  • Benutzeroberfläche. LoadView verfügt über eine einfache, intuitive und utility-basierte Benutzeroberfläche ohne Lernkurve. Sie können innerhalb weniger Minuten schnell mit Ihren Auslastungstests beginnen.
  • Keine Programmierung erforderlich. LoadView verfügt über eine Point-and-Click-Funktion namens EveryStep Web Recorder, mit der Sie komplexe Benutzeraktionen wie Mausklicks, Tastendrücke, Menünavigation usw. erfassen und Testskripts generieren können.
  • Keine Vorabinvestitionen. Im Gegensatz zu JMeter und anderen Open-Source-Tools, bei denen Sie Ihre eigene Testinfrastruktur einrichten und warten müssen, ist LoadView ein cloudbasiertes und vollständig verwaltetes Auslastungstesttool, und Sie zahlen entsprechend Ihren Testanforderungen.
  • Echte Browser und Geräte. LoadView unterstützt mehr als 40 Browser/Geräte, um reale Benutzer für genaue Auslastungstests zu simulieren.
  • Geo-Standorte. Mit LoadView können Sie Last aus über 20 Geostandorten generieren, um die realistischsten Testszenarien zu erstellen, da Ihre Benutzer von verschiedenen Standorten kommen und unterschiedliche Leistungen erzielen.
  • Berichterstattung. LoadView generiert detaillierte Leistungstestberichte mit nützlichen Einblicken, sodass Sie sofort mit der Optimierung Ihrer Website/Anwendung für Leistungsprobleme beginnen können.

LoadView eignet sich perfekt für SPA-Auslastungstest-Websites und -Anwendungen sowie für das Testen von APIs, Streaming-Diensten und mehr. Die Plattform kann Last nach Ihren Testanforderungen generieren, ohne Einschränkungen oder vorherige Programmierkenntnisse oder Erfahrungen.

Laden von Einseitenanwendungen mit LoadView

Auf der anderen Seite funktioniert LoadView wie ein echter Browser und unterstützt JavaScript-Ausführung und Authentifizierungslogik auf Browserebene. Sie müssen lediglich Benutzeraktionen auf der SPA-Seite mithilfe des integrierten EveryStep Web Recorder-Skripttools skripten und den Auslastungstest einrichten, konfigurieren und ausführen. Weitere Informationen zum Einrichten und Konfigurieren von Auslastungstests mit LoadView finden Sie in unserem Abschnitt Test-Grundlagen für weitere Artikel zu den ersten Informationen mit LoadView.

Der Test wird in einem echten Browser(Chrome- oder Edge-Optionen sind verfügbar) durchgeführt, um reale Benutzeraktionen und -verhaltensweisen zu simulieren, die realistischere Testergebnisse im Vergleich zu anderen Auslastungstesttools liefern.

Weitere Informationen zu Webanwendungs- und SPA-Auslastungstests finden Sie in den Artikeln Erste Schritte mit Auslastungstest- oder Konfigurieren der WebanwendungsaufgabenknowledgeDatenbank.

Häufige Anwendungsfälle für einseitige Anwendungsauslastungstests

Um die Art der SPA-Tests zu zeigen, betrachten wir ein Testszenario, das den Vorgang der Änderung von Benutzerdaten auf der Seite Benutzer im Menü Dotcom-Monitor-Kontoeinstellungen wiederholt. Die Seite ist ein typisches Beispiel für ein SPA.

Da die Seite Benutzer authentifiziert ist, müssen wir uns vor dem Testen der Seite bei der Anwendung anmelden. Login-Tests können ohne Einen Browser aufgrund der zuvor beschriebenen SPA-Authentifizierungsmerkmale schwierig sein.

Je nach Authentifizierungsergebnis wird der Seiteninhalt geladen. Im Allgemeinen werden alle Daten, einschließlich der Benutzeroberfläche, im Backend verarbeitet und in HTML bereitgestellt. Um die Daten zu erhalten, sollten daher GET-Anforderungen an die Seiten-URL gesendet werden. Wenn es jedoch um SPAs geht, sind in der Serverantwort außer JavaScript-Skripts keine Daten enthalten. Finden Sie die Seitenquelle auf dem Bild unten.

Im Vergleich zur Serverantwort werfen wir einen Blick auf die Seitenelemente, die vom Browser gerendert werden. Der Browser rendert den Seiteninhalt dynamisch, einschließlich der Benutzerdaten, Der Kopfzeilen, des Menübereichs und des Benutzerlistenrasters. Da die UI-Elemente nicht im HTML-Code enthalten sind und nur vom Browser gerendert werden, können sie nicht ohne JavaScript-Ausführung getestet werden.

Beispielsweise ist der Dialoghandler Benutzer bearbeiten bereits in der ursprünglichen Serverantwort enthalten, und es werden keine Aufrufe zusätzlich ausgeführt. Wenn Überprüft wird, ob das Popup-Dialogfeld korrekt gerendert wird, ist eine entsprechende Skriptausführung erforderlich und kann nicht durch HTTP-Anforderungen ausgeführt werden.

Finden Sie das Beispiel für Anforderungen, die beim Bearbeiten von Benutzerdaten an den Server gesendet werden.

Fazit: JMeter-Einschränkungen beim Auslastungstest von SPAs

Wenn Sie die SPA-Leistung testen möchten, kann Ihnen eine echte browserbasierte Auslastungstestlösung, wie LoadView, realistische, umfassende Auslastungstestergebnisse liefern. LoadView ist ein cloudbasiertes Auslastungstesttool, mit dem Sie schnell mit dem Auslastungstest Ihrer Website oder Anwendung beginnen können. Es verwendet echte Browser und Geräte, um Benutzerlast von mehreren Geo-Standorten zu generieren, so dass Sie die realistischsten Bedingungen für die Genauigkeit der Ergebnisse. Enthalten ist der EveryStep Web Recorder, mit dem Sie Testskripts mit Point-and-Click-Funktionen erstellen können.

Auch wenn Sie keine Programmiererfahrung haben, ist LoadView extrem einfach zu bedienen. LoadView ermöglicht es Ihnen auch, Ihre Lasten in Echtzeit für explorative Tests für Kapazitätsplanung und Skalierbarkeitskennungen anzupassen. LoadView generiert erweiterte Berichte, die umfassende Einblicke in die Leistung auf eine sortierte Art und Weise enthalten, sodass Sie Engpässe leicht verstehen und identifizieren können, um sie schnell zu beseitigen.

Auf der anderen Seite fehlen JMeter Berichtsfunktionen, die entscheidend sind, um Leistungsengpässe zu erkennen und für sie zu optimieren. Ohne integrierte Berichterstattung würden Sie viel Zeit mit der Erstellung von Berichten und der Ermittlung von Problemen verschwenden, anstatt die Leistungsprobleme zu lösen. JMeter-Benutzeroberfläche ist auch nicht sehr gut, so dass es schwer, mit zu arbeiten.

Sie haben bereits JMeter-Tests, möchten sie aber in die LoadView-Plattform integrieren? Erfahren Sie, wie Sie Webanwendungstests von JMeter in LoadView in nur wenigen einfachen Schritten konvertieren.

Neu bei LoadView? Probieren Sie noch heute die kostenlose Testversion aus und erhalten Sie 20 $ in Auslastungstest-Credits!