Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
GAMEOPS05-BP01 Elija el escenario, la arquitectura y el marco de pruebas de carga adecuados para cumplir sus objetivos
El enfoque de las pruebas de carga de un juego puede variar considerablemente en función de muchos factores, como la fase del proceso de desarrollo en la que se lleve a cabo, la arquitectura del propio sistema generador de carga y la elección del marco de pruebas de carga. El momento en que se lleve a cabo, ya sea en las fases iniciales, durante los sprints iterativos, antes de la implementación en producción o después de la implementación, determinará los objetivos y el enfoque de las pruebas. Los diferentes diseños de infraestructura generadora de carga tienen sus propias ventajas y desventajas, y la selección del marco de pruebas de carga influye en gran medida en las capacidades, la facilidad de uso y las integraciones disponibles para el proceso de prueba. Al alinear cuidadosamente estos elementos, los equipos de desarrollo pueden adaptar el enfoque de las pruebas de carga a las características únicas del juego, extraer la información más valiosa sobre el rendimiento y ofrecer una experiencia fluida a sus jugadores.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto
Guía para la implementación
Pruebas de carga en diferentes etapas de desarrollo
La realización de pruebas de carga exploratorias al principio de las fases de desarrollo puede validar la arquitectura del sistema subyacente. Esto ayuda a los desarrolladores a tomar decisiones informadas sobre la infraestructura del juego, el diseño de la base de datos y la topología de la red antes de realizar un extenso trabajo de implementación. Las pruebas de carga identifican los riesgos y crean una base de rendimiento, lo que podría minimizar la necesidad de costosas modificaciones y la deuda técnica más adelante en el ciclo de vida del desarrollo. También pueden fomentar una comprensión compartida de los requisitos de rendimiento del juego entre el equipo, lo que se traduce en una mejor colaboración y toma de decisiones. En última instancia, las pruebas de carga durante las fases iniciales sientan una base sólida para un juego de alto rendimiento, escalable y resistente, lo que ayuda a mejorar la experiencia general del jugador.
Al final de cada sprint o iteración, las pruebas de carga permiten evaluar el impacto en el rendimiento de las nuevas funciones, las correcciones de errores y otros cambios introducidos en el último ciclo. Este enfoque específico permite a los equipos de desarrollo identificar rápidamente las regresiones o degradaciones del rendimiento introducidas por las últimas actualizaciones, lo que les permite abordar estos problemas antes de que se propaguen más adelante y mantener un nivel constante de calidad y rendimiento.
Antes de pasar a la fase de producción, las rigurosas pruebas de carga ayudan a los equipos a validar la capacidad del sistema para hacer frente a las condiciones de tráfico y carga previstas en el mundo real. Pueden detectar los problemas de escalabilidad o las limitaciones de recursos en la infraestructura de producción y ofrecen la oportunidad de optimizar el rendimiento del juego, creando una experiencia de usuario fluida y con gran capacidad de respuesta desde el primer día. La información obtenida a partir de las pruebas de carga previas al lanzamiento puede mitigar los riesgos del día del lanzamiento y servir de base para la planificación continua de la capacidad, lo que sienta las bases para la sostenibilidad y la escalabilidad a largo plazo del juego.
Las pruebas de carga de un juego que ya está en fase de producción permiten a los equipos supervisar el rendimiento del juego e identificar las regresiones o degradaciones del rendimiento que puedan producirse con el paso del tiempo. Esto les permite abordar los problemas de forma proactiva antes de que afecten a la experiencia del jugador y afecten negativamente a la retención de los usuarios. Además, las pruebas de carga en la producción validan la eficacia de los esfuerzos de optimización del rendimiento o el escalado de la infraestructura que se han implementado. Este proceso proporciona a los jugadores una experiencia de juego de alta calidad, con capacidad de respuesta y escalable, incluso a medida que el juego evoluciona y madura.
Arquitecturas generadoras de carga
El diseño de la arquitectura generadora de carga para las pruebas de carga de los juegos puede adoptar diversas formas, cada una con su propio conjunto de ventajas y consideraciones.
En el nivel más básico, las EC2 instancias de Amazon
Para un enfoque más escalable y organizado, puede utilizar los clústeres de Kubernetes de Amazon EKS
Como alternativa, la naturaleza sin servidor AWS Fargate
También puede utilizar AWS Lambda
Los estudios que deseen utilizar una solución prediseñada pueden utilizar Distributed Load Testing on. AWS Esta solución utiliza Amazon ECS AWS Fargate para implementar contenedores que pueden ejecutar simulaciones de decenas de miles de usuarios conectados. Puede usarlo para iniciar rápidamente su infraestructura de pruebas de carga al estilo IAC utilizando AWS CloudFormation.
Marcos de pruebas de carga
No hay dos marcos de pruebas de carga creados de la misma manera. Algunos tienen interfaces gráficas intuitivas para la creación de pruebas, mientras que otros se basan completamente en la línea de comandos. Una herramienta puede ser flexible y eficaz, pero su configuración y administración requieren tiempo y esfuerzo, y otra puede no tener servidor pero tener limitaciones en cuanto a las pruebas que puede crear y ejecutar. Algunas disfrutan de grandes comunidades y de abundantes tutoriales, y no están probadas sobre el terreno, lo que contrasta marcadamente con otras, que pueden haber sido sometidas a duras pruebas en producción, pero que carecen del apoyo o la documentación de la comunidad. Elige el marco que logre el equilibrio adecuado para ti y tu equipo. Algunas de las opciones más populares son:
-
Apache JMeter
: popular marco de pruebas de carga de código abierto y basado en Java debido a su sólido conjunto de funciones y a su facilidad de uso. Su capacidad para simular escenarios de usuario complejos, su amplia gama de protocolos compatibles, sus informes exhaustivos y su historial comprobado lo convierten en JMeter una opción fiable para las pruebas de carga. -
Locust
: marco de pruebas de carga moderno y distribuido basado en una arquitectura basada en eventos, lo que lo hace eficiente y, al mismo tiempo, ahorra recursos. Las pruebas están escritas en Python, lo que permite escenarios de prueba flexibles que aprovechan miles de potentes bibliotecas de terceros, sin dejar de ser fáciles de leer y fáciles de leer. -
Grafana K6
: potente marco de pruebas de carga que combina la facilidad de uso con capacidades avanzadas. Su soporte para la generación de carga distribuida, la creación de scripts flexible y la perfecta integración con Grafana para la visualización de datos hacen de Grafana K6 una opción atractiva. -
Gatling
: marco de pruebas de carga de código abierto conocido por su rendimiento y escalabilidad. Su lenguaje de dominio específico (DSL) basado en Scala permite a los desarrolladores crear scripts de pruebas de carga concisos y fáciles de mantener, y sus sólidas capacidades de generación de informes y análisis proporcionan información detallada del sistema que se está probando.
Pasos para la implementación
-
Etapas de las pruebas de carga: realice pruebas de carga en varias etapas de desarrollo (desarrollo inicial, sprints, preproducción y posterior a la implementación) para validar el rendimiento del sistema e identificar los problemas.
-
Arquitecturas generadoras de carga: elija las arquitecturas generadoras de carga adecuadas (EC2EKS, Fargate o Lambda) en función de las necesidades de escalabilidad, las preferencias de administración y los requisitos de prueba específicos.
-
Marcos de pruebas de carga: seleccione un marco de pruebas de carga (como JMeter Locust, Grafana K6 o Gatling) que equilibre la facilidad de uso, el rendimiento, la flexibilidad y el apoyo de la comunidad para adaptarse a las necesidades de su equipo.