DEV Community

Marlo Henrique
Marlo Henrique

Posted on

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:

Top comments (0)