Netzwerktest mittels Lasttestwerkzeug - Teil 1/2

Definierte Netzwerklast bewusst herbeiführen

Serie

Standardisierte Vorgehensweisen, mit denen Gewissheit über die Leistungsfähigkeit eines Softwareproduktes erlangt werden kann, sind in der Softwarequalitätssicherung längst etabliert und werden nur unzureichend für das Bewusstsein über das eigene Firmennetzwerk eingesetzt. 

Wie verschaffen Sie sich Gewissheit über die Leistungsfähigkeit Ihres Netzwerkes? Wie stellen Sie Fehler in der Netzwerkstruktur nach und welche etablierten Techniken können Sie hierbei nutzen? Diesem Artikel liegt ein Zwischenfall während einer Pressekonferenz eines norddeutschen Großkonzerns zugrunde.

Anzeige

Der klassische Lasttest im Softwarelebenszyklus

Selbst die beste Software ist nicht nutzbar, wenn jeder Klick zur Mittagszeit einen nicht enden wollenden Ladebalken hervorruft oder eine Vielzahl von Angestellten den Videostream der konzerneigenen Pressekonferenz mitverfolgt und den Server verlangsamt. Grundlegender Zweck des Lasttests ist es daher, sich ein Bewusstsein darüber zu verschaffen, wie sich die Leistungsfähigkeit eines Softwareproduktes unter der zunehmenden Arbeitslast von gleichzeitigen Benutzern ändert und ob das Testobjekt letztlich der erwarteten Anzahl von Anwendern standhält. Kenngrößen, die diese Performanz definieren, sollten in der Softwareentwicklung in Form von nicht-funktionalen Produktanforderungen definiert und schon in der Konzeptionsphase berücksichtigt werden.

Der Lasttester setzt bei seiner Arbeit die störungsfreie Funktionalität der Netzwerkinfrastruktur voraus, da er seinen Fokus zumeist auf die Überprüfung der Qualitätsmerkmale der zu testenden Applikation unter verschiedenen Lastzuständen legt. Vereinfacht gesagt setzt er voraus, dass die Netzwerkinfrastruktur niemals die Schwachstelle seiner Messungen darstellt (weiterführende Information: [HPLR, LTUe]).


Lesen Sie auch den anderen Beitrag der Serie „Netzwerktest mittels Lasttestwerkzeug:“:

Teil 1: Definierte Netzwerklast bewusst herbeiführen
Teil 2: Systematischer Testaufbau und Testdurchführung


Die Werkzeuge des klassischen Lasttests

Für Informationssysteme, die auf eine Vielzahl von parallel arbeitenden Nutzern ausgelegt sind, ist es nicht wirtschaftlich möglich, das Lastverhalten manuell zu ermitteln. Eine effiziente Alternative bietet an dieser Stelle eine Palette von kommerziellen und nicht-kommerziellen Lasttes tools. Diese Tools können viele gleichzeitig arbeitende Anwender simulieren und den eigentlichen Testprozess automatisiert durchführen. Hierfür bieten gängige Werkzeuge die Möglichkeit, den Netzwerkverkehr zwischen Client- und Server-Anwendung aufzuzeichnen und nach individueller Anpassung als Skript zu hinterlegen. Das erstellte Skript kann während der eigentlichen Testdurchführung über eine variable Dauer hinweg beliebig oft parallel ausgeführt werden.

Jede einzelne der parallel arbeitenden Skriptausführungen innerhalb des Tests simuliert näherungsweise einen realen Anwender. Der Erfolg dieser Annäherung hängt hauptsächlich von der Komplexität der zu testenden Anwendung sowie dem Detailgrad der Funktionalitäten ab, die in Form von repräsentativen Geschäftsprozessen abgebildet werden sollen. Jeder dieser ausgewählten Geschäftsprozesse ist wiederum Grundlage für das exakt umzusetzende Lasttestskript. Wie bereits angesprochen, kann die Komplexität der Geschäftsprozesse beliebig verfeinert werden. Ein ausreichender Realitätsgrad kann aber oft bereits mit der Abbildung von 5 bis 20 Klick-Aktionen innerhalb eines Geschäftsprozesses erreicht werden (weiterführende Information: [Kle13, Koo08, Wiki-a]).

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Netzwerktechnik, das Nervensystem der IT

Das Netzwerk versorgt den Computer mit Daten aus aller Welt. Bleiben diese Daten aus, so ist nicht nur eine Software, sondern zumeist das gesamte System schlagartig nicht mehr nutzbar. Erreichen die Daten verzögert ihr Ziel, schlägt sich dies zwangsläufig in Wartezeiten innerhalb der Anwendung nieder, die diese Daten benötigt.

Netzwerke, die die Infrastruktur moderner Applikationen bereitstellen, müssen proportional zu den steigenden Anforderungen an die Anwendungen selbst wachsen. Je größer das Netzwerk ist, desto größer wird auch das Risiko von Konfigurationsfehlern oder Hardwareausfällen (weiterführende Information: [Wiki-b]).

Wie schnell und zuverlässig ist Ihr Netzwerk denn nun?

Eine entsprechende Fachabteilung wird die Frage nach der Geschwindigkeit mit der Angabe eines maximalen Gesamtdurchsatzes im Bereich von 100 Megabit pro Sekunde bis hin zu 100 Gigabit pro Sekunde beantworten. Diese Angabe stellt im Grunde keine Geschwindigkeit dar, sondern beziffert eine Datenmenge, die pro Sekunde ungehindert vom Netzwerk übertragen werden kann. Verzögerungen durch das Netzwerk wird der Anwender erst spüren, wenn die abzuwickelnde Datenmenge den maximalen Gesamtdurchsatz einer betroffenen Netzwerkstrecke übersteigt. Ähnlich wie bei einem Stau auf der Autobahn verlangsamt sich die effektive Übertragungsgeschwindigkeit schlagartig auf einen sehr geringen Wert.

Um einschätzen zu können, wann eine Überschreitung des maximalen Datendurchsatzes droht, müssen zunächst folgende Fragen beantwortet werden:

  • Wie viel Netzwerklast erzeugt ein durchschnittlicher Anwender?
  • Wie viele potenziell gleichzeitige Anwender gibt es und welche Tätigkeiten führen sie aus?
  • Wie häufig und wie schnell führen die Anwender diese Tätigkeiten aus?
  • Welche Datenmengen werden bei den Aktivitäten über das Netzwerk versendet oder empfangen?
  • Wo in der Netzwerktopologie befinden sich bei den einzelnen Tätigkeiten Quelle und Ziel der Kommunikation und welche Netzwerkstrecken werden dabei potenziell belastet?

Die Angabe des maximalen Datendurchsatzes wird nur anhand von Datenblättern der verwendeten Netzwerkkomponenten bestimmt und in der Regel nie in der konkreten Konfiguration und im realen Umfeld nachgewiesen. Im Gegensatz zur getesteten Software fehlt hier also jegliche Gewissheit über die real vorhandene Leistungsfähigkeit.

Beispielhafter Verkehrsfluss zwischen Hamburg, Bremen, Bielefeld und Berlin. (Kartendaten © GeoBasis-DE/BKG [©2009] Google).

Bild 1: Beispielhafter Verkehrsfluss zwischen Hamburg, Bremen, Bielefeld und Berlin. (Kartendaten © GeoBasis-DE/BKG [©2009] Google).

Lasttest gleich Netzwerktest?

Besitzen wir bereits ein Skript, welches einen Anwender simuliert, der mit einer beliebigen Applikation arbeitet, so kann dieses auch für einen Test der Netzwerkstruktur verwendet werden. Es sei an dieser Stelle jedoch angemerkt, dass es prinzipiell erst einmal egal ist, welches Skript beziehungsweise welche Anwendung letztlich den Netzwerkverkehr her- vorruft, den wir erzeugen wollen. Eine erste Grundlage zur Erstellung des Netzwerktests ist jedoch vorhanden und dient zudem als Basis für die Berechnung des erzeugten Datendurchsatzes eines realen Anwenders bei seiner täglichen Arbeit.

Den entscheidenden Mehrwert liefern an dieser Stelle das im Lasttest verwendete Werkzeug und die beteiligte Infrastruktur. Kritische Pfade des Netzwerkes, auf denen sich die Datenströme mehrerer Anwender bündeln, sind für diese Datenmengen ausgelegt und können meist nicht von einem einzigen Computer als Quelle vollständig ausgelastet werden. Die Infrastruktur des Lasttesttools liefert eine einfache Möglichkeit, mehrere Computer gleichzeitig dazu anzuweisen, das Lasttestskript auszuführen und damit die Netzwerktopologie zu belasten.

Die als Lastgenerator bezeichneten Systeme können durch physikalisches Umstecken des Netzwerkanschlusses oder durch geeignete Konfigurationsänderungen der Netzwerkparameter flexibel an beliebigen Knotenpunkten des Netzwerks eingebracht werden. Die Nutzung dieser mitgelieferten Infrastruktur bietet eine kosteneffiziente Möglichkeit, gezielt die relevanten Netzwerkstrecken zu prüfen. Da Lastgeneratoren ausschließlich auf diese Aufgabe optimiert sind, kann jeder einzelne eine große Anzahl von realen Benutzern simulieren. Die konkrete Anzahl, die pro Lastgenerator simuliert werden kann, hängt hierbei sehr stark vom verwendeten Werkzeug sowie der Komplexität der Lasttestskripte ab. Das eigentliche Lasttesttool, welches den Testausführungsprozess steuert, protokolliert parallel die relevanten Messwerte und bereitet diese in den meisten Fällen angemessen auf.

Abstrahierter Test

Analog zum Straßennetz könnte man sagen, dass ein Problem auf der A2 festgestellt wurde: Zwischen Kreuz Hannover und Berlin treten im Berufsverkehr Verkehrsstö-rungen auf (siehe Bild 1). Man würde beispielsweise Hamburg, Bremen und Bielefeld als Lastgeneratoren verwenden und Fahrzeuge von dort koordiniert nach Berlin schicken.

Organisatorisch muss dabei beachtet wer-den, dass beispielsweise die Strecke von Hamburg über die A24 in Richtung Berlin gesperrt wird, um die definierte Menge der Fahrzeuge – oder Netzwerkpakete – in definierter Zeit auf den zu analysierenden Streckenabschnitt schicken zu können. Dann können Start- und Ankunftszeiten protokolliert und der betroffene Strecken-abschnitt reproduzierbar in die problematische Situation versetzt werden. Danach findet eine Analyse und gegebenenfalls Änderung am Streckenabschnitt statt. Die durchgeführten Änderungen können durch einen erneuten Test validiert werden.

Gleich weiterlesen? Hier finden Sie den 2. Teil.

Marcel Jodorf

Marcel Jodorf ist als Consultant bei der Sogeti Deutschland GmbH im Bereich Softwarequalitätssicherung für einen norddeutschen Großkonzern tätig. Seine Aufgabenbereiche umfassen Beratung, Konzeptionierung, Durchführung sowie Auswertung von Last- und Performanztests für verschiedene Softwareprojekte.   

 

Literatur & Links

[HPLR] Hewlett Packard, LoadRunner
[Kle13] B. Klemm, Application Performance Testing: A Universal Performance Testing Metho- dology, Kindle E-Book, 2013
[Koo08] T. Koomen, L. van der Aalst, B. Broekman, M. Vroon, TMap Next, dpunkt.verlag, 2008
[LTUe] International Testing-Board, Lasttest Tools Übersicht
[Wiki-a] Wikipedia, Lasttest
[Wiki-b] Wikipedia, Rechnernetz
 

 
 

Anzeige

Artikel zu diesem Thema

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.