Selenium Usp

Embed Size (px)

Citation preview

  • 1SELENIUMMrcio DelamaroHarry Trinta28/03/2011

  • O que a Selenium? Selenium uma ferramenta desenvolvida para a

    automao de testes em aplicaes Web Suporta diversos browsers:

    Firefox Internet Explorer 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

  • 4

  • Selenium IDE5

  • 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, 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

    Execuo dos comandos

    Grava as aes do usurio

    Especificao dos comandos

  • Selenium IDE

    Endereo do sistema que ser testado

    Lista das aes executadas

    Registro dos eventos executados, incluindo eventuais erros

  • Selenium RC9

  • 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

  • Selenium GRID12

  • Selenium-Grid

    Esse componente capaz de distribuir os testes em diversas mquinas para que possam ser executados em paralelo Tempo de execuo reduzidoTempo 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

  • Comandos15

  • 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".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 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.

  • Porque usar a Selenium?18

  • 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 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 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

  • Instalando 21

  • Instalando Selenium IDE

    Abra a janela do navegador Firefox (obrigatoriamente)

    Abra http://seleniumhq.org/download/ Em Downloads Escolha IDE Selenium 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 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 Libraries2 Clique em Add Library

    1 Clique em Libraries

    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 2 Adicione os dois 2 Adicione os dois jars mostrados na Imagem

    3 Clique em Finish

    2 Adicione os dois jars mostrados na Imagem

    http://seleniumhq.org/download/

  • Ambiente pronto

    Agora, j possvel realizar testes utilizando a ferramenta Selenium em projetos Java

  • Exemplo Gravando um teste

    GravandoGravando

  • Gravando utilizao

    Site escolhido: www.hotmail.com

    Clicar aquiClicar aqui

  • Gravando utilizao

    Passos j gravados

    Testar se o sistema est verificando o tamanho da senha

    Testar se o sistema est verificando o tamanho da senha

    Testar se o sistema est verificando o tamanho da senha Passos j

    gravados

  • Gravando utilizao

    Digitado: 123 Verifica se o Sistema est emitindo o alertaVerifica se o Sistema est emitindo o alerta

    Comandos / Verificaes disponveis para a tela

  • Visualizando comandos

    Cdigo para ser utilizado no JUnit

    Comandos capturados

  • Criando Classe de Teste

    O cdigo gerado pela Selenium IDE pode ser exportado clicando em Arquivo -> Exportar Teste Como -> JUnit 4

    ou ...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 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;

    @Beforepublic void setUp() throws Exception {

    servidor = new SeleniumServer(); servidor.start();selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://login.live.com/");selenium.start();

    }@Testpublic 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&mkt=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);

    }@Testpublic 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&mkt=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);

    }

    Servidor

    Necessrio para que a pgina seja carregada completamente

    Verifica se o texto foi encontrado na pgina

    41

    }@Testpublic 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&mkt=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);

    }@Testpublic 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&mkt=pt-br&cbcxt=mai&snsc=1");

    Thread.sleep(3000);selenium.click("i0010");selenium.waitForPageToLoad("30000");selenium.type("iPwd", "123456");assertEquals(selenium.isTextPresent("A senha deve ter mais de 5 caracteres."), true);

    }@Afterpublic void tearDown() throws Exception {

    selenium.stop();servidor.stop();

    }}

    Esse teste deve falhar, pois ser digitado 6 caracteres para a senha e, no comando abaixo, espera-se que seja emitido a 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

  • Exerccio44