Este proyecto es una API sencilla creada con Node.js, Express y MongoDB para generar datos aleatorios, diseñada específicamente para pruebas de rendimiento con K6. El entorno de ejecución se ha configurado con Docker y Docker Compose, asegurando una implementación fácil y reproducible.
- Generación de datos aleatorios para usuarios (nombre, correo electrónico y edad).
- Pruebas de rendimiento como carga, estrés, picos y más, utilizando K6.
- Integración sencilla y despliegue a través de Docker.
Este proyecto forma parte de la iniciativa QAPacker, una plataforma educativa diseñada para enseñar herramientas de pruebas modernas como K6. Con QAPacker, puedes:
- Aprender los conceptos básicos y avanzados de K6.
- Ejecutar pruebas de rendimiento en entornos controlados y reales.
- Analizar resultados de pruebas con retroalimentación inmediata.
- Explorar estrategias avanzadas como pruebas de estrés, carga y estabilidad prolongada.
Aprovecha esta plataforma como un recurso integral para mejorar tus habilidades en pruebas de rendimiento.
- Tener instalado Docker y Docker Compose.
- Tener instalado K6 para ejecutar las pruebas de rendimiento.
- tener instalado node verifica los node_modules
- tener instalado dotenv para reconocer variables de entorno
Dockerfile: Configuración del contenedor de la aplicación.docker-compose.yml: Orquestación para la aplicación y base de datos.index.js: Archivo principal de la API.tests/: Carpeta con los scripts de prueba de rendimiento para K6.
Para iniciar la API con Docker, utiliza el siguiente comando:
docker-compose upEsto levantará la aplicación en un contenedor, lista para recibir solicitudes.
A continuación, se describen los diferentes tipos de pruebas que puedes realizar con K6.
Ejecuta una prueba básica para comprobar la funcionalidad de la API:
k6 run tests/simple-test.jsSimula una carga de trabajo creciente para probar los límites de la API:
k6 run tests/stress-test.jsSimula una cantidad fija de usuarios concurrentes para verificar la estabilidad bajo carga sostenida:
k6 run tests/load-test.jsSimula un aumento repentino de la carga para medir la reacción de la API:
k6 run tests/spike-test.jsEjecuta una prueba prolongada para detectar problemas relacionados con la estabilidad o fugas de memoria:
k6 run tests/soak-test.jsLa API genera datos de usuarios en el siguiente formato:
[
{
"name": "User0",
"email": "user0@example.com",
"age": 25
},
{
"name": "User1",
"email": "user1@example.com",
"age": 34
}
]Cada solicitud puede generar una cantidad configurable de usuarios.
- Modifica el archivo
index.jspara ajustar la lógica de generación de datos. - Crea nuevos scripts de prueba en la carpeta
tests/para necesidades específicas. - Configura parámetros adicionales en
docker-compose.ymlpara personalizar el entorno según tus requisitos.
Este proyecto fue desarrollado como un recurso educativo para pruebas de rendimiento, en colaboración con la plataforma interactiva QAPacker. Explora QAPacker para profundizar tus conocimientos y dominar el uso de K6 en entornos modernos.