Allure Dashboard: explorando o Menu e os Gráficos

Thiago Simões
stonetech
9 min readJan 5, 2021

--

Fonte: https://demo.qameta.io/allure/#

O Allure Test Report é uma ferramenta INCRÍVEL que traz uma série de métricas sobre os nossos testes. Essas métricas podem nos ajudar na tomada de decisão em relação a eficiência dos nossos testes. No Café com Testes temos um post explicando como adicionar informações nesse relatório.

Nesse post vamos explorar as informações contidas na Dashboard.

Allure Report

Fonte: https://demo.qameta.io/allure/#

O primeiro quadro te dá:
- uma visão de todos os testes: nesse exemplo temos 21 test cases;
- a porcentagem de quantos foram com sucesso: 42,85%;
- a data da última execução: 10/10/2014 ; e
- o tempo total da execução: nesse caso 15m 13s;

No gráfico de anel, você tem uma representação da quantidade de testes que passaram e falharam sendo cada cor:

  • Verde: testes com sucesso;
  • Vermelhos: testes que falharam por um problema de produto (por exemplo quebra de um assert);
  • Cinza: Testes ignorados;
  • Roxos: Falhas desconhecidas (desde que configurado);
  • Laranja/Amarelo: falhas no teste (por exemplo um Before que teve problema e o teste não foi executado);

Passando o mouse por cima de todos os gráficos ele também nos revela informações úteis: como o significado de cada cor, e a quantidade numérica.

Trend

Fonte: https://demo.qameta.io/allure/#

No segundo quadro temos o gráfico de tendência, este gráfico só está disponível quando se é gerado mais de um relatório no mesmo projeto (ou seja, a partir da segunda execução). Seguindo a mesma regra de cores mencionada anteriormente, o gráfico mostra todas as execuções feitas e seus respectivos resultados, assim conseguimos ter uma noção de como anda a maturidade do nosso time com testes.

Suites

Fonte: https://demo.qameta.io/allure/#

Aqui temos dois comportamentos:

  • caso utilizemos cenários escritos em Gherkin, irá apresentar o nome das features, e a quantidade de testes que passaram ou tiveram algum problema naquela feature;
  • no caso de utilizar com casos de teste, ele irá pegar cada um dos describes e montar uma suíte (pode ser que algumas bibliotecas implementem de outra forma ou precise de trabalho manual).

Ao clicar em alguma dessas suítes, você é levado para os detalhes dela, vendo quais são os testes e quais status.

Fonte: https://demo.qameta.io/allure/#

Categories

Fonte: https://demo.qameta.io/allure/#

Ele mostra as categorias dos testes, isso é configurado na geração do report, com a configuração é possível categorizar, e ter as informações das execuções em cada categoria.

Na pasta results, você coloca um arquivo categories.json, com o seguinte formato:

Contrato:
name: obrigatório, é o nome da categoria;
matchedStatuses: lista de estados, opcional. Padrão [“failed”, “broken”, “passed”, “skipped”, “unknown”];
traceRegex: Um regex sobre o stack trace do erro, opcional;
messageRegex: Um regex na mensagem do erro, opcional;

Executors

Fonte: https://demo.qameta.io/allure/#

Apenas mostra todos os executores. Ele precisa ser previamente configurado, ajuda em casos onde se tem vários executores diferentes para o mesmo projeto, mostrando qual foi a última execução feita por aquele executor.

Environment

Fonte: https://demo.qameta.io/allure/#

Informação única para todo o projeto, providenciada por um arquivo, que pode mostrar uma lista de informações. Infelizmente a informação é estática, ou seja, se você não alterar o arquivo certo essa informação pode não refletir a realidade.

Features by Stories

Fonte: https://demo.qameta.io/allure/#

Possibilita adicionar no teste o ID da estória, para facilitar a integração e saber quais testes estão relacionados a qual estória.

Exemplo de uso no Jest-allure (não suportado oficialmente):

Menu lateral

Fonte: https://demo.qameta.io/allure/#

Aqui podemos ver todas as funcionalidades:

Overview [ Que é a home ]

Categories [ Que vai para a tela de categorias cadastradas para os testes ]

Suites [ Que vai para a tela de Suítes de testes ]

Graphs [ Abre uma visão de todos os gráficos da dashboard ]

Timeline [ Que cria uma linha do tempo com todos os testes e consegue te apresentar uma estatística do tempo de execução dos testes ]

Behaviors [ Consegue te dar uma visão de comportamentos (aqui os testes precisam estar em Gherkin) ]

Packages [ Apresenta uma visão de agrupamento (precisa que o teste seja configurado)]

Categories

Fonte: https://demo.qameta.io/allure/#categories

Essa seção é uma lista parecida com a de suítes porém organizada por categorias previamente configuradas na criação do report, é bom para ajudar a separar testes em sua construção.

Suites, a lista de funcionalidades testadas

Fonte: https://demo.qameta.io/allure/#categories

Nesta tela podemos ver a lista de funcionalidades do teste, um indicativo de quantos testes existem ali, e se tiver algum teste falhando vai seguir o sistema de cores que já citamos no primeiro tópico.

É possível fazer um filtro por nome, usando o sistema de cores, além de identificar se o teste é intermitente.

Observação: para o teste ser marcado como intermitente é preciso usar a função retry do framework de testes e nem todos conseguem fazer essa marcação, consulte a documentação do framework que você utiliza.

Por exemplo, utilizando o cucumber.rb + allure-cucumber, você pode passar a opção “- -retry 2” e ele será automaticamente marcado como intermitente.

Tocando no “i” no topo, é possível ter informações do tempo de execução de cada funcionalidade.

Nesta tela podemos também ter uma visão do teste, um pouco sobre ela já foi falado em outro artigo mas iremos explorar os detalhes agora.

Começando pelo nome da funcionalidade e após o nome do teste, e o status do teste.

Overview

Fonte: https://demo.qameta.io/allure/#suites
  • Severity: temos as informações de severidade do teste (é configurado no teste e cada framework implementa de sua forma);
  • Duration: duração do teste;
  • Description: contém a descrição do teste (é configurado no teste e cada framework implementa de sua forma, e aceita tags HTML);
  • Links: é possível adicionar links para o Jira por exemplo;
  • Execution: aqui fica a execução do teste, onde podemos ter por exemplo evidências de teste anexadas, como ensinamos nesse post.
  • Execution(Gherkin): aqui podemos ter mais informações, por exemplo os passos de setup, test body, e tear down, onde:

1. Setup como o nome diz ficam todos os passos usados para iniciar o teste;
2. Test Body, ficam todos os passos do Dado, Quando, Então, E’s e Más, aqui você também pode anexar conteúdos em cada um dos passos caso seja importante;
3. Tear Down, todos os passos que foram feitos para fechar o teste, limpeza de cookies, anexo de vídeo, relatórios etc.

History

Fonte: https://demo.qameta.io/allure/#suites

Possui uma lista de execuções, que fica vinculada a geração do report, então precisamos tomar cuidado já que a geração de report precisa ser incremental, podemos tratar isso em outro artigo com mais detalhes.

Também traz informação de Success Rate, ou seja, qual a % de sucesso desse teste. No exemplo acima, houveram 2 execuções e em ambas o teste falhou.

Retries

Fonte: https://demo.qameta.io/allure/#suites

Traz a quantidade de vezes que o teste foi “refeito”, ou retentado, porém essa informação tem que ser interpretada com muito cuidado, assim como o History tem um que se gerar o report para aparecer o histórico correto, o retries ele vai considerar a quantidade de vezes que o teste foi executado antes de se gerar o report.

Timeline

Fonte: https://demo.qameta.io/allure/#timeline

Apenas uma visão de tempo dos testes, mostrando uma barra de tempo (entre os testes) e onde os testes e quantidade ficam em uma escala de tempo, por exemplo, quantos testes naquele período ficaram abaixo de 1 segundo, 1 minuto, e assim por diante.

Behaviors

Fonte: https://demo.qameta.io/allure/#timeline

É igual a seção de suítes mas você consegue configurar para ter mais categorias ou divisões, apenas precisa ser configurado nos testes. Aqui é um dos pontos onde a criatividade pode ser bem utilizada.

Packages

Fonte: https://demo.qameta.io/allure/#timeline

Uma lista parecida com as outras, aqui você pode criar outras categorizações para os testes, por exemplo colocar informação de domínios, e saber, ou se você precisa fazer testes com integrações externas, às vezes até versões.

Graphs

Fonte: https://demo.qameta.io/allure/#timeline

Essa seção é uma das mais úteis, nela conseguimos ter as seguintes informações:

  • Status dos testes;
  • Duração dos testes e quantos testes duram aquele tempo;
  • Distribuição da severidade dos testes;
  • Duração de cada pipeline dos testes;
  • Quantidade de re-tentativas;
  • Categorias, os resultado de cada situação em cada execução;

É claro que para ter todos esses dados algumas coisas precisam ser configuradas como categorias, e os retries serem bem implementados pelo framework de teste.

Status

Fonte: https://demo.qameta.io/allure/#timeline

Mostra um gráfico igual ao inicial, porém maior e já com a legenda, e ao passar o mouse por cima também mostra informações como quantidade.

Severity

Fonte: https://demo.qameta.io/allure/#timeline

Um gráfico em barras com a quantidade de testes em cada uma das severidades configuradas pelo desenvolvedor. Cada framework trabalha de uma forma, e cada cor representa um estado de execução.

Exemplo de uso no Jest-allure (não suportado oficialmente):

Duration

Fonte: https://demo.qameta.io/allure/#timeline

Um gráfico em barras com a quantidade de testes que demoram até um valor, não é 100% preciso porque ele leva em consideração uma aproximação.

Exemplo: se o teste demorou 1,2s outro 1,4s e outro 1,6s ele pode agrupar todos e colocar na barra de 0 até 2 segundos.

Duration Trend

Fonte: https://demo.qameta.io/allure/#timeline

Um gráfico que mostra o tempo de cada execução da suíte completa de testes, mostrando o tempo total e a quantidade de execuções.

Retries Trend

Fonte: https://demo.qameta.io/allure/#timeline

Um gráfico que mostra a quantidade de re-tentativas teve em cada execução, esse precisa ser bem configurado, e ter um suporte do framework para a execução correta.

Categories Trend

Fonte: https://demo.qameta.io/allure/#timeline

Um gráfico que mostra a alteração de categorias de acordo com as execuções, pode ajudar a encontrar por exemplo testes que mudaram de categoria com o decorrer do tempo, categorias que tiveram testes skipped e estão descobertas de testes.

Trend

Fonte: https://demo.qameta.io/allure/#timeline

O mais importante na minha opinião é que ele mostra o histórico de execuções junto com a quantidade de testes que falharam e passaram junto com os outros estados, então com isso podemos começar a analisar os testes que mais falham ou se estamos saudáveis em relação a testes.

Exemplo de uso no Jest-allure (não suportado oficialmente):

Conclusão

O Allure Test Report traz visibilidade sobre sua eficiência de teste, te ajudando na tomada de decisão sobre testes intermitentes, testes que demoram muito pra executar e funcionalidades que não estão cobertas. Para facilitar a publicação de resultados na dashboard do Allure, criamos uma imagem docker que centraliza a manutenção do sistema de upload de resultados para o Allure Docker. É uma imagem open-source e vocês podem utilizar e contribuir.

Para saber mais, basta acessar a documentação:

--

--