what is scalability testing
Einführung in die Skalierbarkeitsprüfung:
Skalierbarkeitstests sind nicht funktionale Testmethoden, bei denen die Leistung einer Anwendung anhand ihrer Fähigkeit gemessen wird, die Anzahl der Benutzeranforderungen oder andere solche Leistungsmessattribute zu erhöhen oder zu verringern.
Welche Art von Test wird verwendet, um zu überprüfen, ob alle Programme in einer Anwendung ordnungsgemäß zusammenarbeiten
Skalierbarkeitstests können auf Hardware-, Software- oder Datenbankebene durchgeführt werden.
Die für diesen Test verwendeten Parameter unterscheiden sich von Anwendung zu Anwendung. Bei einer Webseite kann es sich um die Anzahl der Benutzer, die CPU-Auslastung und die Netzwerkauslastung handeln. Bei einem Webserver handelt es sich um die Anzahl der verarbeiteten Anforderungen.
Dieses Tutorial gibt Ihnen einen vollständigen Überblick über Skalierbarkeitstests mit ihren Attributen und den verschiedenen Schritten zur Durchführung des Tests anhand praktischer Beispiele, damit Sie das Konzept besser verstehen können.
Was du lernen wirst:
- Skalierbarkeitstest gegen Lasttest
- Attribute für Skalierbarkeitstests
- Schritte zum Testen der Skalierbarkeit einer Anwendung
- Fazit
- Literatur-Empfehlungen
Skalierbarkeitstest gegen Lasttest
Lasttests messen die zu testende Anwendung unter maximaler Last, bei der das System abstürzen würde. Der Hauptzweck des Lasttests besteht darin, den Spitzenpunkt zu ermitteln, nach dem die Benutzer das System nicht mehr verwenden können.
Sowohl die Last als auch die Skalierbarkeit fallen unter die Leistungstestmethode.
Die Skalierbarkeit unterscheidet sich vom Lasttest durch die Tatsache, dass der Skalierbarkeitstest das System auf allen Ebenen, einschließlich der Software-, Hardware- und Datenbankebene, bei minimaler und maximaler Last misst. Sobald die maximale Last ermittelt wurde, müssen Entwickler angemessen reagieren, um sicherzustellen, dass das System nach einer bestimmten Last skalierbar ist.
Beispiel: Wenn durch Skalierbarkeitstests eine maximale Auslastung von 10.000 Benutzern ermittelt wird, müssen Entwickler Maßnahmen ergreifen, um das System skalierbar zu machen, z. B. die Antwortzeit nach Erreichen des Limits von 10.000 Benutzern zu verringern oder die RAM-Größe zu erhöhen, um den wachsenden Benutzerdaten Rechnung zu tragen.
Beim Testen der Last werden die entwickelten Anwendungen auf einmal maximal belastet, während beim Testen der Skalierbarkeit die Last über einen bestimmten Zeitraum schrittweise schrittweise erhöht wird.
Lasttests bestimmen den Punkt, an dem die Anwendung abstürzt, während die Skalierbarkeit versucht, den Grund für den Anwendungsabsturz zu ermitteln und Maßnahmen zur Behebung des Problems zu ergreifen.
Kurz gesagt, Lasttests helfen dabei, die Leistungsprobleme zu identifizieren, während Skalierbarkeitstests helfen, festzustellen, ob das System auf die wachsende Anzahl von Benutzern skaliert werden kann.
Attribute für Skalierbarkeitstests
Skalierbarkeitstestattribute definieren die Leistungsmaße, auf deren Grundlage dieser Test durchgeführt wird.
Im Folgenden sind einige der häufigsten Attribute aufgeführt:
1) Reaktionszeit:
- Antwortzeit ist die Zeit zwischen der Benutzeranforderung und der Anwendungsantwort. Diese Tests werden durchgeführt, um die Antwortzeit des Servers unter minimaler Last, Schwellenlast und maximaler Last zu identifizieren und den Punkt zu identifizieren, an dem die Anwendung brechen würde.
- Die Reaktionszeit kann sich aufgrund der unterschiedlichen Benutzerlast in der Anwendung erhöhen oder verringern. Im Idealfall würde sich die Antwortzeit einer Anwendung verringern, wenn die Benutzerlast weiter zunimmt.
- Eine Anwendung kann als skalierbar angesehen werden, wenn sie bei unterschiedlichen Benutzerlasten dieselbe Antwortzeit liefert.
- In Clusterumgebungen, in denen die Anwendungslast auf mehrere Serverkomponenten verteilt ist, muss beim Skalierbarkeitstest gemessen werden, inwieweit der Load Balancer die Last auf mehrere Server verteilt. Dadurch wird sichergestellt, dass ein Server nicht mit Anforderungen überlastet wird, während der andere Server im Leerlauf auf eine eingehende Anforderung wartet.
- Die Antwortzeit jeder Serverkomponente muss sorgfältig gemessen werden, wenn die Anwendung in einer Clusterumgebung gehostet wird, und Skalierbarkeitstests müssen sicherstellen, dass die Antwortzeit jeder Serverkomponente unabhängig von der Belastung jedes Servers gleich ist.
- Beispiel: Die Antwortzeit kann als die Zeit gemessen werden, zu der der Benutzer die URL in einem Webbrowser eingibt, bis zu der Zeit, bis die Webseite den Inhalt lädt. Je kürzer die Antwortzeit ist, desto höher ist die Leistung einer Anwendung.
2) Durchsatz:
- Der Durchsatz ist das Maß für eine Anzahl von Anforderungen, die von der Anwendung über eine Zeiteinheit verarbeitet wurden.
- Das Ergebnis des Durchsatzes kann von Anwendung zu Anwendung unterschiedlich sein. Wenn es sich um eine Webanwendung handelt, wird der Durchsatz anhand der Anzahl der pro Zeiteinheit verarbeiteten Benutzeranforderungen gemessen und wenn es sich um eine Datenbank handelt. Der Durchsatz wird anhand einer Anzahl von Abfragen gemessen, die in Zeiteinheiten verarbeitet werden.
- Eine Anwendung gilt als skalierbar, wenn sie den gleichen Durchsatz für unterschiedliche Belastungsniveaus der internen Anwendungen, Hardware und Datenbank liefern kann.
3) CPU-Auslastung:
- Die CPU-Auslastung ist ein Maß für die CPU-Auslastung zur Ausführung einer Aufgabe durch eine Anwendung. Die CPU-Auslastung wird normalerweise in MegaHertz gemessen.
- Je optimierter der Anwendungscode ist, desto geringer ist im Idealfall die beobachtete CPU-Auslastung.
- Um dies zu erreichen, verwenden viele Unternehmen Standardprogrammierpraktiken, um die CPU-Auslastung zu minimieren.
- Beispiel: Entfernen von totem Code in der Anwendung und Minimieren der Verwendung von Thread. Ruhemethoden sind eine der besten Programmiermethoden, um die CPU-Auslastung zu minimieren.
4) Speichernutzung:
- Die Speichernutzung ist ein Maß für den Speicher, der von einer Anwendung für die Ausführung einer Aufgabe benötigt wird.
- Im Idealfall wird der Speicher in Bytes (MegaBytes, GigaBytes oder Tera Bytes) gemessen, die die entwickelte Anwendung verwendet, um auf den Arbeitsspeicher (RAM) zuzugreifen.
- Die Speichernutzung einer Anwendung kann durch Befolgen der besten Programmiermethoden minimiert werden.
- Beispiele für bewährte Programmierpraktiken wären, keine redundanten Schleifen zu verwenden, die Treffer auf die Datenbank zu reduzieren, den Cache zu verwenden, die Verwendung von SQL-Abfragen zu optimieren usw. Eine Anwendung gilt als skalierbar, wenn sie die Nutzung des Speichers auf minimiert das maximal mögliche Ausmaß.
- Beispiel: Wenn der für eine bestimmte Anzahl von Benutzern verfügbare Speicherplatz nicht mehr über genügend Speicher verfügt, muss der Entwickler zusätzlichen Datenbankspeicher hinzufügen, um den Datenverlust auszugleichen.
5) Netzwerknutzung:
- Die Netzwerknutzung ist die Bandbreite, die von einer zu testenden Anwendung verbraucht wird.
- Ziel der Netzwerknutzung ist es, die Überlastung des Netzwerks zu verringern. Die Netzwerknutzung wird in Form von pro Sekunde empfangenen Bytes, pro Sekunde empfangenen Frames, pro Sekunde empfangenen und gesendeten Segmenten usw. gemessen.
- Programmiertechniken wie die Verwendung von Komprimierungstechniken können dazu beitragen, die Überlastung zu verringern und die Netzwerknutzung zu minimieren. Eine Anwendung gilt als skalierbar, wenn sie mit minimaler Netzwerküberlastung ausgeführt werden kann und eine hohe Anwendungsleistung bietet.
- Beispiel: Anstatt einem Warteschlangenmechanismus zum Verarbeiten der Benutzeranforderungen zu folgen, kann ein Entwickler den Code schreiben, um die Benutzeranforderungen zu verarbeiten, sobald die Anforderung in einer Datenbank eintrifft.
Abgesehen von diesen Parametern gibt es nur wenige andere weniger verwendete Parameter, wie z. B. Antwortzeit für Serveranforderungen, Ausführungszeit für Aufgaben, Transaktionszeit, Ladezeit der Webseite, Zeit zum Abrufen der Antwort aus der Datenbank, Neustartzeit, Druckzeit, Sitzungszeit, Bildschirmübergang , Transaktionen pro Sekunde, Treffer pro Sekunde, Anfragen pro Sekunde usw.
Die Attribute für Skalierbarkeitstests können von Anwendung zu Anwendung unterschiedlich sein, da das Leistungsmaß für Webanwendungen möglicherweise nicht mit dem einer Desktop- oder Client-Server-Anwendung übereinstimmt.
Schritte zum Testen der Skalierbarkeit einer Anwendung
Der Hauptvorteil dieser Tests für eine Anwendung besteht darin, das Benutzerverhalten bei Erreichen der maximalen Last und die Möglichkeiten zu deren Lösung zu verstehen.
Durch diese Tests können die Tester auch die serverseitige Verschlechterung und Antwortzeit in Bezug auf die Benutzerlast der Anwendung ermitteln. Infolgedessen wird dieser Test in mehreren Organisationen weltweit bevorzugt.
Im Folgenden finden Sie eine Liste der Schritte zum Testen der Skalierbarkeit einer Anwendung:
- Erstellen Sie wiederholbare Testszenarien für jedes der Skalierbarkeitstestattribute.
- Testen Sie die Anwendung auf unterschiedliche Lastniveaus wie niedrige, mittlere und hohe Lasten und überprüfen Sie das Verhalten einer Anwendung.
- Erstellen Sie eine Testumgebung, die stabil genug ist, um dem gesamten Testzyklus der Skalierbarkeit standzuhalten.
- Konfigurieren Sie die für diese Tests erforderliche Hardware.
- Definieren Sie eine Reihe virtueller Benutzer, um das Verhalten einer Anwendung bei unterschiedlicher Benutzerlast zu überprüfen.
- Wiederholen Sie die Testszenarien für mehrere Benutzer unter verschiedenen Bedingungen für interne Anwendungen, Hardware- und Datenbankänderungen.
- Überprüfen Sie in einer Clusterumgebung, ob der Load Balancer die Benutzeranforderungen an mehrere Server weiterleitet, um sicherzustellen, dass kein Server durch eine Reihe von Anforderungen überlastet wird.
- Führen Sie die Testszenarien in der Testumgebung aus.
- Analysieren Sie die generierten Berichte und überprüfen Sie gegebenenfalls die Verbesserungsbereiche.
Fazit
In einer Nussschale,
=> Skalierbarkeitstests sind nicht funktionale Testmethoden, mit denen überprüft werden kann, ob eine Anwendung auf die verschiedenen Attribute skaliert oder verkleinert werden kann. Die für diesen Test verwendeten Attribute variieren von Anwendung zu Anwendung.
=> Das Hauptziel dieses Tests besteht darin, festzustellen, wann sich eine Anwendung bei maximaler Belastung zu verschlechtern beginnt, und geeignete Schritte zu unternehmen, um sicherzustellen, dass die entwickelte Anwendung skalierbar genug ist, um den Änderungen in den internen Anwendungen, der Software, der Hardware und auch der Datenbank Rechnung zu tragen Änderungen in der Zukunft.
=> Wenn dieser Test ordnungsgemäß durchgeführt wird, können in den entwickelten Anwendungen schwerwiegende Fehler in Bezug auf die Leistung in Software, Hardware und Datenbank aufgedeckt werden.
=> Ein Hauptnachteil dieses Tests wäre die Einschränkung der Datenspeicherung mit Einschränkungen der Datenbankgröße und des Pufferplatzes. Die Einschränkungen der Netzwerkbandbreite können auch ein Hindernis für Skalierbarkeitstests sein.
=> Der Prozess des Skalierbarkeitstests unterscheidet sich von Organisation zu Organisation, da sich die Skalierbarkeitstestattribute einer Anwendung von den anderen Anwendungen unterscheiden.
Literatur-Empfehlungen
- Lasttests mit HP LoadRunner-Tutorials
- Leistungstests vs Lasttests vs Stresstests (Unterschied)
- Unterschied zwischen Desktop-, Client Server-Tests und Web-Tests
- Testen der Auslastung, Belastung und Leistung von Webanwendungen mit WAPT
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Testhandbuch für die Sicherheit von Webanwendungen
- Anwendungstests - Grundlagen des Softwaretests!
- Installieren Sie Ihre Anwendung auf dem Gerät und starten Sie den Test von Eclipse aus