DEV Community

Cover image for Utilizando módulos do xk6 com k6
Marlo Henrique
Marlo Henrique

Posted on • Updated on

Utilizando módulos do xk6 com k6

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
    });
}

Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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:

Image description

Image description

Image description

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:

Top comments (0)