QA

Introducción a k6 - Parte 1

Publicado por
Natalia Andujar
Introducción a k6 - Parte 1
Escrito por
Natalia Andujar
Publicado en
March 10, 2023
Tiempo de lectura
Categoría
QA

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.

¿Qué es k6 y cuáles son sus características?

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:

  • Herramienta CLI: puede ser ejecutada por medio de consola de comandos.
  • Amigable para todo el equipo: desarrolladores, especialistas en QA, DevOps, etc.
  • Orientado a Scripting en JavaScript.
  • Flexible en uso de librerías, soporte a módulos locales y remotos.
  • Permite utilizar el mínimo de recursos en el sistema.
  • Permite configurar criterios de aceptación basados en tiempos de respuesta y envío de datos por medio de Checks y Thresholds.  
  • Permite configuración para CI/CD (Azure Pipelines, GitHub Actions, Gitlab, Jenkins, entre otros).

¿Casos de uso de k6?

A continuación, enumerare las diferentes pruebas de carga que pueden realizarse con esta herramienta:

Fuente: página oficial de K6.

  • Smoke Testing: Permite comprobar que la aplicación puede manejar una carga mínima sin interrupciones en su operación básica.
  • Load Test: Permite comprobar el rendimiento de la aplicación bajo una carga normal, es decir, mantenerse dentro de un rango de tráfico considerado como habitual, medio o concurrente.  
  • Stress Test: Permite comprobar la disponibilidad y estabilidad de la aplicación bajo un tráfico cargado, es decir por encima de la media, bajo condiciones extremas, pero de manera gradual, como suele ocurrir en días festivos como Black Friday, Navidad o CyberDay.
  • Spike Test: Permite comprobar la disponibilidad y estabilidad de la aplicación bajo un tráfico similar al Stress Test, con la diferencia de que no se aumenta la carga de forma gradual, sino que, de manera repentina en un período de tiempo rápido, como suele ocurrir en días de ofertas fast.
  • Soak Test: Permite comprobar la disponibilidad y estabilidad de la aplicación sometida a carga exhaustiva por un período prolongado de tiempo, además de validar que, en consecuencia, no haya pérdidas derivadas.

Contexto y establecimiento de objetivos

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.

Disponibilidad para instalación

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á.

Funcionamiento general

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).

Fuente: imagencreada por autor del artículo Natalia Andujar.

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!

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Descarga nuestro Clever UI KIT 👇

Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Por rellenar el formulario
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Por rellenar el formulario
¡Ups! Algo salió mal al enviar el formulario.

Crea tu propio manual de marca con esta plantilla gratuita.
¡Organiza tus activos de diseño de forma más eficiente!

Comienza a testear el rendimiento

de tus aplicaciones hoy.