k6 es una herramienta de prueba de carga de código abierto que hace que las pruebas de rendimiento sean fáciles y productivas para los equipos de ingeniería. k6 es open source, centrado en el desarrollador y extensible.
Puede probar la confiabilidad y el rendimiento de sus sistemas y detectar regresiones y problemas de rendimiento antes. k6 lo ayudará a crear aplicaciones resilientes y de alto rendimiento que escalan.
Características
- Es una herramienta de terminal
- Usa Javascript ES2015/ES6
- Se enfoca en el uso de chequeos y umbrales
Casos de uso
k6 es principalmente usado por desarrolladores, ingenieros de control de calidad, DevOps y SRE para hacer pruebas de rendimiento y fiabilidad de APIs y microservicios.
- Pruebas de cargas como: Picos, Estrés y remojo.
- Pruebas continuas para medir rendimiento y monitoreo
- Simulación de trafico para experimientos
Esta escrito en Golang, Javascript no es el mas eficiente para crear una herramienta para medir rendimiento.
Se puede importar módulos de NPM y empacarlos con Webpack.
No corre un navegador nativo, por tanto, no renderiza las paginas de la misma manera, se puede utilizar xk6-browser para interactuar con navegadores reales y colectar información y métricas de frontend.
Instalación
k6 tiene paquetes para Linux, Mac y Windows. Alternativamente, puede usar un contenedor Docker o un binario independiente.
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
Demo
Crearemos un archivo de nombre script.js e incluiremos el siguiente codigo
import http from 'k6/http';
import { sleep } from 'k6';
export default function () {
http.get('https://test.k6.io');
sleep(1);
}
Ejecutaremos nuestro script
k6 run script.js
El resultado nos devolverá métricas que nos permitirá analizar nuestra web, api o microservicio.
Podemos aumentar la duración de la prueba, o también el número de solicitudes a medida que se vaya ejecutando el test.
k6 run --vus 10 --duration 30s script.js
Ejecución de una prueba de carga de 10 VU de 30 segundos
k6 funciona con el concepto de usuarios virtuales (VU), que ejecutan sus scripts de prueba. Las VU son esencialmente bucles while (verdaderos) paralelos. Los scripts están escritos en JavaScript, como módulos ES6, por lo que puede dividir pruebas más grandes en piezas más pequeñas o hacer piezas reutilizables como desee.
Fuente: https://github.com/grafana/k6