Ejecutando los tests localmente
Primeramente vamos a comenzar corriendo el script de manera local. Copie el siguiente código, pégalo en tu editor favorito y luego guarda el script como: "script.js":
Luego ejecute el archivo K6 usando el siguiente comando:
Agregando más usuarios virtuales (VUs)
Ahora vamos a ejecutar una prueba de carga con más de un usuario y una duración mayor:
Ejecutando una prueba de carga de 10 usuarios en 30 segundos
k6 funciona usando el concepto de usuarios virtuales (VUs), los cuales ejecutan los scripts en paralelo mientras que sea verdadero while(true). Los scripts son desarrollados usando JavaScript, como módulos ES6, lo cual permite separar pruebas grandes en pequeñas porciones de prueba, o reutilizar estas porciones de prueba.
Los scripts deben contener al menos una función predeterminada, que defina los puntos de entrada para los VUs, similar a la función main() de otros lenguajes:
El contexto de inicio y la función predeterminada
Nos podemos preguntar, ¿Por qué no ejecutar mi script normalmente, desde el inicio hasta el final? La respuesta es: Sí, se puede hacer, pero el código dentro y fuera de la función predeterminada puede hacer cosas diferentes. El código predeterminado de adentro es llamado “VU Code”, y se ejecuta una y otra vez mientras el test está ejecutándose. El código de afuera es comúnmente llamado “init Code” y se ejecuta una vez por VU.
El “VU Code” puede hacer peticiones HTTP, proveer métricas, y generalmente hace todo lo que se espera en una prueba de carga, no puede cargar nada desde su sistema de archivos local ni importar ningún otro módulo. Todo esto debe hacerse desde el “init Code”. Lea más acerca de diferentes etapas del ciclo de vida de una prueba k6
Usando las opciones
Si quiere evitar escribir --vus 10 y --duration 30s todo el tiempo, también puede incluir estas configuraciones dentro de su archivo JavaScript.
Luego solo ejecute el script con esos parámetros por línea de comando.
Escenarios: Periodo de subida/bajada de los VUs
Además puede tener el nivel de periodo de subida (ramp up) y de bajada (ramp down) de los VU durante la prueba. La propiedad options.stages te permite configurar el comportamiento de los periodos de subida y bajada.
Esto también se puede lograr con una configuración más avanzada utilizando escenarios y el ejecutor ramping-vus.
Ejecutando las pruebas en la nube
k6 soporta tres modelos de ejecución para ejecutar los tests:
- Local: En tu máquina local o en un servidor de Integración continua (CI server)
- Cloud: En la infraestructura de la nube administrada por K6 Cloud
- Clustered: En más de una máquina administrada por usted. No está soportado aun.
Uno de los objetivos de K6 es permitir la ejecución de las pruebas en tres modelos de ejecución sin hacer modificaciones en el script . Para ejecutar las pruebas en la nube desde la interfaz de línea de comando (CLI), debe primero crear una cuenta en K6 Cloud e iniciar sesión con su cuenta usando CLI. Luego debe pasar su script al comando k6 cloud.
Para instrucciones más detalladas y otras opciones, puede encontrar más información en ejecución de pruebas en la nube desde CLI.