Skip to content

Manual de Instalação e Configuração dbehave para Testes de Regressão em Layout

Julian Cesar edited this page May 26, 2015 · 31 revisions

DOCUMENTAÇÃO EM DESENVOLVIMENTO

Pré Requisitos

  1. Java
  2. Image Magick
  3. Projeto dbehave
  4. Maven

Java

É necessário ter o Java (JDK) instalado para que o processo funcione, normalmente as máquinas que já rodam o dbehave já possuem a versão necessária.

Para verificar se a JDK está instalada corretamente rode o seguinte comando:

java -version

A saída do console deverá ser parecida com esta:

java version "1.6.0_35"
OpenJDK Runtime Environment (IcedTea6 1.13.7) (6b35-1.13.7-1ubuntu0.12.04.2)
OpenJDK Server VM (build 23.25-b01, mixed mode)

Image Magick

Para que o processo de comparação dos layouts funcione corretamente é necessário que a biclioteca Image Magick (http://www.imagemagick.org) seja instalada.

A instalação desta biblioteca em muitas distribuições Linux, como a Ubuntu 12.04, pode ser feita através do seguinte comando:

sudo apt-get install imagemagick

Após a instalação acesse o Promp/Terminar do computador que irá rodar os testes e rode o seguinte comando

compare --version

E o resultado deverá ser algo como o seguinte texto:

Version: ImageMagick 6.9.0-0 Q16 i686 2014-11-24 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates (built-in): png x zlib

Projeto dbehave

O teste de regressão tem como pré requisito inicial um projeto dbehave já criado, caso ainda não tenha criado um basta seguir o Roteiro Rápido do manual no seguinte endereço:

http://demoiselle.sourceforge.net/docs/components/behave/reference/lastversion/html/behave-quickstart.html

Importante: esta funcionalidade só esta disponível na versão 1.5.0 ou mais recente.

Maven

Para que o teste rode corretamente é necessário que a máquina tenha instalado o Maven, para saber se ele esta funcionando corretamente rode o seguinte comando no prompt/terminal:

mvn --version

A saída do console deverá ser algo parecido com o seguinte:

Apache Maven 2.2.1 (rdebian-8)
Java version: 1.6.0_33
Java home: /usr/lib/jvm/java-6-serpro-1.6.0.33/jre
Default locale: pt_BR, platform encoding: UTF-8
OS name: "linux" version: "3.2.0-58-generic-pae" arch: "i386" Family: "unix"

Configuração do Projeto dbehave

Esta sessão descreve como o projeto dbehave deve ser configurado para que o teste de regressão rode.

Configurações Básicas do pom.xml

Esta funcionalidade possui basicamente 2 inclusões no pom.xml:

  1. Passos personalizados para capturar as telas a serem comparadas
  2. Plugin maven que faz as comparações e gera o relatório

Para adicionar os passos personalizados basta adicionar uma nova dependência ao pom.xml na tag dependencies como segue abaixo:

<dependency>
	<groupId>br.gov.frameworkdemoiselle.component.behave</groupId>
	<artifactId>demoiselle-behave-regression-step</artifactId>
	<scope>test</scope>
</dependency>

E a outra configuração é a inclusão do plugin maven dentro da tag build/plugins como abaixo:

<build>
	<plugins>
		<plugin>
			<groupId>br.gov.frameworkdemoiselle.component.behave</groupId>
			<artifactId>demoiselle-behave-regression-report</artifactId>
			<version>1.5.X</version>				
			<executions>
				<execution>
					<phase>test</phase>
					<goals>
						<goal>regression</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

Observação: Altere 1.5.X para a versão corrente do dbehave

Configurações do behave.properties

Configurações Gerais
behave.regression.enabled=true
behave.regression.types=linux1204_Firefox,linux1204_Chrome,windows7_FF,windows7_Chrome,windows7_IE9
behave.regression.defaultType=linux1204_Firefox
Configuração dos Navegadores
behave.regression.linux1204_Firefox.runner.screen.type=MozillaFirefox
behave.regression.linux1204_Firefox.runner.window.maximize.enabled=true

behave.regression.linux1204_Chrome.runner.screen.type=GoogleChrome
behave.regression.linux1204_Chrome.runner.window.maximize.enabled=true
behave.regression.linux1204_Chrome.runner.screen.driverPath=//path//do//driver//chromedriver

behave.regression.windows7_IE9.runner.screen.type=RemoteWeb
behave.regression.windows7_IE9.runner.window.maximize.enabled=true
behave.regression.windows7_IE9.runner.screen.remote.name=internetExplorer
behave.regression.windows7_IE9.runner.screen.remote.url=http://127.0.0.1:4449/wd/hub

behave.regression.windows7_Chrome.runner.screen.type=RemoteWeb
behave.regression.windows7_Chrome.runner.window.maximize.enabled=true
behave.regression.windows7_Chrome.runner.screen.remote.name=chrome
behave.regression.windows7_Chrome.runner.screen.remote.url=http://127.0.0.1:4449/wd/hub

behave.regression.windows7_IE11.runner.screen.type=RemoteWeb
behave.regression.windows7_IE11.runner.window.maximize.enabled=true
behave.regression.windows7_IE11.runner.screen.remote.name=internetExplorer
behave.regression.windows7_IE11.runner.screen.remote.url=http://127.0.0.1:44411/wd/hub

behave.regression.windows7_IE10.runner.screen.type=RemoteWeb
behave.regression.windows7_IE10.runner.window.maximize.enabled=true
behave.regression.windows7_IE10.runner.screen.remote.name=internetExplorer
behave.regression.windows7_IE10.runner.screen.remote.url=http://127.0.0.1:44410/wd/hub

behave.regression.windows7_FF.runner.screen.type=RemoteWeb
behave.regression.windows7_FF.runner.window.maximize.enabled=true
behave.regression.windows7_FF.runner.screen.remote.name=firefox
behave.regression.windows7_FF.runner.screen.remote.url=http://127.0.0.1:44410/wd/hub
Repositório Local de Imagens

Para o repositório local ele irá usar o diretório home do usuário como padrão, por exemplo, no Linux ele irá ficar em /home/NOME_DO_USUARIO/.dbehave/.

A configuração é bem simples, basta selecionar a seguinte propriedade:

behave.regression.type=local
Repositório FTP de Imagens

Em desenvolvimento

Adicionando os pontos de comparação

Para que as novas frases de captura funcionem é necessário adicionar os passos ao dbehave por meio do seguinte comando:

BehaveContext.getInstance().addSteps(new RegressionSteps());

Para que as telas sejam capturadas basta utilizar uma das seguinte frases:

Quando tiro um print screen

Quando tiro um print screen com o nome "NOME DA CAPTURA QUE APARECERÁ NO RELATÓRIO"

Rodando o Teste de Regressão

Mostrar o comando maven e a saída do console e o relatório.

O resultado final será criado na pasta /target/dbehave do seu projeto dbehave.

Configuração do Teste Unitário

É recomendado que sejam criados novos métodos JUnit com o seguinte código:

@Test // Anotação JUnit
public void testRegressaoLayout() throws Throwable {

	// Laço de repetição para testar com todos os navagedores
	for (String browser : RegressionConfig.getTypes()) {
		RegressionConfig.setCurrentType(browser);  // Seleciona o navegador atual

		eng.addStoriesReuse("/stories/XXXX.story"); // Histórias de reuso
		eng.addStories("/stories/XXXXX.story"); // Histórias que irão rodar

		eng.addSteps(new MySteps());  // Passos customizados
		eng.addSteps(new RegressionSteps()); // Passos de captura

		// Roda o teste para o navegador atual selecionado no setCurrentType
		eng.run();
	}

}

O relatório só será gerado se, somente se, os testes passarem.

Clone this wiki locally