-
Notifications
You must be signed in to change notification settings - Fork 53
Manual de Instalação e Configuração dbehave para Testes de Regressão em Layout
- Java
- Image Magick
- Projeto dbehave
- Maven
É 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)
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
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:
Importante: esta funcionalidade só esta disponível na versão 1.5.0 ou mais recente.
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"
Esta sessão descreve como o projeto dbehave deve ser configurado para que o teste de regressão rode.
Esta funcionalidade possui basicamente 2 inclusões no pom.xml:
- Passos personalizados para capturar as telas a serem comparadas
- 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
behave.regression.enabled=true
behave.regression.types=linux1204_Firefox,linux1204_Chrome,windows7_FF,windows7_Chrome,windows7_IE9
behave.regression.defaultType=linux1204_Firefox
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
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
Em desenvolvimento
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"
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.
É 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.