Utilizando o K6 para testes de performance de ambientes

Utilizando o K6 para testes de performance de ambientes
Aprenda como utilizar o K6 para testes de performance

Testes de carga com K6, alternativa open source ao JMeter

O K6 é uma ferramenta de teste de performance que também possui uma versão open source bem eficiente.

O Grafana K6 é uma ferramenta open source para testes de carga que possibilita diversos cenários de teste para times de engenharia. Com a ferramenta é possível testar a performance de sistemas, websites e apis de forma efetiva em testes de regressão.

Algumas funcionalidades

  • CLI para que desenvolvedores possam explorar sua API de testes;
  • Baseado em Javascript ES6;
  • Criação de automações de teste com uma interface user friendly

Como instalar ?

O K6 pode ser baixado via APT ( distros Linux baseadas em Debian ), Brew ( MacOS ) ou para Windows pode ser baixado via Cholocatei ou PowerShell.

Exemplos de utilização

Um exemplo bem simples de utilização pode ser escrito em alguma linha de código. Abaixo tempos um código em JS que básicamente importa o http e o sleep do k6 e faz um get na url do Google com um sleep de 1 segundo a cada request.

import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('https://www.google.com');
  sleep(1);
}

Para executar abra o seu console e digite o comando

k6 run --vus 10 --duration 30s script.js

No comando acima estão considerando uma quantidade de 10 virtual users que irão fazer uma requisição a url do Google a cada 30 segundos.

Um exemplo de script mais completo

import http from 'k6/http';
import { check } from 'k6';

export let options = {
  vus: 100, // Number of virtual users (VUs)
  duration: '25m', // Duration of the test in seconds
};

export default function () {
  // Make a GET request to the specified URL
  const res = http.get('https://www.google.com');

  // Check if the response status code is 200
  check(res, {
    'status is 200': (r) => r.status === 200,
  });

  // Log the response status code
  console.log(`Response status code: ${res.status}`);
}

Mais informações no link abaixo

Running k6
Follow along to learn how to run a test, add virtual users, increase the test duration, and ramp the number of requests up and down as the test runs.