performance testing vs load testing vs stress testing
Unterschied zwischen Leistungstests, Lasttests und Stresstests - mit Beispielen
Unser vorheriges Tutorial in dieser Reihe wird das beste sein Leitfaden für Leistungstests für jeden Anfänger.
Sicherheitstest-Tools für Webanwendungen
Im Bereich Softwaretests stoßen wir auf Begriffe wie Leistungstests, Belastungstests, Stresstests usw. Diese Begriffe werden häufig missverstanden und als dieselben Konzepte interpretiert.
Es gibt jedoch einen signifikanten Unterschied zwischen diesen drei Testtypen, und es ist wichtig, dass ein Tester dasselbe versteht.
=> Klicken Sie hier, um eine vollständige Reihe von Tutorials zu Leistungstests anzuzeigen
In diesem Tutorial werden wir jeden dieser Testtypen diskutieren, um die genauen Unterschiede zwischen ihnen zu verstehen.
Was du lernen wirst:
Unterschied zwischen Leistungstests, Lasttests und Stresstests
# 1) Leistungstests
Was ist Leistungstest?
Leistungstests sind Tests, die durchgeführt werden, um festzustellen, wie sich die Komponenten eines Systems in einer bestimmten Situation verhalten.
Die Ressourcennutzung, Skalierbarkeit und Zuverlässigkeit des Produkts werden ebenfalls im Rahmen dieser Tests überprüft. Dieser Test ist die Teilmenge des Performance Engineering, die sich auf die Behebung von Leistungsproblemen beim Design und der Architektur eines Softwareprodukts konzentriert.
Das obige Bild erklärt uns das deutlich Leistungstests sind die Obermenge für Last- und Stresstests. Andere Arten von Tests, die in Leistungstests enthalten sind, sind Spike-Tests, Volumentests, Dauertests und Skalierbarkeitstests . Leistungstests sind daher grundsätzlich ein sehr weit gefasster Begriff.
Leistungstestziel:
Das Hauptziel von Leistungstests besteht darin, das Benchmark-Verhalten des Systems zu ermitteln. Es gibt eine Reihe von branchenweit definierten Benchmarks, die bei Leistungstests eingehalten werden sollten.
Leistungstests zielen nicht darauf ab, Fehler in der Anwendung zu finden. Der Test wird auch nicht bestanden oder nicht bestanden. Vielmehr befasst es sich mit der kritischen Aufgabe des Einstellens der Benchmark und Standard für eine Anwendung . Leistungstests sollten sehr genau durchgeführt werden. Eine genaue Überwachung der Anwendungs- / Systemleistung ist das Hauptmerkmal von Leistungstests.
Der Benchmark und Standard der Anwendung sollten in Bezug auf Attribute wie Geschwindigkeit, Reaktionszeit, Durchsatz, Ressourcennutzung und Stabilität festgelegt werden. Alle diese Attribute werden in einem Leistungstest getestet.
Zum Beispiel,
Sie können beispielsweise die Leistung des Anwendungsnetzwerks anhand des Diagramms 'Verbindungsgeschwindigkeit vs. Latenz' testen. Die Latenz ist der Zeitunterschied zwischen den Daten, die von der Quelle zum Ziel gelangen sollen.
Das Laden einer 70-KB-Seite würde für die schlechteste Verbindung eines 28,8-KBit / s-Modems (Latenz = 1000 Millisekunden) nicht länger als 15 Sekunden dauern, während die Seite derselben Größe bei einer durchschnittlichen Verbindung von 256-KBit / s-DSL (Latenz = 100) innerhalb von 5 Sekunden angezeigt würde Millisekunden).
Bei einer T1-Verbindung mit 1,5 MBit / s (Latenz = 50 Millisekunden) würde der Leistungsbenchmark auf 1 Sekunde festgelegt, um dieses Ziel zu erreichen.
Ein weiterer Beispiel wäre das eines Request-Response-Modells. Wir können einen Benchmark setzen, dass der Zeitunterschied zwischen der Erzeugung der Anforderung und der Bestätigung der Antwort im Bereich von x ms (Millisekunden) und y ms liegen sollte, wobei x und y die Standardziffern sind.
Ein erfolgreicher Leistungstest sollte die meisten Leistungsprobleme projizieren, die mit Datenbank, Netzwerk, Software, Hardware usw. zusammenhängen können.
# 2) Lasttest
Lasttests sollen das System testen, indem die Last des Systems ständig und stetig erhöht wird, bis sie den Schwellenwert erreicht. Es ist eine Teilmenge der Leistungstests.
Lasttests können einfach mit einem der auf dem Markt verfügbaren geeigneten Automatisierungstools durchgeführt werden. WAPT und LoadRunner sind zwei so bekannte Tools, die beim Testen der Last helfen. Lasttests sind auch unter Namen wie bekannt Volumentest und Ausdauertests .
Der Volumentest konzentriert sich jedoch hauptsächlich auf Datenbanken. Ausdauertests testet das System, indem es über einen längeren Zeitraum einer erheblichen Belastung ausgesetzt wird.
Der einzige Zweck des Lasttests besteht darin, dem System den größten Auftrag zuzuweisen, den es möglicherweise ausführen kann, um die Lebensdauer des Systems zu testen und die Ergebnisse zu überwachen. Eine interessante Tatsache hierbei ist, dass das System manchmal mit einer leeren Aufgabe versorgt wird, um das Verhalten des Systems in der Nulllastsituation zu bestimmen.
Zu den Attributen, die in einem Auslastungstest überwacht werden, gehören die Spitzenleistung, der Serverdurchsatz, die Antwortzeit unter verschiedenen Auslastungsstufen (unterhalb der Unterbrechungsschwelle), die Angemessenheit der H / W-Umgebung und die Anzahl der Benutzeranwendungen, die ohne Beeinträchtigung der Leistung verarbeitet werden können.
Lasttestziel:
Die Ziele der Lastprüfung umfassen:
- Aufdecken der Fehler in einer Anwendung im Zusammenhang mit Pufferüberlauf, Speicherlecks und Missmanagement des Speichers. Zu den Problemen, die möglicherweise aufgrund von Lasttests auftreten würden, gehören Lastausgleichsprobleme, Bandbreitenprobleme, die Kapazität des vorhandenen Systems usw.
- Festlegen der Obergrenze aller Komponenten einer Anwendung wie Datenbank, Hardware, Netzwerk usw., damit die Anwendung die erwartete Last in Zukunft verwalten kann.
- So legen Sie die SLAs für die Anwendung fest
Zum Beispiel,
Lassen Sie uns die E-Mail-Funktionalität einer Anwendung überprüfen, die mit jeweils 1000 Benutzern überflutet werden kann. Jetzt können 1000 Benutzer die E-Mail-Transaktionen (Lesen, Senden, Löschen, Weiterleiten, Antworten) auf viele verschiedene Arten auslösen.
Wenn wir eine Transaktion pro Benutzer und Stunde durchführen, sind dies 1000 Transaktionen pro Stunde. Durch die Simulation von 10 Transaktionen / Benutzern konnten wir den E-Mail-Server testen, indem wir ihn mit 10000 Transaktionen / Stunde belegten.
Ein weiteres Beispiel für einen Belastungstest ist in der folgenden Abbildung dargestellt:
Das obige Bild zeigt einen Belastungstest, der mit dem aufgerufenen Tool durchgeführt wurde JMeter . Dieser Test wird durchgeführt, um festzustellen, wie viele Benutzer ein System verarbeiten kann. In diesem Test werden alle 30 Sekunden 100 Benutzer hinzugefügt, bis die Last 1000 Benutzer erreicht. Jeder Schritt dauert 30 Sekunden und JMeter wartet 30 Sekunden, bevor er mit dem nächsten Schritt beginnt.
Sobald die Last 1000 Threads erreicht hat, laufen alle 300 Sekunden (5 Minuten) zusammen weiter und stoppen schließlich alle 3 Sekunden 10 Threads.
# 3) Stresstests
Unter Stresstests werden verschiedene Aktivitäten durchgeführt, um die vorhandenen Ressourcen mit überschüssigen Jobs zu überlasten, um das System zu beschädigen. Negative Prüfung Dies beinhaltet auch das Entfernen der Komponenten aus dem System im Rahmen von Stresstests.
Auch bekannt als Ermüdungsprüfung Bei diesem Test sollte die Stabilität einer Anwendung erfasst werden, indem sie über ihre Bandbreitenkapazität hinaus getestet wird.
Stresstests bewerten daher grundsätzlich das Verhalten einer Anwendung über die Spitzenlast und die normalen Bedingungen hinaus.
Minimum Spanning Tree C ++
Der Zweck von Stresstests besteht darin, den Ausfall des Systems festzustellen und zu überwachen, wie sich das System ordnungsgemäß erholt. Hier besteht die Herausforderung darin, vor dem Start des Tests eine kontrollierte Umgebung einzurichten, damit Sie das Verhalten des Systems unter den unvorhersehbarsten Szenarien wiederholt genau erfassen können.
Zu den Problemen, die möglicherweise aufgrund von Stresstests auftreten, können Synchronisationsprobleme, Speicherlecks, Rennbedingungen usw. gehören. Wenn der Stresstest überprüft, wie sich das System bei einem plötzlichen Anstieg der Benutzeranzahl verhält dann wird es ein Spike-Test genannt.
Wenn der Stresstest die Nachhaltigkeit des Systems über einen bestimmten Zeitraum durch langsamen Anstieg der Benutzeranzahl überprüfen soll, wird er als Tränktest bezeichnet.
Stresstest Ziel:
Das Ziel von Stresstests besteht darin, Berichte nach einem Absturz zu analysieren, um das Verhalten der Anwendung nach einem Fehler zu definieren.
Die größte Herausforderung besteht darin, sicherzustellen, dass das System die Sicherheit sensibler Daten nach dem Ausfall nicht beeinträchtigt. Bei einem erfolgreichen Stresstest wird das System zusammen mit all seinen Komponenten auch nach dem schrecklichsten Ausfall wieder zur Normalität zurückkehren.
Zum Beispiel,
Beispielsweise wird ein Textverarbeitungsprogramm wie Writer1.1.0 von OpenOffice.org für die Entwicklung von Briefen, Präsentationen, Tabellenkalkulationen usw. verwendet. Der Zweck unserer Stresstests besteht darin, es mit überschüssigen Zeichen zu laden.
Zu diesem Zweck fügen wir wiederholt eine Datenzeile ein, bis die Schwelle für die Verarbeitung eines großen Textvolumens erreicht ist. Sobald die Zeichengröße 65.535 Zeichen erreicht, werden einfach keine weiteren Daten mehr akzeptiert.
Das Ergebnis von Stresstests in Writer 1.1.0 führt dazu, dass es unter dem Stress nicht abstürzt und die Situation elegant handhabt, wodurch sichergestellt wird, dass die Anwendung auch unter strengen Stressbedingungen ordnungsgemäß funktioniert.
Ein weiteres Beispiel für einen Belastungstest, der einen Spike-Test durch plötzlichen Hochlauf von 7000 Benutzern darstellt, ist unten dargestellt:
FAQs
Nachdem wir genügend Diskussionen über Leistungstests, Stresstests und Belastungstests geführt haben, wollen wir uns nun einige verwandte häufige Fragen ansehen, auf die Tester nach einer Antwort suchen.
F # 1) Sind Lasttests und Leistungstests gleich?
Antworten: Die Antwort darauf lautet 'Nein'. Sie sind nicht gleich.
Inzwischen müssen Sie den Unterschied zwischen Leistungstests und Lasttests klar verstanden haben. In der folgenden tabellarischen Zusammenfassung können Sie nachlesen, wie Leistungs- und Lasttests unterschiedliche Ziele, zu untersuchende Bereichsattribute und aufzudeckende Probleme haben.
Q # 2) Ist es ein unfairer Test, Stresstests gleichzeitig durchzuführen, wenn Sie Lasttests durchführen?
Antworten: Dies ist auch eine häufige Frage in vielen Softwaretestinterviews und Zertifizierungsprüfungen, da es unfair ist, Stresstests und Lasttests parallel durchzuführen? Die Antwort darauf lautet 'Nein'. Es ist nicht unfair, Stresstests gleichzeitig durchzuführen, wenn Sie Lasttests durchführen.
Kein Test ist jemals unfair. Als Tester besteht Ihre Arbeit darin, Probleme zu finden. Es kann jedoch sein, dass die tatsächlichen Auswirkungen von Softwaretests zutreffen und Probleme, die Sie in dieser Situation feststellen, möglicherweise nicht behoben werden.
F # 3) Ist der Wiederherstellungstest Teil des Leistungstests?
Antworten: Ja, Wiederherstellungstests werden unter Leistungstests kategorisiert und manchmal auch mit Lasttests durchgeführt. Im Wiederherstellungstests Es wird darauf zugegriffen, wie gut eine Anwendung in der Lage ist, Fehler, Abstürze, Hardwarefehler und andere ähnliche Probleme zu beheben.
In dieser Aktivität wird die Software zum Ausfall gezwungen und anschließend überprüft, ob sie ordnungsgemäß wiederhergestellt werden kann. Zum Beispiel, Starten Sie das System plötzlich neu, wenn eine Anwendung ausgeführt wird, und überprüfen Sie dann die Datenintegrität der Anwendung.
F # 4) Erfordert Leistungstests eine Codierung?
Antworten: Für Leistungstests müssen Sie nicht über die fortgeschrittene Codierungsstufe verfügen. Grundlegende Programmierkenntnisse sind jedoch ein zusätzlicher Vorteil.
Zum Beispiel, Wenn Sie JMeter verwenden, sollten Sie die Grundlagen von Java kennen. Es kann Ihnen helfen, bestimmte Dinge zu debuggen, und Sie können bei Bedarf auch Ihr eigenes Skript schreiben.
F # 5) Was ist ein Spike-Test beim Leistungstest?
Antworten: Beim Spike-Test wird die Last von einer großen Anzahl von Benutzern abrupt erhöht oder verringert, und später wird das Systemverhalten beobachtet. Spike-Tests werden hauptsächlich durchgeführt, um zu überprüfen, ob das System plötzliche Änderungen der Last verarbeiten kann.
Unterschied zwischen Last- und Stresstests
Lassen Sie uns zusammenfassend die Hauptunterschiede zwischen Belastungstests, Stresstests und Leistungstests in der folgenden Tabelle betrachten:
c ++ Grafikdatenstruktur
Leistungstest | Lasttest | Belastbarkeitstest | |
---|---|---|---|
Domain | Obermenge der Last- und Stresstests | Eine Teilmenge der Leistungstests. | Eine Teilmenge der Leistungstests. |
Umfang | Sehr großer Anwendungsbereich. Beinhaltet - Lasttests, Stresstests, Kapazitätstests, Volumentests, Dauertests, Spiketests, Skalierbarkeitstests und Zuverlässigkeitstests usw. | Engerer Umfang im Vergleich zu Leistungstests. Beinhaltet Volumentests und Dauertests. | Engerer Umfang im Vergleich zu Leistungstests. Beinhaltet Einweich- und Spiketests. |
Hauptziel | Festlegen des Benchmarks und der Standards für die Anwendung. | Um die Obergrenze des Systems zu ermitteln, legen Sie die SLA der App fest und sehen Sie, wie das System mit hohen Lastvolumina umgeht. | Identifizieren, wie sich das System unter starker Belastung verhält und wie es sich nach einem Ausfall erholt. Grundsätzlich, um Ihre App auf den unerwarteten Verkehrsspitzen vorzubereiten. |
Lastgrenze | Sowohl unter als auch über der Schwelle einer Pause. | Bis zur Schwelle der Pause | Über der Bruchschwelle |
Attribute untersucht | Ressourcennutzung, Zuverlässigkeit, Skalierbarkeit, Ressourcennutzung, Reaktionszeit, Durchsatz, Geschwindigkeit usw. | Spitzenleistung, Serverdurchsatz, Antwortzeit unter verschiedenen Laststufen (unterhalb der Bruchschwelle), Angemessenheit der H / W-Umgebung, Anzahl der Benutzeranwendungen, Anforderungen an den Lastausgleich usw. | Stabilität jenseits der Bandbreitenkapazität, Reaktionszeit (über der Bruchschwelle), usw. |
Durch diesen Testtyp identifizierte Probleme | Alle Leistungsfehler, einschließlich Laufzeitaufblähung, Optimierungsspielraum, Probleme in Bezug auf Geschwindigkeit, Latenz, Durchsatz usw. Grundsätzlich - alles, was mit Leistung zu tun hat! | Lastausgleichsprobleme, Bandbreitenprobleme, Systemkapazitätsprobleme, schlechte Antwortzeit, Durchsatzprobleme usw. | Sicherheitslücken mit Überlastung, Datenbeschädigungsproblemen bei Überlastungssituation, Langsamkeit, Speicherlecks usw. |
Unterschied zwischen Last-, Belastungs- und Volumentests
Inzwischen kennen wir bereits die Belastungs- und Stresstests sowie die Unterschiede zwischen den beiden. Lassen Sie uns nun untersuchen, was Volumentests sind und wie sie sich von Lasttests und Stresstests unterscheiden.
Volumentests sind auch eine Art Leistungstests, die sich hauptsächlich auf die Datenbank konzentrieren.
Beim Volumentest wird überprüft, wie sich das System gegenüber einem bestimmten Datenvolumen verhält. Somit sind die Datenbanken mit ihrer maximalen Kapazität gefüllt und ihre Leistungsniveaus wie Antwortzeit und Serverdurchsatz werden überwacht.
Um es sehr einfach zu halten, wird der Unterschied zwischen Last-, Belastungs- und Volumentests unten gezeigt:
Volumentest | Lasttest | Belastbarkeitstest |
---|---|---|
Eine riesige Datenmenge | Eine große Anzahl von Benutzern | Zu viele Benutzer, zu viele Daten für einen Systemabsturz. |
Fazit
In diesem Tutorial haben wir anhand von Beispielen gesehen und verstanden, wie sich Leistungstests, Belastungstests und Stresstests voneinander unterscheiden und welchen Umfang die einzelnen Testtypen haben.
Wir haben auch einen kurzen Blick auf viele Kategorien unter Leistungstests wie Spike-Tests, Wiederherstellungstests, Volumentests usw. geworfen und verstanden, wie sich diese Kategorien voneinander unterscheiden.
Wir hoffen, dass dieses Tutorial für Sie eine immense Hilfe gewesen wäre, um den praktischen Unterschied zwischen Leistungs-, Last- und Stresstests zu verstehen.
In unserem nächsten Tutorial erfahren Sie mehr über Funktionstests und Leistungstests.
=> Besuchen Sie hier für eine vollständige Reihe von Tutorials zu Leistungstests
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Ein vollständiger Leitfaden für Leistungstests mit Beispielen
- Stresstest-Leitfaden für Anfänger
- Load Testing Complete Guide für Anfänger
- Testen der Auslastung, Belastung und Leistung von Webanwendungen mit WAPT
- Lasttests mit HP LoadRunner-Tutorials
- Cloud-Leistungstests: Cloud-basierte Lasttest-Dienstanbieter
- Funktionstests vs. Leistungstests: Sollte dies gleichzeitig durchgeführt werden?
- Lasttests mit LoadUI - Ein kostenloses und Open Source-Lasttest-Tool