Overview
Realizar pruebas de carga consiste en simular las solicitudes que los usuarios realizarán en tu aplicación una vez que esté en producción. El objetivo es medir el rendimiento e identificar y resolver problemas antes de que le ocurran a un usuario real.
Estrategia recomendada
Usa el SDK de Node.js para simular la carga de trabajo de un usuario común en tu aplicación móvil. Por ejemplo, puedes usar el SDK para:
Abra un número determinado de reinos sincronizados.
Realizar una cierta cantidad de escrituras en los reinos sincronizados.
Simular llamadas al servidor backend (por ejemplo, llamando a funciones Atlas).
Los detalles exactos de la simulación dependen de la carga de trabajo real de tu aplicación. Por ejemplo, podrías abrir dominios que ya tengan datos de sincronización inicializados en el servidor para simular casos de uso de lectura. Podrías abrir diferentes dominios para simular cargas de trabajo de escritura. Estos dominios podrían ser una combinación de dominios compartidos o privados por usuario, según tu caso de uso. Puedes usar un dominio compartido para probar la velocidad de resolución de conflictos y detectar cualquier problema. Por lo tanto, considera cómo usas la base de datos de dominios en tu aplicación real para diseñar tu simulación.
Nota
El SDK de Node.js utiliza la misma base de datos C++ subyacente y el mismo cliente de sincronización que los SDK para dispositivos móviles (iOS, Android, .NET, etc.). Por lo tanto, puede ejecutar las mismas rutas de código que en su aplicación móvil de producción, a la vez que se beneficia del entorno de servidor headless de Node.js.
Luego, puede implementar la simulación de usuario único en cientos o miles de nodos simultáneos para probar una carga de trabajo multiusuario real. Por ejemplo:
Empaqueta la aplicación en un contenedor Docker.
Implemente el contenedor como parte de un trabajo de Kubernetes.
Ajuste los parámetros del trabajo para que coincidan con una carga de trabajo de producción real.
Mide el tiempo que tarda en completarse la tarea de Kubernetes para calcular el rendimiento general.
Hay una variedad de ofertas de Kubernetes como servicio basadas en la nube que puedes utilizar.