April 05 Prof. Ismael H. F. Santos - [email protected] 1 Modulo II Selenium Professor Ismael...

27
April 05 Prof. Ismael H. F. Santos - [email protected] 1 Modulo II Selenium Professor Ismael H F Santos – [email protected]

Transcript of April 05 Prof. Ismael H. F. Santos - [email protected] 1 Modulo II Selenium Professor Ismael...

Page 1: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

April 05 Prof. Ismael H. F. Santos - [email protected] 1

Modulo II Selenium

Professor Ismael H F Santos – [email protected]

Page 2: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 2

Introduction to Apache Maven 2 Tutorial ibm developerWorks:

Bibliografia

Page 3: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 3

Ementa

Traditional Build x Maven Build

Page 4: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 4

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.

Page 5: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 5

Considerações

Tipos de Testes Possíveis: Teste de Aceitação ou Funcional; Teste de Regressão; Teste de Desempenho.

Ferramentas da framework: Selenium IDE; Selenium Remote Control; Selenium Grid.

Page 6: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 6

Page 7: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 7

Implementação

Para realizar testes com Selenium, é necessário seguir um processo básico: 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.

Page 8: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 8

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. Instale-

o 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)

Page 9: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 9

Implementação

Acesse a URL http://selenium-ide.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.

Page 10: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 10

Implementação

Podemos agora criar um script simples: 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.

Page 11: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 11

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.

Page 12: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 12

Implementação

Com o script simples gravado, podemos reproduzir o caso de teste: 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.

Page 13: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 13

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.

Page 14: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 14

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.

Page 15: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 15

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.

Page 16: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 16

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.

Page 17: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 17

Integração com Maven e Eclipse

O Selenium RC possui duas partes: 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.

Page 18: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 18

Page 19: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 19

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: 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"

Page 20: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 20

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: 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-maven-

plugin". Clique em Ok.

Page 21: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 21

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: Abra o arquivo pom.xml no Eclipse com um

clique duplo.

Page 22: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 22

Integração com Maven e Eclipse

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 "start-

server".

Page 23: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 23

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> Na caixa Executions, clique no botão [Add...]. Na caixa Execution Details, digite "stop" no

campo Id.

Page 24: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 24

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

Page 25: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 25

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

Page 26: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 26

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.

Page 27: April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Modulo II Selenium Professor Ismael H F Santos – ismael@tecgraf.puc-rio.brismael@tecgraf.puc-rio.br.

March 09 Prof. Ismael H. F. Santos 27

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.