Privacy Policy Cookie Policy Terms and Conditions Lasttest (Computer) - Wikipedia

Lasttest (Computer)

aus Wikipedia, der freien Enzyklopädie

Unter einem Lasttest oder Performancetest versteht man einen (nicht funktionalen) Softwaretest, mit dem eine gewisse Last auf dem laufenden System erzeugt und das Verhalten desselbigen beobachtet und untersucht wird. Er stellt somit eine Form der Simulation dar. Ziel dabei ist es

  1. Fehler aufzudecken, die im funktional orientierten Systemtest/Integrationstest nicht gefunden wurden
  2. Nichtfunktionale Anforderungen, wie z. B. geforderte Antwortzeiten sowie Mengenverarbeitungen, für den Wirkbetrieb nachzuweisen.

Der Lasttest ist demnach dem funktionalen Test nachgelagert, d. h. das (Teil-)System muss in einem funktional stabilen Zustand sein, um überhaupt auf Performanz testen zu können.

Inhaltsverzeichnis

[Bearbeiten] Ausprägungen

Die Last kann darin bestehen, dass Funktionen sehr schnell hintereinander ausgeführt werden, oder dass parallele Aktivitäten von virtuellen Usern (Multiuser, Vuser) ausgeführt werden. In der Regel wird dabei direkt auf Protokollebene (Netzwerkprotokoll) gearbeitet.

Grundsätzlich lässt sich unterscheiden zwischen (1) Performancemessungen und (2) Lasttests. Performancemessungen wiederholen ausgewählte Testfälle bzw. Einzelprozesse aus dem Systemtest unter Last: dadurch werden einzelne Funktionen auf ihre Performanzeigenschaften geprüft, d. h. sämtliche Vuser führen den gleichen Prozess aus, wobei somit die Skalierbarkeit für die Einzelfunktion(en) getestet wird. Man spricht in dem Zusammenhang auch von Transaktionen. Lasttests im engeren Sinne testen gesamte Prozessketten sowie den Prozessmix auf Performanz, d. h. die Verknüpfungen der Einzelprozesse; damit simulieren sie konkrete Vorgänge aus dem tatsächlichen Wirkbetrieb und stellen einen nicht zu unterschätzenden Schritt zur Erreichung der Wirkbetriebstauglichkeit dar. Auch hier ist die Skalierbarkeit von entscheidender Bedeutung, jedoch jetzt für den gesamten Prozessmix.

Wird das System bewusst über die definierte Lastgrenze hinaus beansprucht, spricht man vom Stresstest. Damit werden folgende Fragestellungen untersucht:

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


Im Gegensatz dazu dient der Niederlasttest, der absichtlich mit einer geringen Intensität betrieben wird, der Untersuchung des Interaktionsverhaltens der virtuellen User und des von ihnen erzeugten Nachrichtenverkehrs auf dem System.

Einen Lasttest über einen längeren Zeitraum (z. B. 48-72 Stunden) nennt man Dauerlasttest; er dient in erster Linie zur Aufdeckung von Speicherlecks.

Die destruktivste Form eines Lasttests ist der Fail-Over-Test. Dabei geht es um die Überprüfung des Systemverhaltens unter Last bei Ausfall von Systemkomponenten. Im Idealfall werden damit Notfallszenarien überprüft, wie z. B. das rechtzeitige Zuschalten von Zusatzressourcen, um einen totalen Systemausfall zu verhindern.

[Bearbeiten] Durchführung

[Bearbeiten] Vorbereitung

Das Testverhalten wird meist über eine Skriptsprache definiert, bei vielen Tools kann man es auch - ähnlich einem Makro - über einen Webbrowser "aufnehmen". Dies wird zumeist über einen Proxy realisiert, welcher die Requests, etc. in die Skriptsprache übersetzt. Ein wichtiges Kriterium ist hier die Benutzerfreundlichkeit bei der Testerstellung, aber auch die Variabilität und die unterstützten Protokolle (HTTP, HTTPS etc.).

[Bearbeiten] Testlauf

Im Testlauf wird mittels des erstellten Skriptes das aufgezeichnete Verhalten (evt. ergänzt durch zufällige Elemente bzw. zählerabhängigen Variablen) in beliebig hoher Anzahl (Virtual Users) nebenläufig ausgeführt und somit die Anwendung unter Last gesetzt. Ein wichtiges Kriterium ist hierbei die maximal erzeugbare Last, sowie die Hardwareanforderungen, die damit einhergehen.

Sinnvoll ist auch die Möglichkeit, die Lasterzeugung auf mehrere Rechner zu verteilen, welches einige Tools anbieten. Hierdurch kann der Einfluss der Netzwerk-Kapazität, sowie der Hardware-Beschränkungen des lasterzeugenden Rechners, minimiert werden.

Während des Testlaufs sammelt das Tool möglichst viele Daten. Grundsätzlich geschieht dies direkt auf der Seite der lasterzeugenden Anwendung (Responsetime, Errorcodes, etc.). Es kann jedoch auch modularisiert stattfinden (Hilfsprogramme z. B. auf dem Server der zu testenden Anwendung). Wichtigstes Kriterium ist hier, dass möglichst viele Möglichkeiten zur Sammlung verschiedener Daten geboten werden.

[Bearbeiten] Auswertung

Zur Auswertung stehen meist gewisse Kennzahlen (z. B. Responsetime vs. Zeit, Timeouts vs. Userzahl, etc.) in Logfiles bzw. zeitabhängigen Graphen zur Verfügung. Gute (meist kommerzielle) Tools bieten auch Möglichkeiten, z. B. über (Auto-)Korrelationsfunktionen, die Abhängigkeiten im Verhalten zu analysieren (z. B. hohe Responsetime vs. Aufruf einer bestimmten Seite, etc.).

Einige Tools bieten auch zusätzliche Möglichkeiten, um bestimmte Web-/Datenbank-Server (z. B. IIS, Apache, MSSQL) oder Application-Server (Tomcat, etc.) zu überwachen, um direkt Zusammenhänge (z. B. hohe Responsetime vs. Datenbankzugriffe) zu analysieren.

[Bearbeiten] Normen

Als Orientierung für die Planung eines Last- und Performancetests ist die DIN 66273 ein geeigneter Ausgangspunkt. Diese ist in der internationalen Norm ISO 14756 enthalten und standardisiert Begriffe sowie Mess- und Bewertungsverfahren der Leistung von komplexen DV-Systemen.

[Bearbeiten] Softwaretools

Zur Durchführung von Lasttests bieten sich sog. Lasttesttools an. Im Allgemeinen wird ein Lastserver installiert, der die Last auf das zu testende System erzeugt. Die Lasttesttools können entweder selbst hergestellt werden, oder man verwendet Standardsoftware, die eine Fülle an Funktionen und Auswertungsmöglichkeiten bietet.

[Bearbeiten] Kommerzielle Anbieter

Kommerzielle Tools mit einer hohen Leistungsfähigkeit bewegen sich im Preisrahmen von € 5.000 bis ca. € 30.000 oder lassen sich für einmaligen Einsatz für ca. € 5.000 auch mieten.

Speziell zu Lasttesttools sind etablierte Anbieter:

[Bearbeiten] Freie Software

Im Open Source Umfeld lohnen die Tools

einen Blick. Weitere allgemeine Infos zu Testtools findet man z. B. unter http://www.softwareqatest.com.

[Bearbeiten] Weblinks

[Bearbeiten] Literatur

  • Asböck, Stefan: Load Testing for eConfidence, Segue Software Deutschland GmbH, Hamburg 2001.
  • Loukides, Mike; Musumeci, Gian-Paolo: System Performance Tuning, 2. Auflage, O'Reilly & Associates, Sebastopol 2002.
Andere Sprachen

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -