Últimas entradas

k6 para pruebas de carga

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

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *