Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
GAMEOPS05-BP01 Wählen Sie die richtige Phase, Architektur und das richtige Lasttesting-Framework, um Ihre Ziele zu erreichen
Die Vorgehensweise beim Auslastungstest eines Spiels kann stark variieren. Dies hängt von vielen Faktoren ab, darunter der Phase des Entwicklungsprozesses, in dem das Spiel durchgeführt wird, der Architektur des lastgenerierenden Systems selbst und der Wahl des Frameworks für Lasttests. Der Zeitpunkt, zu dem die Tests durchgeführt werden, sei es in den frühen Phasen, während iterativer Sprints, vor der Produktionsbereitstellung oder nach der Bereitstellung, bestimmt die Ziele und den Schwerpunkt der Testbemühungen. Verschiedene Designs der lastgenerierenden Infrastruktur haben ihre eigenen Vor- und Nachteile, und die Auswahl des Lasttesting-Frameworks hat großen Einfluss auf die Funktionen, die Benutzerfreundlichkeit und die Integrationen, die für den Testprozess zur Verfügung stehen. Durch die sorgfältige Abstimmung dieser Elemente können Entwicklungsteams den Lasttestansatz an die einzigartigen Eigenschaften des Spiels anpassen, die wertvollsten Erkenntnisse zur Leistung gewinnen und ihren Spielern ein reibungsloses Spielerlebnis bieten.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch
Implementierungsleitfaden
Belastungstests in verschiedenen Entwicklungsphasen
Durch die Durchführung von explorativen Lasttests zu Beginn der Entwicklungsphasen kann die zugrunde liegende Systemarchitektur validiert werden. Dies hilft Entwicklern, fundierte Entscheidungen über die Infrastruktur, das Datenbankdesign und die Netzwerktopologie des Spiels zu treffen, bevor umfangreiche Implementierungsarbeiten durchgeführt werden. Belastungstests identifizieren Risiken und schaffen eine Leistungsbasis, wodurch der Bedarf an kostspieligen Nacharbeiten und technischen Schulden zu einem späteren Zeitpunkt im Entwicklungszyklus potenziell minimiert wird. Sie können auch ein gemeinsames Verständnis der Leistungsanforderungen des Spiels innerhalb des Teams fördern, was zu einer besseren Zusammenarbeit und Entscheidungsfindung führt. Letztlich bilden Belastungstests in den Anfangsphasen eine solide Grundlage für ein leistungsstarkes, skalierbares und robustes Spiel und tragen so dazu bei, das Spielerlebnis insgesamt zu verbessern.
Am Ende jedes Sprints oder jeder Iteration können Lasttests die Auswirkungen der neuen Funktionen, Bugfixes und anderer Änderungen, die im letzten Zyklus eingeführt wurden, auf die Leistung bewerten. Dieser gezielte Ansatz ermöglicht es Entwicklungsteams, Regressionen oder Leistungseinbußen, die durch die neuesten Updates verursacht wurden, schnell zu erkennen, sodass sie diese Probleme beheben können, bevor sie sich weiter in der Pipeline ausbreiten, und ein konsistentes Qualitäts- und Leistungsniveau aufrechterhalten.
Vor der Bereitstellung in der Produktion unterstützen robuste Lasttests die Teams dabei, zu überprüfen, ob das System in der Lage ist, die erwarteten realen Verkehrs- und Lastbedingungen zu bewältigen. Sie können Skalierbarkeitsengpässe oder Ressourcenengpässe innerhalb der Produktionsinfrastruktur aufdecken und bieten die Möglichkeit, die Leistung des Spiels zu optimieren, sodass vom ersten Tag an ein reibungsloses und reaktionsschnelles Benutzererlebnis gewährleistet ist. Die Erkenntnisse aus den Belastungstests vor der Veröffentlichung können die Risiken am Tag der Veröffentlichung minimieren und als Grundlage für die laufende Kapazitätsplanung dienen, die den Grundstein für die langfristige Nachhaltigkeit und Skalierbarkeit des Spiels legt.
Durch Auslastungstests eines Spiels, das sich bereits in der Produktion befindet, können Teams die Leistung des Spiels überwachen und Leistungsrückgänge oder -verschlechterungen erkennen, die im Laufe der Zeit auftreten können. Auf diese Weise können sie Probleme proaktiv angehen, bevor sie sich auf das Spielerlebnis und die Nutzerbindung negativ auswirken. Darüber hinaus validieren Belastungstests in der Produktion die Wirksamkeit der implementierten Maßnahmen zur Leistungsoptimierung oder zur Skalierung der Infrastruktur. Dieser Prozess bietet Spielern ein qualitativ hochwertiges, responsives und skalierbares Spielerlebnis, auch wenn sich das Spiel weiterentwickelt und reift.
Architekturen, die Lasten erzeugen
Das Design der lastgenerierenden Architektur für Spiellasttests kann verschiedene Formen annehmen, von denen jede ihre eigenen Vorteile und Überlegungen mit sich bringt.
Auf der einfachsten Ebene können selbstverwaltete EC2Amazon-Instances
Für einen skalierbareren und orchestrierteren Ansatz können Sie Amazon EKS
Alternativ AWS Fargate
Sie können je nach Ihren Anforderungen und Zielen auch AWS Lambda
Studios, die eine vorgefertigte Lösung verwenden möchten, können Distributed Load Testing auf verwenden. AWS Diese Lösung nutzt Amazon AWS Fargate ECS für die Bereitstellung von Containern, mit denen Simulationen von Zehntausenden verbundenen Benutzern ausgeführt werden können. Sie können dies verwenden, um Ihre Lasttestinfrastruktur schnell auf IAC-Art zu starten. AWS CloudFormation
Frameworks für Lasttests
Keine zwei Lasttest-Frameworks sind gleich aufgebaut. Einige verfügen über intuitive grafische Benutzeroberflächen für die Testerstellung, während andere vollständig auf der Befehlszeile basieren. Ein Tool kann flexibel und leistungsstark sein, erfordert jedoch Zeit und Mühe für die Konfiguration und Verwaltung, und ein anderes ist möglicherweise serverlos, aber in Bezug auf die Tests, die es erstellen und ausführen kann, eingeschränkt. Einige verfügen über große Communitys und zahlreiche Tutorials, obwohl sie sich in der Praxis noch nicht bewährt haben, was einen starken Kontrast zu anderen darstellt, die zwar in der Produktion erprobt sind, denen es jedoch an Unterstützung oder Dokumentation durch die Community mangelt. Wählen Sie das Framework, das die richtige Balance für Sie und Ihr Team bietet. Einige beliebte Optionen sind:
-
Apache JMeter
: Beliebtes Java-basiertes Open-Source-Framework für Lasttests aufgrund seines robusten Funktionsumfangs und seiner Benutzerfreundlichkeit. Die Fähigkeit, komplexe Benutzerszenarien zu simulieren, die breite Palette unterstützter Protokolle, die umfassende Berichterstattung und die nachgewiesene Erfolgsbilanz machen es zu JMeter einer zuverlässigen Wahl für Lasttests. -
Locust
: Modernes, verteiltes Lasttesting-Framework, das auf einer ereignisgesteuerten Architektur basiert, wodurch es leistungsstark und gleichzeitig ressourceneffizient ist. Tests sind in Python geschrieben, was flexible Testszenarien ermöglicht, die Tausende von leistungsstarken Bibliotheken von Drittanbietern nutzen und gleichzeitig benutzerfreundlich und einfach zu lesen sind. -
Grafana K6
: Leistungsstarkes Lasttest-Framework, das Benutzerfreundlichkeit mit erweiterten Funktionen kombiniert. Die Unterstützung für die Generierung verteilter Lasten, das flexible Scripting und die nahtlose Integration mit Grafana zur Datenvisualisierung machen Grafana K6 zu einer attraktiven Wahl. -
Gatling
: Open-Source-Framework für Lasttests, das für seine Leistung und Skalierbarkeit bekannt ist. Die auf Scala basierende, domänenspezifische Sprache (DSL) ermöglicht es Entwicklern, präzise, wartungsfreundliche Lasttestskripte zu erstellen, und die robusten Berichts- und Analysefunktionen bieten detaillierte Einblicke in das zu testende System.
Implementierungsschritte
-
Belastungstestphasen: Führen Sie Lasttests in verschiedenen Entwicklungsphasen durch (frühe Entwicklung, Sprints, Vorproduktion und nach der Bereitstellung), um die Systemleistung zu überprüfen und Probleme zu identifizieren.
-
Lastgenerierende Architekturen: Wählen Sie geeignete lastgenerierende Architekturen (EKSEC2, Fargate oder Lambda) auf der Grundlage von Skalierbarkeitsanforderungen, Managementpräferenzen und spezifischen Testanforderungen aus.
-
Lasttesting-Frameworks: Wählen Sie ein Lasttesting-Framework (wie JMeter Locust, Grafana K6 oder Gatling), das Benutzerfreundlichkeit, Leistung, Flexibilität und Community-Support in Einklang bringt, um den Bedürfnissen Ihres Teams gerecht zu werden.