You are on page 1of 44

1

SELENIUM
28/03/2011

Mrcio Delamaro
Harry Trinta

O que a Selenium?


Selenium uma ferramenta desenvolvida para a


automao de testes em aplicaes Web
Suporta diversos browsers:
 Firefox
 Internet

Explorer

 Safari
 Opera
 Chrome


.. e diversos SOs
 Windows,

Linux, Solaris

O que a Selenium?


Tipos de Testes Possveis:


Teste Funcional
 Teste de Regresso
 Teste de Desempenho


Componentes:
Selenium IDE
 Selenium RC (Remote Control)
 Selenium Grid


http://seleniumhq.org

Selenium IDE

Selenium IDE


Selenium IDE um plug-in para o Firefox capaz


de gravar e reproduzir testes
Com ele possvel exportar o teste gravado
para diversas linguagens, por exemplo, HTML,
Java, .NET, Perl, Ruby, etc
Os testes exportados podem ser executados
em qualquer navegador e qualquer plataforma
usando o componente Selenium RC

Selenium IDE
Grava as aes
do usurio
Execuo dos
comandos

Especificao dos
comandos

Selenium IDE
Endereo do
sistema que ser
testado

Registro dos eventos


executados, incluindo
eventuais erros

Lista das aes


executadas

Selenium RC

Selenium-RC


Selenium-RC oferece uma API (Application


Programming Interface) e uma biblioteca para
cada uma das linguagens suportadas: HTML,
Java, C #, Perl, PHP, Python e Ruby.
Possui um servidor que automaticamente abre
e fecha browsers, e atua como um HTTP
proxy para as requisies web.

Selenium-RC

12

Selenium GRID

Selenium-Grid


Esse componente capaz de distribuir os


testes em diversas mquinas para que
possam ser executados em paralelo
 Tempo

de execuo reduzido
 Testes podem ser executados em diferentes
combinaes de navegador + sistema
operacional
 Gera um relatrio agrupado de todas as
mquinas de teste

Selenium-Grid

15

Comandos

Comandos


Actions: so comandos que geralmente manipulam o estado da aplicao.


Por exemplo, clicar em um link ou selecionar uma opo de uma
comboBox.


Accessors: examinam o estado da aplicao e armazenam os resultados


em variveis, por exemplo, "storeTitle".


Normalmente, os comandos que executam aes podem ter um sufixo


"AndWait", por exemplo, "clickAndWait

tambm so usados para gerar Assertions automaticamente.

Assertions: so como Acessors, mas verificam se o estado da aplicao


est em conformidade com o que se espera. Por exemplo, verifica se o
ttulo da pgina X, verifica se uma determinada opo est assinalada.
Todas as Assertions podem ser utilizadas em trs modos: assert", "verify"
e "waitFor". Por exemplo, voc pode utilizar "assertText", "verifyText e
"waitForText".

Alguns comandos mais comuns




open


click/clickAndWait


verifica o contedo esperado de uma tabela.

waitForPageToLoad


verifica se o texto esperado e sua tag HTML correspondente esto presentes na pgina.

verifyTable


Verifica se um elemento UI esperado, conforme definido pelo seu cdigo HTML, est presente na pgina.

verifyText


Verifica se o texto esperado est na pgina.

verifyElementPresent


Verifica o ttulo da pgina.

verifyTextPresent


Executa um clique e, opcionalmente, espera por uma nova pgina carregar.

verifyTitle/assertTitle


Abre uma pgina URL.

interrompe a execuo at que uma nova pgina seja carregada. Chamado automaticamente quando
clickAndWait usado.

waitForElementPresent


interrompe a execuo at que um elemento da interface do usurio esperado, conforme definido pelo seu
cdigo HTML, esteja presente na pgina.

18

Porque usar a Selenium?

Porque escolher a Selenium?




As bibliotecas Selenium podem ser importadas nas mais populares


IDEs



Eclipse, NetBeans, Visual Studio Net, etc.


Reutiliza os frameworks de testes de unidade

Utilizada por equipes de teste funcional, teste de regresso e teste


de aceitao do usurio

A integrao no processo de build tornou fcil de implement-la em


ambientes de Integrao Contnua

Porque escolher a Selenium?




Um forte apoio para as tecnologias AJAX

Consegue realizar testes em diversos browsers e em diversos


sistemas operacionais

Executa testes em paralelo





Usando o componente Grid, os testes podem ser executados em


paralelo em vrios RC (agente) de diferentes mquinas
Economiza tempo e mais rpido

Selenium GRTIS



Sem custos de licenciamento.


Pode ser implantada em quantas mquinas forem necessrias

21

Instalando

Instalando Selenium IDE







Abra a janela do navegador Firefox


(obrigatoriamente)
Abra http://seleniumhq.org/download/
Em Downloads Escolha IDE Selenium
No faa isso em
outro browser

Instalando Selenium IDE




Clique em Allow (Aceitar) para


prosseguir com a instalao

Reinicie o Firefox

Instalando Selenium IDE




Agora, no Firefox, v em Ferramentas e


verifique se Selenium IDE exibido
Se sim, o Selenium IDE est instalado

Instalando Selenium RC


Esse exemplo, ser feito utilizando a


linguagem Java

A IDE utilizada ser o Eclipse

Para executar os testes, ser usado o JUnit 4

Criao do projeto no Eclipse




Criar um novo projeto

Criao do projeto no Eclipse

Next

Criao do projeto no Eclipse




1 Clique em Libraries
2 Clique em
Add Library

3 Escolha
JUnit -> Next

Criao do projeto no Eclipse




Escolha JUnit 4 e clique em Finish

Criao do projeto no Eclipse


1 Clique em Add
External Jars
2 Adicione os dois
jars mostrados na
Imagem

3 Clique em Finish

http://seleniumhq.org/download/

Ambiente pronto


Agora, j possvel realizar testes utilizando a


ferramenta Selenium em projetos Java

Exemplo Gravando um teste

Gravando

Gravando utilizao


Site escolhido: www.hotmail.com

Clicar aqui

Gravando utilizao
Testar se o sistema
est verificando o
tamanho da senha

Passos j
gravados

Gravando utilizao
Digitado: 123

Comandos / Verificaes
disponveis para a tela

Verifica se o Sistema
est emitindo o alerta

Visualizando comandos

Comandos capturados

Cdigo para ser


utilizado no JUnit

Criando Classe de Teste




O cdigo gerado pela Selenium IDE pode ser


exportado clicando em Arquivo -> Exportar
Teste Como -> JUnit 4
ou ...
copiando diratamente o cdigo mostrado e
colando dentro de uma classe no Eclipse

Criando Classe de Teste

Servidor


Para executar os casos de teste, necessrio


inicializar o servidor Selenium. possvel
fazer isso de duas maneiras:
 Via

prompt, ir at a pasta onde se encontra o .jar


do servidor e inici-lo com o comando:
java -jar selenium-server-standalone-2.0b2.jar

 Incluir

trechos de cdigos na classe de teste

SeleniumServer servidor;
servidor = new SeleniumServer();
servidor.start();

Alterao no cdigo


importante ressaltar que, muita das vezes, o


cdigo gerado pela Selenium IDE precisa de
ajustes do testador

public class ClasseDeTeste extends SeleneseTestCase {


Selenium selenium;
SeleniumServer servidor;
@Before
public void setUp() throws Exception {
servidor = new SeleniumServer();
servidor.start();
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://login.live.com/");
selenium.start();
}

Servidor
Necessrio para que a pgina
seja carregada completamente

@Test
public void testTeste() throws Exception {
selenium.open("/login.srf?wa=wsignin1.0&rpsnv=11&ct=1300939240&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1046&id=64855&mk
t=pt-br&cbcxt=mai&snsc=1");
Thread.sleep(3000);
selenium.click("i0010");
selenium.waitForPageToLoad("30000");
selenium.type("iPwd", "123");
assertEquals(selenium.isTextPresent("A senha deve ter mais de 5 caracteres."), true);
}

Verifica se o texto foi


encontrado na pgina

@Test
public void testTeste2() throws Exception {
selenium.open("/login.srf?wa=wsignin1.0&rpsnv=11&ct=1300939240&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1046&id=64855&mk
t=pt-br&cbcxt=mai&snsc=1");
Thread.sleep(3000);
selenium.click("i0010");
selenium.waitForPageToLoad("30000");
selenium.type("iPwd", "1234");
assertEquals(selenium.isTextPresent("A senha deve ter mais de 5 caracteres."), true);
}
@Test
public void testTeste3() throws Exception {
selenium.open("/login.srf?wa=wsignin1.0&rpsnv=11&ct=1300939240&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1046&id=64855&mk
t=pt-br&cbcxt=mai&snsc=1");
Thread.sleep(3000);
selenium.click("i0010");
selenium.waitForPageToLoad("30000");
selenium.type("iPwd", "12345");
assertEquals(selenium.isTextPresent("A senha deve ter mais de 5 caracteres."), true);
}
@Test
public void testTeste4() throws Exception {
selenium.open("/login.srf?wa=wsignin1.0&rpsnv=11&ct=1300939240&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1046&id=64855&mk
t=pt-br&cbcxt=mai&snsc=1");
Thread.sleep(3000);
selenium.click("i0010");
Esse teste deve falhar, pois ser digitado 6
selenium.waitForPageToLoad("30000");
selenium.type("iPwd", "123456");
caracteres para a senha e, no comando
assertEquals(selenium.isTextPresent("A senha deve ter mais de 5 caracteres."), true);
abaixo, espera-se que seja emitido a
}
@After
public void tearDown() throws Exception {
selenium.stop();
servidor.stop();
}
}

41

mensagem de erro (no ser).

Executando os Testes


Clicar com o Boto direito -> Run As -> JUnit


Teste
 Todos

os Testes da classe sero executados

Executando os Testes


Como esperado, o ltimo teste falhou

Exerccio
44

You might also like