Modulo II
Selenium
Professor
Ismael H F Santos – ismael@tecgraf.puc-rio.br
April 05
Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br
1
Bibliografia

Introduction to Apache Maven 2

March 09
Tutorial ibm developerWorks:
Prof. Ismael H. F. Santos
2
Ementa
 Traditional Build x Maven Build
March 09
Prof. Ismael H. F. Santos
3
Considerações
 Selenium é uma framework de automação de
testes de software para aplicações web. Os
testes podem ser escritos em formato HTML
ou codificados em várias linguagens de
programação e podem ser executados
diretamente nos browsers mais modernos.
Selenium pode ser distribuído em sistemas
Windows, Linux e Macintosh.
March 09
Prof. Ismael H. F. Santos
4
Considerações
 Tipos de Testes Possíveis:



Teste de Aceitação ou Funcional;
Teste de Regressão;
Teste de Desempenho.
 Ferramentas da framework:



March 09
Selenium IDE;
Selenium Remote Control;
Selenium Grid.
Prof. Ismael H. F. Santos
5
March 09
Prof. Ismael H. F. Santos
6
Implementação
 Para realizar testes com Selenium, é
necessário seguir um processo básico:


March 09
Criação do script de interação usando o
Selenium IDE.
Execução do script pela própria IDE ou
através do Selenium Remote Control na
linguagem de programação preferida.
Prof. Ismael H. F. Santos
7
Implementação
 Para iniciar a criação de testes com Selenium,
precisamos baixar e instalar o Selenium IDE:

Abra o browser Firefox 1.5.x, 2.x ou 3.x. Instaleo se necessário. (Obs.: A versão 2.x apresentou
problemas com a última versão do Selenium
IDE mas a versão 3.x funcionou corretamente)
March 09
Prof. Ismael H. F. Santos
8
Implementação



Acesse a URL http://seleniumide.openqa.org/download.jsp
Clique no link de download "Firefox extension"
da versão mais recente.
Na janela de instalação do plugin, clique em
[Install Now]. Aguarde o download terminar e
clique no botão [Restart Firefox]. Com isso, o
Firefox reiniciará e o Selenium IDE estará
instalado.
March 09
Prof. Ismael H. F. Santos
9
Implementação
 Podemos agora criar um script simples:



March 09
Na janela do Firefox, selecione o menu Tools >
Selenium IDE. A janela do Selenium IDE será
aberta em modo de gravação
automaticamente.
Alterne para a janela do Firefox e acesse a
URL http://www.google.com.br/
Realize uma busca pelo texto "SENAC". Após
o resultado ser exibido no browser, verifique a
IDE e repare que os comandos foram
gravados.
Prof. Ismael H. F. Santos
10
Implementação


Volte ao browser e acione o menu popup sobre o
link "SENAC RIO" e selecione a opção
"verifyTextPresent SENAC". Isso gravará um
comando para verificação do texto "SENAC" na
IDE.
Selecione a janela da IDE e clique no botão
vermelho para parar a gravação. Com isso, temos
um caso de teste gravado pela IDE.
March 09
Prof. Ismael H. F. Santos
11
Implementação
 Com o script simples gravado, podemos
reproduzir o caso de teste:


March 09
Na janela da IDE, clique no botão "Play current
test case".
Repare que todos os passos executados
anteriormente foram reproduzidos e ao final
houve uma verificação de texto presente na
página. Repare também que a linha do
comando de verificação ficou verde, indicando
sucesso na verificação.
Prof. Ismael H. F. Santos
12
Implementação
 Com a reprodução do script, alcançamos o que
é conhecido como teste funcional ou teste de
aceitação. Podemos, em seguida, gravar o script
para realizar o mesmo teste em outra ocasião:


Na janela da IDE, clique no menu File > Save
Test Case.
Salve o script como "teste.selenium" em qualquer
pasta. O arquivo pode ter qualquer extensão mas
é conveniente usar uma extensão mais
adequada.
March 09
Prof. Ismael H. F. Santos
13
Implementação




Feche a janela da IDE e o todos os browsers
Firefox que ainda estiverem abertos para ter
certeza que não existirá nada em memória.
Abra o Firefox novamente e o Selenium IDE
novamente.
Na janela da IDE, abra o arquivo gravado
anteriormente "teste.selenium" através do menu
File > Open...
Execute o teste novamente clicando em "Play
current test case". Repare que o teste foi
reproduzido novamente.
March 09
Prof. Ismael H. F. Santos
14
Implementação
 Com a execução de um script gravado
anteriormente, alcançamos o que é conhecido
como teste de regressão que verifica se as
funcionalidades anteriormente testadas
continuam executando da mesma forma. Este
tipo de teste é adequado para testar novas
versões de um software com o objetivo de
garantir que as funcionalidades passadas não
foram afetadas pelas novas mudanças.
March 09
Prof. Ismael H. F. Santos
15
Integração com Maven e Eclipse
 Utilize uma distribuição do Eclipse 3.3 com o
plugin M2Eclipse instalado. Iremos utilizar um
plugin do Maven para executar o Selenium
Remote Control.
 O Selenium Remote Control é uma
ferramenta de teste que permite escrever
testes automatizados para aplicações web em
qualquer linguagem de programação em cima
de qualquer site HTTP usando qualquer
browser com JavaScript habilitado.
March 09
Prof. Ismael H. F. Santos
16
Integração com Maven e Eclipse
 O Selenium RC possui duas partes:


March 09
Um servidor que automaticamente abre e
fecha browsers, e atua como um HTTP proxy
para as requisições web.
Bibliotecas clientes para sua linguagem de
programação favorita.
Prof. Ismael H. F. Santos
17
March 09
Prof. Ismael H. F. Santos
18
Integração com Maven e Eclipse
 Vamos agora usar o Selenium RC como
plugin do Maven. Caso o Eclipse não esteja
aberto, execute-o. Crie um projeto Maven
com archetype quickstart:





March 09
Acesse o menu File > New > Project...
Escolha Maven Project e clique em Next.
Clique em Next novamente.
Escolha maven-archetype-quickstart na coluna
Artifact Id e clique em Next.
Em Group Id, digite "br.senac"
Prof. Ismael H. F. Santos
19
Integração com Maven e Eclipse



Em Artifact Id, digite "testeSelenium"
Em Package, digite "br.senac"
Clique em Finish para criar o projeto.
 Adicione o plugin do Selenium:




March 09
Clique com o botão direito do mouse sobre o
projeto e acesse o menu Maven > Add Plugin.
Digite "selenium" para filtrar a lista de plugins.
Selecione "org.codehaus.mojo selenium-mavenplugin".
Clique em Ok.
Prof. Ismael H. F. Santos
20
Integração com Maven e Eclipse
 O plugin foi adicionado. Basta abrir o pom.xml
e verificar.
 Vamos configurar o maven para iniciar o
servidor do Selenium RC toda vez que a
execução dos testes estiver para começar e
parar o mesmo servidor depois que a
execução dos testes terminar:

March 09
Abra o arquivo pom.xml no Eclipse com um
clique duplo.
Prof. Ismael H. F. Santos
21
Integração com Maven e Eclipse







March 09
Clique na aba Plugins na parte inferior.
Selecione o plugin do Selenium na lista de
plugins.
Na caixa Executions, clique no botão [Add...].
Na caixa Execution Details, digite "start" no
campo Id.
Selecione test-compile no campo Phase.
No campo Goals, clique em [Add...].
Clique sobre o goal criado e digite "startserver".
Prof. Ismael H. F. Santos
22
Integração com Maven e Eclipse


Clique no link Configuration da caixa Execution
Details.
Inclua a seguinte configuração nesta execução
após a tag goals:
<configuration>
<background>true</background>
</configuration>


March 09
Na caixa Executions, clique no botão [Add...].
Na caixa Execution Details, digite "stop" no
campo Id.
Prof. Ismael H. F. Santos
23
Integração com Maven e Eclipse




Selecione post-integration-test no campo Phase.
No campo Goals, clique em [Add...].
Clique sobre o goal criado e digite "stop-server".
Salve o pom.xml.
 Inclua a dependência para suporte a testes com
Selenium.



Abra o menu popup sobre o projeto e escolha
Maven > Add Dependency.
Digite "selenium" para filtrar as dependencias
disponiveis.
Selecione org.apache.geronimo.testsupport
March 09
Prof. Ismael H. F. Santos
24
Integração com Maven e Eclipse






Abra o Selenium IDE novamente no Firefox.
Abra o arquivo "teste.selenium" anteriormente
gravado.
Selecione o menu File > Export Test Case As... >
Java - Selenium RC.
Salve como TesteSelenium.java em qualquer
pasta.
Copie o arquivo TesteSelenium.java para o
Eclipse na pasta src/test/java no pacote br.senac
e abra o arquivo no editor do Eclipse.
Mude a package para br.senac
March 09
Prof. Ismael H. F. Santos
25
Integração com Maven e Eclipse





Renomeie NewTest para TesteSelenium.
Altere o método setUp para
setUp("http://www.google.com.br/", "*iexplore");
Salve o arquivo.
Para testar tudo, abra o menu popup sobre o
projeto e selecione Run As > Maven install.
O Selenium RC abrirá o Internet Explorer e fará
os testes. Ao final teremos a info de BUILD
SUCCESSFUL.
March 09
Prof. Ismael H. F. Santos
26
Integração com Maven e Eclipse

Para causar uma falha, basta trocar a linha:
verifyTrue(selenium.isTextPresent("SENAC"))
por
verifyTrue(selenium.isTextPresent("SENACFALHA"))
e executar novamente o Maven install.

Com isso, teremos uma falha porque o texto
SENACFALHA não será encontrado.
March 09
Prof. Ismael H. F. Santos
27
Download

alo - PUC-Rio