Utilizando o K6 para testes de performance de ambientes
![Utilizando o K6 para testes de performance de ambientes](/content/images/size/w1200/2022/10/jaccon--2022-07-14-at-22.42.06.jpg)
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
![](https://k6.io/images/k6-cover-image.png)