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.
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");
}
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),
};
}
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),
};
}
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
O flag
--out
informa para o K6 que queremos gerar um relatório de saída após execução, seguido do formatojson
e do nome do arquivo de saídaresultado.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
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),
};
}
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)