QA

Introducción a k6 Parte 2

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

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.

Fuente: imagen creada por autor del artículo Natalia Andujar.

Ejecución de la prueba

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:

Fuente: resultados sin incluir la impresión por consola del response y estatus, imagen creada por Natalia Andujar.
Fuente: resultados incluyendo impresión por consola del response y estatus, imagen creada por Natalia Andujar.

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” y delante 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.

Ejemplo del reporte en formato HTML:

Ejemplo del reporte en formato JSON:

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.