Bom dia pessoal
Estou abrindo este tópico para discussão do artigo Qualidade Através de Testes Funcionais com Selenium, JBehave, Maven e Integração contínua.
Qualquer dúvida, comentário ou feedback é bem vindo.
abraços
Bom dia pessoal
Estou abrindo este tópico para discussão do artigo Qualidade Através de Testes Funcionais com Selenium, JBehave, Maven e Integração contínua.
Qualquer dúvida, comentário ou feedback é bem vindo.
abraços
Oi,
Já tenho a revista, porém não consegui ler esse artigo ainda.
Tenho uma pergunta, o Selenium é especialmente e exclusivamente utilizado para testes de aplicações Web ?
Tchauzin!
Olá,
Sim o Selenium é exclusivamente para teste de aplicações web…
Atualmente estou trabalhando em um projeto swing e estou utilizando o FEST para testes funcionais… se interessar segue a URL: http://docs.codehaus.org/display/FEST/Getting+Started
[]s
Eu tenho a revista mas ainda não li o artigo com a devida atenção.
De qualquer forma, senti falta da explicação sobre o Cargo.
Está lá e eu não vi?
Desculpe pela demora para responder…
Não colocamos no artigo o código da configuração do cargo para não poluir o artigo com muita configuração, apenas explicamos o que ele é capaz de fazer…
De qualquer forma, é possível verificar a configuração completa fazendo o download do código fonte do projeto de exemplo no site da mundoJ
http://www.mundoj.com.br/codigos.shtml
[]s
[quote=Ferryman]Desculpe pela demora para responder…
Não colocamos no artigo o código da configuração do cargo para não poluir o artigo com muita configuração, apenas explicamos o que ele é capaz de fazer…
De qualquer forma, é possível verificar a configuração completa fazendo o download do código fonte do projeto de exemplo no site da mundoJ
http://www.mundoj.com.br/codigos.shtml
[]s
[/quote]
Prezado Rafael,
Li o artigo e gostei muito! Porém, o código disponibilizado está incompleto (Ex: TesteFuncional.java não existe).
Você poderia disponibilizar o código completo?
att.,
Leonardo
Olá Leonardo, que bom que você gostou.
Acabei de baixar o código fonte do site para ver se tinha algo errado. A classe teste funcional está lá, dentro da pasta
[raiz do zip]/testes-funcionais/src/test/java/br/com/mundoj/exemplo/teste/
Para facilitar, faça o unzip em um diretório do seu pc, e nessa pasta execute o comando “mvn eclipse:clean eclipse:eclipse”. Este comando irá gerar o projeto do eclipse (é necessário ter o maven instalado). Depois disso é só importar o projeto no eclipse.
Abraços
Rafael
Olá Ferryman,
Devido a tanta correria somente agora pude ler as minhas revistas antigas e acabei encontrando este artigo que é de grande interesse meu.
Porém tive vários problemas pra conseguir fazê-lo funcionar. Parte dos problemas eram devido a mudança dos repositórios da JBoss.
No arquivo pom.xml que fica na raiz do zip eu removi as linhas:
<repository>
<id>repository.jboss.org</id>
<name>JBoss Maven Repository</name>
<url>http://repository.jboss.org/maven2</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
E acrescentei as seguintes:
<repository>
<id>repository.jboss.org</id>
<name>JBoss Maven Repository</name>
<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
<repository>
<id>thirdparty-releases</id>
<name>JBoss Thirdparty Releases</name>
<url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases</url>
</repository>
Fazendo essas alterações o Maven finalmente baixou todas as dependências, porém quando entrei no diretório TestesFuncionais e digitei o comando mvn clean install -Dtestes-funcionais o terminal pára nas seguintes instruções:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running br.com.mundoj.exemplo.usuario.CadastroDeUsuariosTesteFuncional
11:18:48,198 INFO [org.openqa.jetty.util.Credential] Checking Resource aliases
11:18:48,203 INFO [org.openqa.selenium.server.SeleniumDriverResourceHandler] Command request: getNewBrowserSession[*firefox, http://localhost:8080/web-1.0-SNAPSHOT/, ] on session null
11:18:48,287 INFO [org.openqa.selenium.server.BrowserSessionFactory] creating new remote session
11:18:48,399 INFO [org.openqa.selenium.server.BrowserSessionFactory] Allocated session de2f5be42165434387864195a1d702c4 for http://localhost:8080/web-1.0-SNAPSHOT/, launching...
11:18:48,449 INFO [org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher] Preparing Firefox profile...
11:18:51,416 INFO [org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher] Launching Firefox...
O firefox abre automaticamente, mas a página permanece em branco. Não aparece nenhum endereço na url.
Eu abri uma outra aba do firefox e acessei http://localhost:8080/web-1.0-SNAPSHOT/ e o sistema funciona. Cadastrei um usuário e etc, tudo funciona direito.
Mas a página aberta automaticamente permanece em branco e os testes não são executados.
O que está acontecendo? Desde já agradeço quem puder me ajudar.
Olá Sandro
Eu acabei de baixar o código do site da mundoJ e executei o target mvn clean install -Dtestes-funcionais e rodou com sucesso…
Você seguiu as instruções do arquivo LEIA-ME.txt?
Para te ajudar preciso de mais detalhes… Manda a stacktrace completa do processo maven e verique também se ocorreu alguma excessão nos logs do jboss que está sendo utilizado pelo cargo.
Abraço
Ferryman,
Segue a stacktrace completa:
sandro@PCN01:~/Downloads/TestesFuncionais$ mvn clean install -Dtestes-funcionais
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] MundoJ - Exemplo
[INFO] WEB
[INFO] Testes Funcionais Automatizados
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MundoJ - Exemplo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ exemplo-parent ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ exemplo-parent ---
[INFO] Installing /home/sandro/Downloads/TestesFuncionais/pom.xml to /home/sandro/.m2/repository/br/com/mundoj/exemplo/exemplo-parent/1.0-SNAPSHOT/exemplo-parent-1.0-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building WEB 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ web ---
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ web ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ web ---
[INFO] Compiling 4 source files to /home/sandro/Downloads/TestesFuncionais/web/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ web ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/sandro/Downloads/TestesFuncionais/web/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ web ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default) @ web ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.4.3:test (default-test) @ web ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ web ---
[INFO] Packaging webapp
[INFO] Assembling webapp [web] in [/home/sandro/Downloads/TestesFuncionais/web/target/web-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp webResources [/home/sandro/Downloads/TestesFuncionais/web/src/main/webapp] to [/home/sandro/Downloads/TestesFuncionais/web/target/web-1.0-SNAPSHOT]
[INFO] Copying webapp resources [/home/sandro/Downloads/TestesFuncionais/web/src/main/webapp]
[INFO] Webapp assembled in [390 msecs]
[INFO] Building war: /home/sandro/Downloads/TestesFuncionais/web/target/web-1.0-SNAPSHOT.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ web ---
[INFO] Installing /home/sandro/Downloads/TestesFuncionais/web/target/web-1.0-SNAPSHOT.war to /home/sandro/.m2/repository/br/com/mundoj/exemplo/web/1.0-SNAPSHOT/web-1.0-SNAPSHOT.war
[INFO] Installing /home/sandro/Downloads/TestesFuncionais/web/pom.xml to /home/sandro/.m2/repository/br/com/mundoj/exemplo/web/1.0-SNAPSHOT/web-1.0-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Testes Funcionais Automatizados 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ testes-funcionais ---
[INFO] Deleting /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ testes-funcionais ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ testes-funcionais ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ testes-funcionais ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ testes-funcionais ---
[INFO] Compiling 8 source files to /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/test-classes
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default) @ testes-funcionais ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.4.3:test (default-test) @ testes-funcionais ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ testes-funcionais ---
[INFO] Building jar: /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/testes-funcionais-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ testes-funcionais ---
[INFO] Building jar: /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/testes-funcionais-1.0-SNAPSHOT-tests.jar
[INFO]
[INFO] --- selenium-maven-plugin:1.0.1:start-server (start-selenium) @ testes-funcionais ---
Created dir: /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/selenium
Launching Selenium Server
Waiting for Selenium Server...
[INFO] User extensions: /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/selenium/user-extensions.js
13:38:00,384 INFO [org.openqa.selenium.server.SeleniumServer] Java: Sun Microsystems Inc. 20.1-b02
13:38:00,384 INFO [org.openqa.selenium.server.SeleniumServer] OS: Linux 2.6.38-12-generic-pae i386
13:38:00,452 INFO [org.openqa.selenium.server.SeleniumServer] v2.0 [a2], with Core v2.0 [a2]
13:38:00,617 INFO [org.openqa.selenium.server.SeleniumServer] RemoteWebDriver instances should connect to: http://192.168.0.102:8888/wd/hub
13:38:00,618 INFO [org.openqa.jetty.http.HttpServer] Version Jetty/5.1.x
13:38:00,618 INFO [org.openqa.jetty.util.Container] Started HttpContext[/selenium-server/driver,/selenium-server/driver]
13:38:00,619 INFO [org.openqa.jetty.util.Container] Started HttpContext[/selenium-server,/selenium-server]
13:38:00,619 INFO [org.openqa.jetty.util.Container] Started HttpContext[/,/]
13:38:00,634 INFO [org.openqa.jetty.util.Container] Started org.openqa.jetty.jetty.servlet.ServletHandler@2ba11b
13:38:00,634 INFO [org.openqa.jetty.util.Container] Started HttpContext[/wd,/wd]
13:38:00,637 INFO [org.openqa.jetty.http.SocketListener] Started SocketListener on 0.0.0.0:8888
13:38:00,637 INFO [org.openqa.jetty.util.Container] Started org.openqa.jetty.jetty.Server@ef5502
13:38:01,719 INFO [org.openqa.jetty.util.Credential] Checking Resource aliases
Selenium Server started
[INFO]
[INFO] --- cargo-maven2-plugin:1.0.3:start (start-container) @ testes-funcionais ---
[INFO]
[INFO] --- cargo-maven2-plugin:1.0.3:deploy (deploy-ear) @ testes-funcionais ---
[INFO]
[INFO] --- maven-surefire-plugin:2.4.3:test (default) @ testes-funcionais ---
[INFO] Surefire report directory: /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running br.com.mundoj.exemplo.usuario.CadastroDeUsuariosTesteFuncional
13:38:36,584 INFO [org.openqa.jetty.util.Credential] Checking Resource aliases
13:38:36,590 INFO [org.openqa.selenium.server.SeleniumDriverResourceHandler] Command request: getNewBrowserSession[*firefox, http://localhost:8080/web-1.0-SNAPSHOT/, ] on session null
13:38:36,604 INFO [org.openqa.selenium.server.BrowserSessionFactory] creating new remote session
13:38:36,782 INFO [org.openqa.selenium.server.BrowserSessionFactory] Allocated session 492a504c8a2a4097aa318a5f70dc91a9 for http://localhost:8080/web-1.0-SNAPSHOT/, launching...
13:38:36,832 INFO [org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher] Preparing Firefox profile...
13:38:40,774 INFO [org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher] Launching Firefox...
14:08:42,344 ERROR [org.openqa.selenium.server.BrowserSessionFactory] Failed to start new browser session, shutdown browser and clear all session data
org.openqa.selenium.server.RemoteCommandException: timed out waiting for window 'null' to appear
at org.openqa.selenium.server.FrameGroupCommandQueueSet.waitForLoad(FrameGroupCommandQueueSet.java:569)
at org.openqa.selenium.server.FrameGroupCommandQueueSet.waitForLoad(FrameGroupCommandQueueSet.java:526)
at org.openqa.selenium.server.BrowserSessionFactory.createNewRemoteSession(BrowserSessionFactory.java:373)
at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:124)
at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:86)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:733)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:399)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:370)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:129)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482)
at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909)
at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:245)
at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
14:08:42,347 INFO [org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher] Killing Firefox...
14:08:42,394 INFO [org.openqa.selenium.server.SeleniumDriverResourceHandler] Got result: Failed to start new browser session: Error while launching browser on session null
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1,805.911 sec <<< FAILURE!
Results :
Tests in error:
run(br.com.mundoj.exemplo.usuario.CadastroDeUsuariosTesteFuncional)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] MundoJ - Exemplo .................................. SUCCESS [1.463s]
[INFO] WEB ............................................... SUCCESS [6.210s]
[INFO] Testes Funcionais Automatizados ................... FAILURE [30:49.077s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30:57.116s
[INFO] Finished at: Thu Nov 10 14:08:42 BRT 2011
[INFO] Final Memory: 16M/68M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.4.3:test (default) on project testes-funcionais: There are test failures.
[ERROR]
[ERROR] Please refer to /home/sandro/Downloads/TestesFuncionais/testes-funcionais/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :testes-funcionais
sandro@PCN01:~/Downloads/TestesFuncionais$
Eu segui todas as intruções do LEIA-ME.txt. O JBoss está instalado em /home/sandro/jboss-5.1.0.GA.
A única diferença é que uso o Maven 3.0.3, e não o 2.2.X. Talvez seja por isso que precisei fazer as mudanças no pom.xml que fica na raiz do zip.
Também esqueci de falar que tive que acrescentar a versão (2.1.1) para o plugin maven-war-plugin no arquivo pom.xml do diretório web.
Ficando o código assim:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>**/components.xml</include>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
Estou rodando o projeto no Ubuntu 11.04 e Firefox 7.0.1.
O Firefox estava fechado antes de executar o target.
Agradeço mais uma vez pela ajuda.
Parece que você está com problema pra fazer o selenium conseguir manipular o firefox… Eu já tive esse problema algumas vezes e é difícil identificar a causa…
Tente fazer o teste com o google chrome. Pra isso altere a classe TesteFuncional, modificando o seguinte codigo:
selenium = new DefaultSelenium(“localhost”, 8888, “*firefox”,
“http://localhost:8080/web-1.0-SNAPSHOT/”);
Substitua o “*firefox” por “*googlechrome”.
[]s
Substituindo por “*googlechrome” funcionou !!!
Thank you very much!!!
P.S.: Sem querer encher muito o saco, o que pode estar havendo com o Firefox ?! :oops:
O problema do firefox pode ser a versão… acho que o selenium rc funciona só com a versão 2 do firefox.
[]s