Utilizando módulos do xk6 com k6
Marlo Henrique
Posted on July 5, 2023
O K6 é uma ferramenta que oferece uma série de módulos oficiais de alto desempenho. Esses módulos foram cuidadosamente analisados pela equipe responsável pelo desenvolvimento da ferramenta, garantindo sua qualidade e confiabilidade.
Esses módulos são frequentemente nativos do K6 e podem ser facilmente acessados usando importações como k6/http
e k6/data
, entre outros exemplos.
Nesse artigo veremos como podemos utilizar o xk6, ferramenta de linha de comando que permite adicionar módulos personalizados a ferramenta.
Entendendo o xk6📚
Até algumas versões atras, o K6 permitia o uso apenas de módulos oficiais nativos da ferramenta e também módulos JS remotos. No entanto, em certas situações, pode ser necessário utilizar um módulo JS não otimizado da biblioteca jslib.k6, o que pode resultar em alguns problemas graves, tais como:
- Falta de suporte para APIs do sistema em JavaScript.
- Quedas de desempenho devido ao tempo de execução do JavaScript.
Módulos oficiais superam as limitações acima, pois se beneficiam de excelente desempenho e da flexibilidade de usar bibliotecas do Go.
O xk6
é uma estrutura que possibilita a extensão do binário do K6, oferecendo oportunidades cruciais para ferramentas de código aberto, como:
- Permitir que a comunidade crie seus próprios módulos personalizados.
- Facilitação na contribuição da comunidade para o desenvolvimento de novos módulos.
Essa flexibilidade proporcionado pelo XK6, promove a colaboração e o crescimento contínuo do ecossistema do K6, permitindo que os usuários estendam e personalizem as funcionalidades da ferramenta.
Dois exemplos práticos de módulos que nasceram de iniciativas independentes e hoje fazem parte do código do K6 são os módulos k6/experimental/browser
e k6/experimental/websockets
.
Pré-requisitos📑
Instalando o XK6🔨
Primeiramente, vamos nos certificar que o Go está instalado corretamente. Em qualquer ferramenta de linha de comando de sua preferencia utilize o comando go version
para verificar a versão do Go instalada:
go version go1.19.5 windows/amd64
Esse tutorial será feito em maquina com sistema windows, utilizando o git bash.
Para adicionar o xk6 binário ao seu Go path, utilize o seguinte comando:
go install go.k6.io/xk6/cmd/xk6@latest
Caso você esteja enfrentando problemas relacionados à desativação de módulos pelo
GO111MODULE
, você pode resolver executando o seguinte comando:go env -w GO111MODULE=on
. Isso irá ativar os módulos Go e permitir o correto funcionamento do gerenciamento de dependências.
O comando acima instalará o binário xk6 em $GOPATH/bin
. É importante garantir que o GOPATH esteja configurado corretamente. Caso deseje configurar o GOPATH, você pode utilizar o seguinte comando ao iniciar o seu shell: export PATH=$(go env GOPATH)/bin:$PATH
.
Para obter mais informações sobre o GOPATH, consulte o seguinte material: gopath.
Utilizando o xk6😁
Com o xk6 instalado, temos duas oportunidades à nossa disposição: a criação de plugins personalizados para o K6 ou a utilização de plugins customizados desenvolvidos pela comunidade. Neste tutorial, seguiremos o segundo caminho e utilizaremos um plugin alternativo de dashboard de relatórios.
Para instalação do plugin xk6-dashboard podemos utilizar o seguinte comando:
xk6 build --with github.com/szkiba/xk6-dashboard@latest
Agora que o plugin está instalado, temos uma nova e poderosa opção para gerar relatórios.
vamos utilizar o seguinte script de exemplo para execução e visualização desse relatório:
import http from 'k6/http';
import { check } from 'k6';
export const options = {
vus: 5,
duration: '10s',
thresholds: {
http_req_failed: ['rate < 0.05'],
}
}
export default function(){
const BASE_URL = 'https://test-api.k6.io/public/crocodiles/';
const res = http.get(BASE_URL);
check(res, {
'status code 200': (r) => r.status === 200
});
}
Para construir e disponibilizar o dashboard utilizando o plugin xk6-dashboard em uma interface web, podemos utilizar o seguinte comando para execução:
k6 run --out dashboard=open test.js
Observe que estamos passando um flag de saída
--out
, informando que nossa métricas devem estar disponíveis no xk6-dashboard.
Em seguida, uma nova guia será aberta em seu navegador, permitindo que você acompanhe em tempo real uma série de indicadores da execução atual:
Conclusão💖
O xk6 permite que a comunidade contribua para o amadurecimento e crescimento do K6 com a disponibilização de novos módulos para a ferramenta.
Podemos ver que o xk6-dashboard nos proporciona uma outra visão de nossas métricas.
Outros módulos xk6 valem a pena serem estudados, entre eles:
Gostou do conteúdo e quer saber mais sobre testes de performance com K6? Então não deixe de conferir meu curso na Udemy:
Posted on July 5, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.