Was ist ein Lasttest?
Lasttests überprüfen die Stabilität einer Anwendung oder loten ihre Grenzen aus. Es gibt zahlreiche kostenlose und kostenpflichtige Lasttest-Tools auf dem Markt. Der Lasttest (abgeleitet von engl. Load testing) ist eine Möglichkeit, Software auf ihre Marktreife zu prüfen oder bereits bestehende Systeme hinsichtlich ihrer Belastbarkeit zu testen. Bei Lasttests geht es darum, herauszufinden, wie viel ein System maximal leisten kann, bevor die Performance signifikant nachlässt und daher der angebotene Service nicht mehr in vollem Umfang erbracht werden kann. Dafür werden Belastungen simuliert, die das System herausfordern und irgendwann an seine Grenzen bringen. Dafür werden entweder zahlreiche gleichzeitige Zugriffe vorgespielt oder bestimmte Aktionen in schneller Abfolge wiederholt. Das System reagiert auf diese Lasttests bestmöglich und wird bei einer Überbeanspruchung nicht geschädigt.
Was ist das Ziel eines Lasttests?
Lasttests können für verschiedene Zwecke eingesetzt werden. In der agilen Software-Entwicklung beispielsweise gehören Lasttests zur Qualitätssicherung. Bevor eine neue Software auf den Markt kommt, wird dabei überprüft, mit welchen Anforderungen das Programm umgehen kann und wo das Ende seiner Leistungsfähigkeit erreicht ist. Auch Fehler, die in vorherigen Arbeitsschritten übersehen wurden, können durch einen Lasttest sichtbar gemacht werden. Es wird überprüft, wie ein System eine unerwartete Mehrbelastung verarbeitet, ab welchem Punkt es zu Einschränkungen kommt und wie schnell die Reaktionszeit auf Fehler ist.
Welche Lasttests gibt es?
Lasttest ist dabei nicht gleich Lasttest. Es gibt verschiedene Ansätze, die für unterschiedliche Einsatzzwecke konzipiert wurden. Die Unterscheidungen sind dabei nicht ganz eindeutig und die Produkte einiger Anbieter ermöglichen auch verschiedene Arten der Lasttests. Grob kann man allerdings von vier verschiedenen Gruppen sprechen.
Der Performancetest
Der Performancetest kann auch als klassischer Lasttest bezeichnet werden und ist sicherlich die einfachste Form dieser Testmöglichkeiten. Die Anforderungen, die an ein System gestellt werden, sind dabei vergleichsweise gering. Überprüft wird, ob ein neues oder bestehendes System die zu erwartenden Belastungen aushält und ob die Qualität der Performance währenddessen gleichbleibt. Diese Art der Lasttests eignet sich z. B. für Web-Apps, die mit einer bestimmten Anzahl gleichzeitiger Zugriffe umgehen können sollen. Der Lasttest simuliert diese Zugriffe und überprüft, ob die Reaktionszeiten den Erwartungen entsprechen.
Der Kapazitätentest
Diese Art des Lasttests geht einen Schritt weiter. Statt zu fragen „Kann mein System, was es soll?“, lautet die Frage hier eher „Was kann mein System eigentlich?“. Es wird daher nicht ein zu erwartender Ansturm simuliert, sondern die Belastung sukzessive erhöht. Dafür muss im Vorfeld festgelegt werden, was genau die Anforderungen sind, die das System erfüllen soll. Geht man beispielsweise von der Antwortzeit aus, muss vorher überlegt werden, wie schnell das System reagieren soll. Dann beginnt der Lasttest und stellt nach und nach höhere Anforderungen. Dies geht so lange weiter, bis das System an seine Grenzen gerät.
Der Stresstest
Die erneute Steigerung ist der Stresstest. Diese Herangehensweise setzt im Prinzip dort an, wo der Kapazitätentest aufhört. Während man bei diesem schaut, wie weit man das System skalieren kann und dann beim maximalen Wert aufhört, übertrifft man diesen Wert beim Stresstest absichtlich. Es geht hierbei nicht darum, wie viel das System leisten kann, sondern wie es reagiert, wenn es überfordert ist. Daher stellt man es bei diesem Lasttest vor eine unlösbare Aufgabe und misst dann die Antwortzeiten oder sieht sich an, ab wann das System abstürzt und wie es das tut. So ist man auf Härtefälle im realen Betrieb vorbereitet.
Der Dauer-Lasttest
Die bisher vorgestellten Lasttests waren jeweils für einen kurzen Zeitraum ausgerichtet. Man testet das System, beendet den Test und überprüft die Ergebnisse. Diese Verfahren geben allerdings keinen Aufschluss darüber, ob das System einer Belastung auch dauerhaft gewachsen ist. Dies herauszufinden, ist die Aufgabe eines Dauer-Lasttests. Dieser wird mehrere Stunden oder sogar Tage am Stück durchgeführt und stellt fest, ob das System auch im Dauerbetrieb stabil bleibt, welche Ressourcen verbraucht werden und ob unerwartete Fehler auftreten. Die meisten Systeme sollen schließlich immer erreichbar sein. Der Dauer-Lasttest stellt sicher, dass sie diesem Anspruch auch gerecht werden.
Was ist vor einem Lasttest zu beachten?
Grundsätzlich sind Lasttests eine gute Möglichkeit, ein System auf Herz und Nieren zu testen, es eventuell zu verbessern und mögliche Risiken im Vorfeld besser einschätzen zu können. Bevor Sie allerdings einen Lasttest durchführen, sollten Sie einige Überlegungen anstellen.
Erwartungen definieren
Die erste Frage, die Sie sich stellen sollten, zielt darauf ab, was Sie mit dem Lasttest erreichen wollen. Das betrifft zuallererst die grundsätzlichen Ziele und Fragen, die ein solcher Test beantworten soll. Geht es Ihnen um einen letzten Test vor der Markteinführung? Wollen Sie überprüfen, was Ihr System tatsächlich leisten kann? Möchten Sie sich für den Worst Case wappnen und das Programm überfordern? Oder geht es Ihnen vor allem um die Performance über einen längeren Zeitraum hinweg? Je nach Anforderung benötigen Sie einen anderen Lasttest.
Wenn Sie sich über die grundsätzlichen Ziele im Klaren sind, sollten Sie diese spezifizieren. Welche Antwortzeit will ich erreichen? Was soll mein System leisten können? Welche Werte sind vertretbar und ab welchem Punkt muss ich die Performance nachbessern? Mit welchen maximalen Belastungen kann ich überhaupt rechnen? Wenn Sie diese Fragen bereits vor der Durchführung des Lasttests beantworten, können Sie diesen viel effizienter und zielgerichteter angehen. So erreichen Sie die besten Ergebnisse und setzen den Lasttest optimal ein.
Zeitplan festlegen
Dieser Punkt ist ebenfalls zweigeteilt zu betrachten. Zum einen sollten Sie vor der Durchführung des Lasttests überlegen, an welchem Punkt der Entwicklung dieser Test sinnvoll ist. Wenn Ihre App beispielsweise noch nicht ausgereift ist, führt auch der Lasttest nicht zu sinnvollen Ergebnissen. Führen Sie ihn allerdings zu spät durch, können die Ergebnisse eventuell nicht mehr in die Entwicklung einfließen. Zum anderen sollten Sie auch bei einem bereits bestehenden System überlegen, wann der Lasttest die geringsten negativen Auswirkungen auf Ihren regulären Geschäftsbetrieb hat. Gerade wenn Sie einen Dauer-Lasttest durchführen möchten, spielt der richtige Zeitpunkt eine wichtige Rolle.
Aufwand bestimmen
Im Folgenden stellen wir Ihnen verschiedene Tools vor, die für die Durchführung eines Lasttests zu empfehlen sind. Hierbei ist schnell ersichtlich, dass die zu erwartenden Kosten deutlich voneinander abweichen. Es gibt empfehlenswerte Open-Source-Lösungen, gerade bei einem wiederkehrenden Einsatz lohnt sich aber vielleicht auch eine proprietäre Variante. Sie müssen daher im Vorfeld festlegen, wie viel Sie für einen Lasttest investieren möchten. Auch die Frage, wie nahe die Testumgebung der Produktionsumgebung kommt, ist wichtig und im Vorfeld zu klären. Möchten Sie mehrere Lasttests einsetzen, sollten diese aufeinander abgestimmt werden, und auch die Auswertung der Testdaten muss vor Testbeginn organisiert werden.
Wie wird ein Lasttest durchgeführt?
Bei der Durchführung eines Lasttests gilt grundsätzlich „Safety first“. In jedem einzelnen Schritt sollte das System bestmöglich geschützt und unterstützt werden. Die folgenden Ansätze sind dafür zu empfehlen:
- Sicherheitsvorkehrungen: Legen Sie vor dem Lasttest ein Backup aller Daten des Systems an. Kommt es zu Problemen, können Sie so schnell wieder auf den vorherigen Zustand wechseln. Überprüfen Sie außerdem, welche externen Systeme angeschlossen sind, und stellen Sie sicher, dass diese durch den Lasttest nicht beeinträchtigt werden können.
- Schritt für Schritt vorgehen: Auch wenn Sie Ihr System im großen Umfang testen möchten, ist es besser, wenn Sie zunächst im Kleinen anfangen, sich langsam herantasten und dann steigern. Gerade wenn Sie Ihr System mit einem Lasttest überfordern wollen, lohnt sich vorher eine Überprüfung, was es überhaupt grundsätzlich leisten kann.
- Die passende Software-Lösung: Natürlich spielt auch die Wahl der passenden und sinnvollen Software-Lösung eine große Rolle. Nur wenn der entsprechende Lasttest auf Ihre Anforderungen zugeschnitten ist, erzielen Sie auch aussagekräftige Ergebnisse und können daraus wertvolle Erkenntnisse gewinnen.
Welche Tools für Lasttests gibt es?
Es gibt zahlreiche Tools, die auf Lasttests spezialisiert sind und Ihnen so bei der Überprüfung Ihres Systems wertvolle Dienste leisten. Die folgenden Programme sind besonders empfehlenswert:
JMeter
JMeter ist eine Open-Source-Lösung und punktet mit einer großen und hilfreichen Community. Mit diesem Tool können Sie Lasttests für zahlreiche Anwendungen und Server durchführen und einfache Reportings erstellen. Ein Nachteil dieser Lösung ist ihre vergleichsweise lange Einarbeitungszeit. Wenn Sie allerdings bereit sind, sich in das Programm einzuarbeiten, erhalten Sie eine hervorragende Alternative zu kostenintensiven Lasttests.
IBM Rational Performance Tester
Der IBM Rational Performance Tester ist eine starke Option für Performance- und Kapazitätentests. Mit dem Programm können Sie auch Testskripte in Java verfassen, Statistiken erstellen und Ihre Cloud überprüfen. Der Lasttest ist vergleichsweise einfach durchzuführen und benötigt keine lange Einarbeitung. Neben einer kostenlosen Testversion gibt es mehrere Preismodelle.
LoadRunner
LoadRunner ist ein Klassiker auf dem Gebiet der Lasttests. Das Programm ist in einer kostenlosen Community-Version und einer proprietären Variante erhältlich und unterstützt zahlreiche Technologien. Der LoadRunner bietet Ihnen zahlreiche Möglichkeiten, Lasttests genau nach Ihren Bedürfnissen durchzuführen, und überzeugt dabei durch ein einfaches Handling.