Lasttest von AJAX-Anwendungen
Erstellen Sie Benutzerszenario-Skripte für Ihre AJAX-Anwendungen, um das Benutzerverhalten
unter Last zu untersuchen, Probleme zu identifizieren und die Leistung zu validieren.
Inhaltsübersicht
- Was ist AJAX?
- Welche Herausforderungen gibt es bei AJAX-Anwendungen?
- Techniken zur Benutzersimulation
Wer bereits mit Lasttests von AJAX (Asynchronous JavaScript and XML) Webanwendungen zu tun hatte, weiß, dass dies oft eine schwierige Entwicklungs- und Automatisierungsherausforderung darstellt. In diesem Artikel erhalten Sie zusätzliche Hintergrundinformationen zur AJAX-Entwicklungstechnik, den Vor- und Nachteilen von AJAX sowie einen empfohlenen Ansatz für Performance-Tests mit AJAX.
Vor Jahrzehnten waren Webseiten und Anwendungen langweilig, aber extrem leichtgewichtig, einfach zu warten und im Vergleich zu heutigen Webanwendungs-Frameworks hervorragend testbar. Die Nutzer verbrachten oft mehr Zeit damit, vor einem weißen Bildschirm zu warten, als mit diesen frühen Webanwendungen zu interagieren. Aufgrund dieser eingeschränkten Nutzbarkeit mieden Unternehmen meist Ausgaben für neue webbasierte Dienste.
Ab 2005 ermöglichte eine neue Technologie namens AJAX Entwicklern, moderne Websites zu bauen, die die Zeit minimierten, welche Nutzer vor einem leeren Bildschirm warteten, bis eine Seite geladen war. AJAX ist eine Abkürzung und mehr als nur eine Technologie, da es aus HTML, CSS, JavaScript, XMLHttpRequest und einer serverseitigen Skriptsprache wie PHP besteht.
Zu Beginn des Internetzeitalters war die Beliebtheit von inhaltsreichen und interaktiven Webseiten gering, da es keine Möglichkeit gab, eine Webseite zu aktualisieren, ohne die gesamte Seite neu zu laden. Mit der Entwicklung neuer Technologien und Techniken schloss AJAX diese Lücke und führte das Konzept des asynchronen Datenladens ein, das es den Endanwendern ermöglicht, während des Datenladens im Hintergrund mit der Seite zu interagieren. Dieses Konzept wird heute breit eingesetzt, da es die Implementierung interaktiver und dynamischer Webanwendungen ermöglicht und so das Nutzererlebnis insgesamt verbessert.
Eine typische AJAX-Anfrage besteht aus folgendem Prozess:
- Der Nutzer klickt durch die Webseite oder Webanwendung.
- Der Handler der 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.
- Das XMLHttpRequest löst ein Ereignis aus, um die Webseite oder Anwendung zu benachrichtigen, dass die Daten eingetroffen sind.
- Der Handler verarbeitet und zeigt die Daten an.
Update 2026: AJAX-ähnliches asynchrones Verhalten wird in modernen Webanwendungen weiterhin häufig verwendet, insbesondere in Kombination mit APIs und dynamischen Frontend-Frameworks. Lasttests sollten reale Browser-Interaktionen simulieren, um genau zu erfassen, wie Hintergrundanfragen und Benutzeraktionen unter Last funktionieren.
Welche Herausforderungen gibt es bei AJAX-Anwendungen?
Bei dynamischen, AJAX-basierten Webanwendungen gibt es einige typische Fallstricke, die in der Entwickler-Community bereits gut bekannt sind. Nachfolgend behandeln wir einige der problematischeren Bereiche von AJAX.
Erstens, wie oben besprochen, ist ein Bestandteil von AJAX JavaScript. Wenn Sie JavaScript in Ihrem Browser deaktivieren, macht dies Ihre Anwendung oder Website unbrauchbar. Vor einigen Jahren war es üblich, dass Organisationen die Browser ihrer Mitarbeiter für Sicherheitszwecke einschränkten und JavaScript deaktivierten. Diese Zeiten sind vorbei, aber es ist dennoch wichtig, dies im Hinterkopf zu behalten, da selbst solche Änderungen unbeabsichtigte Folgen haben können.
Zweitens sind dynamisch geladene und angezeigte Daten kein Teil der Seite selbst, insbesondere bei Seiten, die als SPA (Single-page Application) erstellt wurden. Wenn eine Suchmaschine Ihre AJAX-basierte Webseite indexiert, kann das Ergebnis aus SEO-Sicht unbefriedigend sein, da ein großer Teil des Inhalts für die Indexierung nicht sichtbar ist.
Drittens können andauernde dynamische Seitenaktualisierungen Nutzer mit geringer Aufmerksamkeitsspanne stören. Je mehr dynamische Elemente auf der Seite erscheinen, desto höher ist die Wahrscheinlichkeit, dass Ihr Nutzer unterbrochen wird und seine Arbeit nicht in akzeptabler Zeit abschließen kann.
Schließlich kann die latenzbehaftete, callback-basierte Client-Server-Kommunikation im Vergleich zu anderen Technologien, etwa WebSockets, mehrmals höhere Verzögerungen verursachen. Webclients fragen Datenupdates ab, was auch eine Herausforderung für automatisierte Tests darstellt.
Lasttest von AJAX: Techniken der Benutzersimulation
Lasttest-Spezialisten und Performance-Ingenieure sind dafür verantwortlich, die passende Benutzersimulationsmethode zu wählen – eine, die sowohl für Ihre zu testende Anwendung geeignet ist als auch nicht zu viel Aufwand für Sie bedeutet. Wenn Sie die falsche Simulationsmethode wählen, ist die Wahrscheinlichkeit hoch, dass Sie Performance-Hotspots in Ihrer Anwendung nicht richtig erkennen können.
Es gibt zwei Benutzer-Simulationsmethoden, die wir nachfolgend besprechen.
Protokollbasierte Simulation von Anfragen und Antworten
Die meisten Open-Source-Testtools sowie kommerzielle Lasttest-Tools unterstützen dieses Verfahren. Dabei zeichnen Sie Client-Server-Interaktionen auf, und das Testtool erfasst alle Anfragen und Antworten in einem Testskript. Nach der Parametrisierung dynamischer Daten wie Session-IDs oder Testeingabedaten können die Skripte verwendet werden, um die benötigte Last auf Ihrem Backend-System zu simulieren. Beachten Sie, dass clientseitige Verarbeitung oder Interaktionen nicht in Ihre Protokollebene-Reaktionszeitmessungen einfließen.
Vollständige Browserbasierte Simulation realer Benutzerinteraktionen
Nur einige der umfangreicheren Lasttest-Lösungen am Markt bieten vollständige browserbasierte Lasttestsimulation an. Der Grund dafür sind die höheren Systemressourcenanforderungen und die Herausforderung, eine zuverlässige Wiedergabe zu implementieren. Beim Erstellen von Testscripten für vollständige browserbasierte Benutzersimulationen ähnelt die Erstellung der protokollbasierten Vorgehensweise, jedoch werden diesmal alle clientseitigen Interaktionen aufgezeichnet und gespeichert.
Der Tester oder Ingenieur navigiert durch die Webseite oder Webanwendung, während ein Skriptrecorder alle Interaktionen im Webbrowser aufzeichnet. Während der Testausführung führt ein Headless-Browser die aufgezeichneten Interaktionen aus und reagiert auf Server-Callbacks wie ein echter Benutzer. Diese Art der Benutzersimulation ist sehr genau und liefert realistische Frontend-Performance-Metriken.
Die erste Simulationsmethode eignet sich perfekt für statische Webanwendungen, hat einen geringen Simulationsaufwand auf Ihrer Lastinjektionsmaschine und ist oft einfach umzusetzen. Die spätere Technik liefert genaue End-to-End-Antwortzeiten, hat aber einen deutlich höheren Ressourcenbedarf auf dem Lasttestserver. Wie wählen Sie also die beste Benutzersimulationsmethode für Lasttests von AJAX-basierten Webanwendungen oder Seiten?
AJAX-Lasttests in der Praxis
Was ist der beste AJAX-Lasttest-Ansatz und wie können Sie Ihre Entscheidung validieren? Offensichtlich ist es eine gute Idee, mit einem kleinen Experiment zu starten, wenn Sie sich nicht sicher sind, welcher Ansatz genaue Ergebnisse liefert.
Für dieses Szenario werden wir zwei Lasttest-Implementierungen für eine AJAX-Beispielanwendung von ajaxsearchpro.com vergleichen. Diese Demoanwendung ist eine einfache Suchmaschine. In diesem Beispiel gehen wir davon aus, dass ein Benutzer einen Suchbegriff in das Suchfeld eingibt und passende Inhalte angezeigt werden. Nach Drücken der Enter-Taste oder des Suchbuttons wird die tatsächliche Suche ausgeführt und die entsprechenden Suchergebnisse auf dem Bildschirm angezeigt. Nachfolgend sehen Sie das Wasserfalldiagramm, das mit den Chrome-Browser-DevTools aufgenommen wurde. Die Antwortzeit der „car“-Suchanfrage betrug 2,2 Sekunden.

Wir haben die Entwicklertools im Chrome-Browser verwendet, welche uns zeigten, dass die folgende Anfrage bei der Suchaktion ausgeführt wird: ajaxsearchpro.com/?s=car
Wir haben ein protokollbasiertes und ein browserbasiertes Lasttest-Skript erstellt, beide ausgeführt und die resultierenden Performance-Metriken verglichen. Was denken Sie? Welche Benutzersimulation ist die beste für eine AJAX-basierte Anwendung?
Protokollbasiertes AJAX-Lasttest-Skript
| Skripte Schritte: | https://ajaxsearchpro.com/?s=car | Antwortzeit: | 594 ms |
| Simulationsansatz: | Protokollebene, Chrome | Anzahl der Anfragen: | 1 |
Wasserfalldiagramm
Zusammenfassung der protokollbasierten Skriptausführung
Browserbasiertes AJAX-Lasttest-Skript
| Skripte Schritte: | https://ajaxsearchpro.com/?s=car | Antwortzeit: | 2.18 sek |
| Simulationsansatz: | Protokollebene, Chrome | Anzahl der Anfragen: | 32 |
Wasserfalldiagramm
Zusammenfassung der browserbasierten Skriptausführung
Vergleich beider Simulationsmethoden
Aufgrund seines asynchronen Kommunikationsmusters können AJAX-basierte Anwendungen nicht auf Protokollebene automatisiert werden. Nur reale browserbasierte Simulation liefert genaue Ergebnisse und erzeugt eine realistische Last auf Ihrem Backend-System.
Betrachten Sie einen Lasttest unserer ajaxsearchpro.com Demo-Anwendung mit 100 gleichzeitigen Nutzern und 10.000 Suchanfragen pro Stunde. Entscheiden Sie sich für die protokollbasierte Simulation, werden Sie 10.000 x 31 = 310.000 Anfragen verpassen. Offensichtlich führt dies zu völlig ungenauen Lasttestergebnissen.
Wie LoadView Lasttests bei AJAX durchführt
LoadView, unsere cloudbasierte Lasttest-Plattform, ist für das Testen aller modernen Web 2.0-Anwendungen wie AJAX, Flash, Angular, Knockout, HTML5, jQuery und viele mehr konzipiert. Die Benutzerfreundlichkeit ist herausragend. Sie können vollständige browserbasierte Szenarien aufzeichnen und mehr als 40 mobile oder browserbasierte Geräte wie Internet Explorer, Chrome, iPhone, Samsung, Blackberry und viele mehr simulieren.
Wie bereits erwähnt, bieten viele Lasttest-Lösungen nur eine protokollbasierte Benutzersimulation, was jedoch nicht ausreichend ist. Sie können Ihr Backend mit Tests auf Protokollebene belasten, aber ein wesentlicher Teil der Client-Server-Anfragen und der clientseitigen Verarbeitung bleibt unberücksichtigt. Die LoadView-Plattform bietet Ihnen alles, was Sie für eine genaue Benutzersimulation benötigen.
Fünf Schritte, um Ihre AJAX-basierten Lasttests mit LoadView durchzuführen
1. Nehmen Sie Ihre AJAX-Anwendung auf
Sie können den EveryStep Web Recorder verwenden, um manuell durch Ihre AJAX-basierte Anwendung zu navigieren. EveryStep zeichnet alle Aktionen auf und ermöglicht das Hinzufügen von Timer- oder Verifikationsschritten. Nachdem Sie Ihre Anwendung durchklickt und ein Skript erstellt haben, können Sie einen Einzelbenutzerdurchlauf durchführen oder die aufgezeichneten Aktionen auf unsere Plattform hochladen und Ihr Lasttestgerät erstellen.
2. Kalibrieren
Die Zuweisung von Lastinjektionsmaschinen erfolgt oft durch Schätzung. Ungesunde Lastgenerierungsmaschinen verfälschen Ihre Testergebnisse. LoadView führt einen Einzelbenutzerdurchlauf Ihres Geräts durch und berechnet die maximale Anzahl von Benutzern pro Lastinjektionsmaschine. Dieser Schritt verhindert, dass eine überlastete Maschine die Antwortzeiten Ihrer Anwendung negativ beeinflusst.
3. Ausführungsplan
Die Benutzeranzahl variiert häufig im Verlauf eines typischen Geschäftstages. Wir haben dafür unsere Ausführungsplanfunktion entwickelt. Sie gibt Ihnen volle Flexibilität, realistische Lasttestszenarien zu modellieren.
4. Verteilung der virtuellen Benutzer
LoadView ermöglicht es Ihnen, aus einer breiten Auswahl von Lastinjektionsmaschinen weltweit zu wählen. Wählen Sie diejenigen aus, die den üblichen Standorten Ihrer Kunden entsprechen.
5. Führen Sie den Test aus und sehen Sie Ihre Ergebnisse
In diesem letzten Schritt können Sie die Ausführung des Lasttests starten. Eine Online-Ansicht gibt Ihnen Echtzeit-Einblicke, wie Ihre AJAX-Anwendung unter Last funktioniert. Nach Beendigung der Testausführung erhalten Sie einen detaillierten Bericht mit den wichtigsten Leistungskennzahlen.
Alles in allem erfüllt LoadView alle Anforderungen einer modernen Lasttestplattform, vereinfacht die Testautomatisierung und hilft Ihnen, reale Produktionsszenarien auf Ihren komplexen Geschäftsanwendungen zu simulieren. Für weitere Informationen über LoadView besuchen Sie die LoadView-Website. Für tiefere technische Informationen und Videos besuchen Sie unsere Wissensdatenbank.
Interessiert an einer Live-Demo? Vereinbaren Sie eine Demo mit einem unserer Performance-Ingenieure. Unsere Performance-Ingenieure führen Sie durch die gesamte LoadView-Lösung – von der Skripterstellung und Testkonfiguration bis hin zur Ausführung und Nachanalyse. Lassen Sie sich alle Ihre Fragen zum Lasttest beantworten!
Verwendete Werkzeuge
LoadView: Cloudbasierte Lasttest-Plattform von Dotcom-Monitor
EveryStep Web Recorder: Webbasierte Point-and-Click-Skripting-Tool.
Chrome Developer Tools: Entwicklertools, die im Chrome-Browser integriert sind.
Um mehr über die Dotcom-Monitor-Plattform und angebotene Monitoring-Lösungen zu erfahren, besuchen Sie www.dotcom-monitor.com