Relatórios de testes automatizados com Allure Cucumber
Allure é um framework utilizado para gerar relatórios a partir da execução de testes automatizados. Essa ferramenta está disponível para diferentes tecnologias de automação de testes.
Neste caso, explicarei a configuração e o funcionamento em um projeto feito em Ruby com Capybara e Cucumber.
Pré-requisitos
- Instalar Node.js em sua máquina
- Instalar Java em sua máquina.
- Instalar o allure-commandline com o seguinte comando:
npm install -g allure-commandline
Configuração do projeto
1. Adicione a gem ‘allure-cucumber’ ao seu arquivo Gemfile.
2. Crie ou altere o seu arquivo cucumber.yml com os seguintes parâmetros
--format AllureCucumber::CucumberFormatter --out allure-results
O resultado final deve ser assim:
3. Adicione algumas configurações no arquivo env.rb:
No topo do arquivo:
require 'allure-cucumber'
Logo abaixo:
Allure.configure do |c| c.results_directory = 'allure-results' c.clean_results_directory = trueend
Em c.results_directory, configuramos a pasta em que os resultados devem ser salvos e, em c.clean_results_directory, escolhemos se os resultados devem ser limpos ou não a cada execução.
O resultado final deve ser assim:
Execução
1. Continue executando seus testes normalmente. Você perceberá que, depois da execução, serão criados os arquivos com os resultados do teste.
2. Para visualizar o resultado, basta executar o seguinte comando na raiz do projeto:
allure serve
O navegador Chrome será aberto e exibirá um relatório completo da execução do teste:
No topo, será possível visualizar dados gerais como a quantidade de testes que passaram ou que falharam.
Acessando a suíte de testes, você visualizará informações mais detalhadas de cada cenário, como quais steps passaram e quais tiveram alguma falha:
Incluindo Screenshots
Podemos aprimorar o relatório adicionando os screenshots gerados pelo nosso teste!
1. No arquivo hooks.rb, aprimore o código existente de screenshots para que associe a evidência com o teste executado. Adicione o seguinte trecho:
temp_shot = page.save_screenshot("screenshots/#{scenario.name}#{Time.now.to_s.gsub(':', '')}_screenshot.png")Allure.add_attachment(name: scenario.name, source: File.open(temp_shot, 'rb'), type: Allure::ContentType::PNG)
O resultado final deve ser assim:
2. Execute seus testes novamente provocando uma falha. Será possível perceber que o um screenshot do erro aparecerá na com os resultados do Allure.
3. Execute novamente o comando do allure para visualizar o relatório do teste. Agora você pode analisar o erro ocorrido e o screenshot salvo.
Conclusão:
Muitas outras configurações e integrações são possíveis com o Allure. Não deixe de explorar e estudar sempre!
Alguns links úteis: