Die Ladezeit einer Webseite ist der hauptsächliche Performance-Indikator und lässt sich testen, indem die erforderliche Zeit für den Download der Ressourcen sowie das darauffolgende Rendering in dem Browser analysiert und bewertet wird [Bar14]. Clientseitige Tests ermöglichen es, die vom Nutzer wahrgenommene Performance zu messen, während serverseitige Tests Probleme bei der Verarbeitung und Flaschenhälse aufseiten des Webservers aufzeigen [KR13]. Bei den clientseitigen Methoden werden einzelne Webseiten einer Website getestet, somit wird jede Unterseite einer Internetpräsenz bei der Analyse und Bewertung für sich betrachtet. Die Methoden zur Messung der Ladezeit sind keine exakten Verfahren, sondern geben eine Tendenz wieder. Sie unterliegen Schwankungen durch die Netzauslastung und den Standort, die sich nicht beeinflussen lassen. Für aussagekräftige Messergebnisse und Bewertungen ist es daher erforderlich, mehrere Testdurchläufe vorzunehmen und nur die Ergebnisse weiter zu verwenden, bei denen keine offensichtlichen Abweichungen oder Schwankungen zu erkennen sind.
Zur Visualisierung des zeitlichen Ablaufs bei dem Ladevorgang einer Webseite wird von den Werkzeugen häufig ein sogenanntes Wasserfalldiagramm eingesetzt. Dabei werden die geladenen Ressourcen untereinander anhand der zeitlichen Anfrage sortiert aufgelistet. Mit Hilfe dieser visuellen Auflistung wird ersichtlich, welche Ressourcen parallel und welche nacheinander geladen werden sowie die benötigte Zeit, um diese vollständig zu laden. Darüber hinaus wird angegeben um welchen Dateityp es sich bei der Ressource handelt und inwieweit eine komprimierte Übertragung erfolgt [Bar14].
Durch die Verwendung des Wasserfalldiagramms wird ersichtlich, ob Probleme vorliegen, wenn zum Beispiel viele einzelne Ressourcen geladen werden. Schlussfolgernd kann das Wasserfalldiagramm als Instrument zur ersten Einschätzung des Ist-Zustandes für die Performanceoptimierung einer Website eingesetzt werden.
Verschiedene Zustände des Ladevorgangs werden von den Werkzeugen mit vertikalen Linien in den Wasserfalldiagrammen, wie in Abbildung 2.3 gezeigt, dargestellt. Die vertikale grüne Linie, kurz vor 1,5 Sekunden, gibt den Zeitpunkt an, ab dem begonnen wird die Darstellung im Browser zu generieren (Start Render) und die vertikale Linie in blau, bei 2,8 Sekunden, wann alle Ressourcen vollständig geladen wurden (Document Complete). Abhängig von dem eingesetzten Tool gibt es weitere Linien zwischen den beiden Zuständen. Die Balken der einzelnen Ressourcen werden optisch in die Dauer für die Umsetzung des Domainnamens zur IP (DNS-Lookup, dunkelgrün), die Herstellung der Verbindung zwischen Browser und Webserver (Initial Connection, orange), die Verarbeitungsdauer bis das erste Bit übertragen wird (Time to First Byte, hellgrün) sowie das Herunterladen der Datei (Content Download, blau) segmentiert. Am Ende der Balken erfolgt die Angabe der Ladezeit in Millisekunden. Die größte Bedeutung hat die Time to First Byte, da sich diese aus der Verarbeitungszeit im Backend und der Round Trip Time zusammensetzt. Die Round Trip Time ist vorwiegend von dem Standort und der Internetverbindung des Nutzers abhängig, beides lässt sich nicht beeinflussen.
Zu Beginn einer Performanceoptimierung sollte der Ist-Zustand der Ladezeit ermittelt und protokolliert werden. Es bietet sich an, bereits während der Entwicklung, einzelne Implementierungsschritte zu prüfen und Probleme direkt zu beheben. Nach jeder Änderung empfiehlt es sich erneut Tests vorzunehmen, um die Optimierung zu quantifizieren und zu validieren. Eine anschließende Archivierung der Ergebnisse stellt Referenzwerte für spätere Vergleiche bei der Evaluation verschiedener Maßnahmen bereit [KR13].
In den nachfolgenden drei Kapiteln werden verschiedene Methoden und Werkzeuge zur Ermittlung der Ladezeit vorgestellt. Dabei handelt es sich um Browser-Werkzeuge, die Tests aus der Entwicklungsumgebung heraus ermöglichen, synthetische Methoden, die ein aktives Monitoring mit Hilfe von automatisierten Tests vornehmen, und das passive Monitoring durch Real User Monitoring Tools, die Interaktionen realer Nutzer protokollieren.