Antes de comenzar, te recordamos que este artículo tiene una primera parte, te invitamos a revisarlo e interiorizarte en el paso a paso de esta herramienta, que incluirá una guía para ejecutar las pruebas de carga. ¡No te lo pierdas!
En los primeros pasos en k6
Utilizaremos una API de prueba conocida como PlaceHolder. Esta aplicación cuenta con diferentes métodos disponibles para interactuar y los detalles pueden ser vistos accediendo a su enlace oficial: https://jsonplaceholder.typicode.com/
Una vez instalada la herramienta, iniciamos importando las librerías que estaremos utilizando en nuestro script:
Especificadas las librerías, procedemos a definir la función predeterminada, la URL a la cual le haremos la petición y los parámetros a enviar en el body y en el header siempre que sea necesario.
Para exportar los resultados obtenidos existen diferentes medios, en nuestro ejemplo, inicialmente mostraremos mediante consola el estatus y el cuerpo de la respuesta (4.1) y adicionalmente, exportaremos las métricas en un reporte HTML para mejor apreciación y poder inclusive guardar un histórico (4.2).
Previo a la ejecución del script configuramos un JSON mediante la variable OPTIONS con el comportamiento de la prueba, el cual también luego podemos variar, en este ejemplo, estaremos realizando una prueba de carga, simulando un nivel conocido en cuanto a etapas de tiempo y usuarios concurrentes, con el objetivo de identificar puntos de quiebre, pero teniendo en cuenta que estos criterios si debieran ser soportables.
Las dos primeras etapas son iguales, no obstante, buscan validar que el sistema siempre va a responder de la misma forma ante un mismo tiempo y cantidad de usuarios, a diferencia de la tercera etapa que es el mismo tiempo, pero aumenta la cantidad de usuarios y por último descenderá hasta 0 una vez transcurran los últimos 30 segundos.
Una vez terminado nuestro script, accedemos mediante consola a la ruta donde se encuentra y lo ejecutamos mediante el siguiente comando:
Terminada la ejecución, visualizamos los resultados en consola de la siguiente forma:
Información general de la prueba ejecutada
Data received: cantidad total de data recibida.
Data_sent: cantidad total de data enviada.
Execution: corresponde al medio de la ejecución.
Script: corresponde al script que se ejecutó.
Scenarios: donde se representa el escenario de la prueba, la cantidad de iteraciones, la cantidad de usuarios virtuales (VU), con cuánto inicio y cuánto fue el máximo, que en este caso como no fueron configurados toma 1 por defecto.
Barra de progreso: muestra el progreso de la ejecución.
Métricas: diferentes métricas asociadas al tiempo y conexión de la petición, destacándose http_req_duration qué para este ejemplo se sitúa en un rango similar porque solo se ejecutó una vez la prueba, para ver más detalle sobre estas métricas acceder al siguiente enlace: https://k6.io/docs/es/usando-k6/thresholds/
Iterations: el tiempo que se demoró en responder.
Vus/Vus_max: la cantidad de usuario y la cantidad máxima de usuarios concurrentes que hubo.
Reportes generados
Otro medio de almacenar las métricas obtenidas es en un formato JSON lo cual se logra colocando –summary-export=resultados.json luego de “k6 run” ydelante del nombre del SCRIPT, ver ejemplo:
El reporte de las métricas en formato HTML y en formato JSON se podrán encontrar en la misma ruta donde se encuentra el script de k6 ejecutado.