Sie sind auf Seite 1von 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 Lista das aes executadas

Registro dos eventos executados, incluindo eventuais erros

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.
Normalmente, os comandos que executam aes podem ter um sufixo "AndWait", por exemplo, "clickAndWait

Accessors: examinam o estado da aplicao e armazenam os resultados em variveis, por exemplo, "storeTitle".
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
Abre uma pgina URL.

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

verifyTitle/assertTitle
Verifica o ttulo da pgina.

verifyTextPresent
Verifica se o texto esperado est na pgina.

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

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

verifyTable
verifica o contedo esperado de uma tabela.

waitForPageToLoad
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 Verifica se o Sistema est emitindo o alerta

Comandos / Verificaes disponveis para a tela

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(); } @Test public void testTeste() throws Exception {

Servidor
Necessrio para que a pgina seja carregada completamente

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(); } }

mensagem de erro (no ser).

41

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

Das könnte Ihnen auch gefallen