Gerando relatórios de testes com Allure Reports com Ruby e Cucumber

Pedro Henrique Joioso Martins
3 min readDec 14, 2018

--

Dashboard do Allure Reports

Não adianta nada criar vários testes automatizados, escrever vários cenários de testes, validar vários contextos e funcionalidades do sistema e não conseguir comprovar e/ou acompanhar quais cenários foram validados, quais foram reprovados, quais foram executados com sucesso, qual foi o tempo de execução, qual browser foi utilizado, e etc…

Para isso foi criado o Allure Command Line, uma biblioteca muito utilizada pelos frameworks de testes para elaboração dos resultados dos mesmos através de um relatório elegante e amigável.

No entanto para abrir um relatório em sua máquina local, precisamos ter instalado um servidor do Allure instalado.

Então esse artigo iremos aprender como instalar, configurar, gerar utilizando a linguagem Ruby com Cucumber(automaticamente é claro! 😄) um relatório com gráficos, indicadores, timelines, etc, digno de uma apresentação.

Pré-requisitos:

  • Ruby
  • Node
  • Java 8 ou superior ✅

Para instalar o Allure Command Line basta executar o seguinte comando:

npm install -g allure-commandline

Agora precisamos configurar, instalar e implementar o Allure dentro no nosso projeto(partindo do pressuposto que já temos um projeto com cucumber iniciado, cenários definidos, passos implementados. Se não é só dar uma confirida nos posts anteriores de como configurar um novo projeto!). Dito isso vamos começar pelo arquivo Gemfile inserindo a gem(biblioteca) ****do allure da seguinte forma “gem 'allure-cucumber'”, e instalando da seguinte maneira:

bundle install

Agora precisamos configurar o arquivo env.rb inserindo o seguinte código:

require 'allure-cucumber'Cucumber::Core::Test::Step.module_eval do
def name
return text if text == 'Before hook'
return text if text == 'After hook'
"#{source.last.keyword}#{text}"
end
end

ℹ️ Explicando: estamos informando que para rodar nossos testes é necessário o allure-cucumber através do require, e uma função name retornando os Hooks caso exista para não ocorrer erro ao executar os testes.

Com todas as configurações realizadas, podemos gerar os relatórios de testes, executando o cucumber chamando o allure e informando qual vai ser o nome da pasta que vai ser criada com o relatório das execuções dos testes, no caso abaixo test_report.

bundle exec cucumber --format AllureCucumber::Formatter --out=test_report

Com os testes executados e o relatório gerado dentro da pasta test_report, basta executar o comando abaixo e voi lá, a mágica acontece. O Allure vai criar um servidor web e abrir o browser com o relatório de testes gerado todo lindão e com várias informações importantes.

allure serve test_report

Para facilitar e não ter que ficar executando aquela linha extensa de comando, podemos configurar o arquivo cucumber.yml para quando rodar o testes, por padrão já gerar o relatório dos testes. E acredite, é muito simples configurar, basta passar o código: bundle exec cucumber — format AllureCucumber::Formatter — out=test_report para uma “chave” de qualquer nome, no meu caso allure e colocar essa chave como default, e o arquivo ficara da seguinte maniera:

default: allure
allure: --format AllureCucumber::Formatter --out=test_report

Agora se rodarmos bundle exec cucumber, ele vai rodar normalmente os testes e vai continuar gerando o relatório de testes todo bonitinho e coloridinho com gráficos e tudo mais conforme anteriormente.

💡 O Allure pode ir muito além disso, com ele é possível configurar tags de criticidade, vincular id’s das tarefas no jira, anexar arquivos, e etc… Como o Allure tem suporte para várias linguagens, e às vezes existem diferenças na integração, eu aconselho a olhar na documentação da própria biblioteca.

Conclusão

É sempre importante apresentarmos os resultados das funcionalidades, seja ela nova ou defasada, para isso nada melhor do que utilizar uma ferramenta que gere status reports completos, com gráficos, tempos de execução, screenshots, mostrando o que melhorou, onde piorou, o que quebrou, tempo de resposta, quem executou, funcionalidades testadas, que horas e quando foi executado, e etc..

Cheers! 🍻

Caso tenha alguma dúvida, sugestão de melhoria ou algum problema, deixe seu comentário. 👌

Caso tenha gostado ou tudo tenha ocorrido direitinho, me siga no Medium e deixa seu like. 😘

Tudo que precisamos para fazer aquela apresentação de valor para o time, mostrando onde que melhorou, onde que piorou, o que quebrou, tempo de resposta, quem executou os testes, funcionalidades testadas, que horas e quando foi executado e etc..

--

--

Pedro Henrique Joioso Martins

Engenheiro de teste, cervejeiro, churrasqueiro e pai. Sabe aplicação funcionando, cerveja gelada, churrasco bem-feito e família reunida?Não gosto, eu amo!