DEV Community

Marlo Henrique
Marlo Henrique

Posted on

2

Gerando relatórios de saída com K6🏋️‍♂️

O processo de testes de performance compreende várias etapas, e uma delas é a geração de artefatos que sirvam a diferentes propósitos, com destaque para a comprovação dos resultados obtidos.

Os relatórios também desempenham um papel fundamental ao fornecer dados para alimentar dashboards ou ferramentas de monitoramento.

Neste tutorial, exploraremos a geração de relatórios de teste em diversos formatos utilizando o k6.

Image description

Mão na massa👩‍💻

Pré-requisitos📑

Script de exemplo📚

Nesse tutorial utilizaremos um script de exemplo, que faz uma requisição a API do K6 para listagem de crocodilos cadastrados:



import http from "k6/http";

export default function() {
      http.get("https://test-api.k6.io/public/crocodiles");
}


Enter fullscreen mode Exit fullscreen mode

Gerando relatório em formato HTML📋

O processo de geração de artefatos de saída em formato HTML é simples, conforme abordado no curso de teste de performance com K6, podemos utilizar a o modulo remoto k6-reporter.

Precisamos apenas realizar alguns ajustes no script de exemplo para que o modulo seja importado na fase de inicialização, e o relatório seja gerado na fase de desmontagem.

Após os ajustes, nosso script devera ficar da seguinte forma:



import http from "k6/http";
import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";

export default function() {
      http.get("https://test-api.k6.io/public/crocodiles");
}

export function handleSummary(data) {
  return {
    "relatorio.html": htmlReport(data),
  };
}


Enter fullscreen mode Exit fullscreen mode

para mais detalhes sobre o modulo, você pode estar consultando a seguinte documentação: k6-report-doc

Gerando relatório em formato JSON 📋

A geração de relatórios em formato JSON é um processo bastante simples. Existem algumas maneiras de realizar essa tarefa, uma delas é modificar o nosso script de exemplo de modo que o relatório com os dados dos testes seja gerado durante a fase de desmontagem.

Para geração de relatório em formato JSON nosso script ficara da seguinte forma:



import http from "k6/http";

export default function() {
      http.get("https://test-api.k6.io/public/crocodiles");
}

export function handleSummary(data) {
  return {
    'relatorio.json': JSON.stringify(data),
  };
}


Enter fullscreen mode Exit fullscreen mode

Ao executar nosso script com o comando k6 run script.js teremos como saída um relatório formato JSON.

Outra forma possível de gerar um relatório é informar via CLI, o formato de saída esperado.

Para gerar um relatório em formato JSON, basta utilizar o seguinte comando:



k6 run --out json=resultado.json script.js


Enter fullscreen mode Exit fullscreen mode

O flag --out informa para o K6 que queremos gerar um relatório de saída após execução, seguido do formato json e do nome do arquivo de saída resultado.json

Gerando relatório em formato CSV 📋

Para gerar um relatório em formato CSV, o processo é bastante semelhante ao abordado anteriormente na geração de relatórios em formato JSON via CLI. O comando necessário para essa tarefa é o seguinte:



k6 run --out csv=resultado.csv script.js


Enter fullscreen mode Exit fullscreen mode

Observem que continuamos com a flag --out, no entanto nossa saída agora é em formato CSV.

Gerando relatório em formato XML 📋

Quando se trata de execução via pipeline, um dos formatos de relatório mais comuns solicitados é o XML.

Para gerar um relatório em formato XML, é necessário utilizar um módulo remoto do K6 da jslib.k6.

Após os ajustes, nosso script de exemplo ficara da seguinte forma:



import http from "k6/http";
import { jUnit } from 'https://jslib.k6.io/k6-summary/0.0.2/index.js';


export default function() {
      http.get("https://test-api.k6.io/public/crocodiles");
}

export function handleSummary(data) {
    return {
      'relatorio.xml': jUnit(data),
    };
}


Enter fullscreen mode Exit fullscreen mode

Após executamos o script acima, teremos como saída um relatório de nome relatorio.xml.

Conclusão💖

Podemos perceber que o K6 oferece a possibilidade de gerar relatórios de execução em vários formatos diferentes, e temos a opção de especificar a geração desses relatórios por meio da CLI usando a flag --out.😄

Quanto aos módulos externos, como o Junit XML e o K6 HTML Report, é apenas uma questão de tempo até que esses módulos se tornem recursos nativos da ferramenta.😎

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:

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay