Anwendung unter Last

Aufbau eines Last erzeugenden Systems

Für die Durchführung von Last- und Performancetests empfiehlt es sich, eine entsprechend definierte technische Umgebung zur Lasterzeugung und Testdurchführung bereitzustellen. Diese sollte dem Aufbau der produktiven Zielumgebung entsprechen.
Wesentliche Komponenten eines Last erzeugenden Systems sind die Last- und Performance-Controller und die Last- und Performanceagenten. Die Controller steuern die Durchführung von Lasttests, sammeln nach Abschluss der Tests die ermittelten Daten aller lasterzeugenden Agenten sowie der zusätzlich überwachten Systemkomponenten, und stellen diese Daten abschließend in Reports verdichtet bereit. Die Agenten erzeugen die aktuelle Last, mit der ein System unter Last gesetzt wird. Sie sollen geringe Systemanforderungen haben, sodass mit wenigen Agenten eine möglichst hohe Last erzeugt werden kann.

Abb. 1: Aufbau eines Last erzeugenden Systems

Voraussetzungen für die Durchführung von Tests in einem System unter Last sind, dass:

  • definierte oder zufällig verteilte Wartezeiten im Lastskript unterschiedliches Benutzerverhalten simulieren,
  • Geschäftsvorfälle in Lasttests Transaktionen auf der Protokollebene entsprechen. Hierbei muss das Verhältnis der Transaktionen untereinander variieren, damit die Zufälligkeit bei der Ausführung erreicht wird,
  • unterschiedliche Geschäftsvorfälle in einem gesamten Lasttest genutzt werden, um dem realen Benutzerverhalten möglichst nahe zu kommen,
  • parametrisierte Eingaben und aufbereitete Datendateien verwendet werden, um ein entsprechend breites Benutzerverhalten zu simulieren,
  • verschiedene Bandbreiteneinstellungen eingesetzt werden, um ein entsprechend reales Benutzerverhalten zu simulieren (z.B. GPRS, ISDN, DSL, LAN).
Durchführung eines Lasttests

In einem Lasttest werden die erstellten Testskripte in beliebig hoher Anzahl nebenläufig ausgeführt und somit die Anwendung unter Last gesetzt. In der Regel wird direkt auf Protokollebene (Netzwerkprotokoll) gearbeitet. Dabei lässt sich zwischen Performancemessungen und Lasttests unterscheiden. Performancemessungen wiederholen ausgewählte Testfälle aus dem Systemtest unter Last. Dadurch werden einzelne Funktionen oder Geschäftsvorfälle (Transaktionen) auf ihre Performanceeigenschaften hin geprüft. Auf diese Weise wird die Skalierbarkeit dieser Transaktionen getestet. Lasttests testen gesamte Prozessketten sowie den Mix aller Geschäftsvorfälle auf Performance und simulieren damit konkrete Vorgänge aus dem tatsächlichen Anwendungsbetrieb.

Abb. 2: Testvorbereitung von Last- und Performancetests

In solchen Last- und Performancetests werden folgende Fragestellungen untersucht:

  • Wie ändert sich das Antwortzeitverhalten?
  • Kann mit dem System überhaupt noch gearbeitet werden?
  • Zeigt das System undefiniertes Verhalten, z.B. kommt es zu einem Absturz?
  • Geht das System nach Rückgang der Überlast wieder in den normalen Bereich zurück?

Wird das System bewusst über die definierte Lastgrenze hinaus beansprucht, spricht man von einem Stresstest. Im Gegensatz dazu dient der Niederlasttest, der gezielt mit einer geringen Intensität betrieben wird, der Untersuchung des Interaktionsverhaltens der virtuellen User und des von ihnen erzeugten Nachrichtenverkehrs auf dem System. Bei einem Ausfalltest wird das Systemverhalten unter Last bei Ausfall von Systemkomponenten geprüft. Damit lassen sich spezielle Szenarien prüfen, z.B. das Zuschalten weiterer Ressourcen, um einen totalen Systemausfall zu verhindern. Die Durchführung der Tests kann sich entsprechend der zu prüfenden Kriterien über unterschiedlich lange Zeiträume, z.B. mehrere Tage oder auch Wochen (Dauerlasttest), erstrecken.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.