Siendo una realidad que confirma la importancia de evaluar la capacidad de adaptación y respuesta a situaciones adversas para que las aplicaciones sean sostenibles en el tiempo y, además, puedan generar experiencias satisfactorias para el usuario final.
Bajo el contexto anterior, es necesario conocer herramientas como k6 (Open Source) que nos permite realizar principalmente pruebas de carga de forma sencilla, así como también Performance Monitoring, para usarlas continuamente en ambientes productivos y obtener métricas en tiempo real.
Estas son algunas características destacables:
A continuación, enumerare las diferentes pruebas de carga que pueden realizarse con esta herramienta:
Un aspecto imprescindible para tener en cuenta antes de iniciar pruebas de rendimiento es investigar con usuarios que conozcan la funcionalidad, para así considerar referencias de su uso en un entorno real, y luego establecer objetivos y tipos de prueba a realizar para lograr los resultados esperados.
Con respecto a su instalación, esta herramienta cuenta con paquetes para Linux, Mac, Windows y alternativamente, contenedor Docker, encontrándose entre los más básicos:
- Windows
En caso de utilizar el gestor de paquetes Chocolatey, sepuede realizar la instalación del paquete no oficial:
choco install k6
- MacOS
brew install k6nhfgcd1
- Linux (Debian/Ubuntu)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keysC5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb 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
- Docker
docker pull loadimpact/k6
Para detalles más específicos de cada sistema operativo, puedes acceder al sitio web oficial de k6 haciendo clic acá.
Con respecto a su funcionamiento, k6 trabaja con usuarios virtuales (Vus) y scripts que como mínimo deben tener una función predeterminada, jugando un papel fundamental dos elementos: el código VU, el cual es el código interno que se correrá una y otra vez mientras se ejecuta la prueba, y el código de inicio, que se ejecutará sólo una vez por VU (ver imagen de ejemplo).
Entre algunas de sus librerías más comunes para iniciar a interactuar con k6 se encuentran las siguientes:
- import http from 'k6/http'
Módulo de peticiones http, permite poder consumir endpoints en sus diferentes métodos (POST, GET, PUT).
- import { check, sleep, group } from 'k6';
Sleep: Permite realizar pausas o lapsos de tiempo entre cada ejecución.
Group: Permite utilizar grupos de peticiones.
Check: Permite hacer afirmaciones sin detener la ejecución.
- import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
Permite escribir un archivo HTML que contiene una versión formateada y fácil de consumir de los datos de resumen de la prueba.
- import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
Permite personalizar completamente el resumen de fin de prueba.
En la segunda parte de este artículo podrás interiorizarte con el paso a paso de esta herramienta, que incluirá una guía para ejecutar las pruebas de carga. ¡No te lo pierdas!