(48) 4052-9536 / 9540
 contato@qualister.com.br

• Terceirização de profissionais
• Consultoria de teste
• Avaliação de usabilidade
• Automação de testes
• Testes de performance
• Treinamentos
                                    Treinamento
                                   Automação de testes com
                                         Selenium


  www.qualister.com.br
Quer saber mais?


Estes são apenas alguns slides do curso
 de automação de testes com selenium
 Para maiores informações e novas turmas, visite nosso site:


                http://www.qualister.com.br/cursos




www.qualister.com.br
Direitos autorais




www.qualister.com.br
Instrutor

Elias Nogueira
Email: elias.nogueira@gmail.com
Blog: http://sembugs.blogspot.com
Arquiteto de Teste de Software com ênfase em automação de Teste. Atualmente trabalha como Consultor
Técnico na linha de ALM da Hewlett Packard e Consultor em Automação e Teste e Instrutor na Qualister.

Possui a certificação CSTE – Certified Software Tester pela QAI e possui uma Pos Graduação em Teste de
Software

Já deu diversas palestras sobre Java e Teste de Software. Ativo na comunidade de Teste também
coordenou alguns eventos e encontros de testes, como no Testadores e no The Developers Conference

@eliasnogueira
http://sembugs.blogspot.com
http://slideshare.net/elias.nogueira
http://about.ne/eliasnogueira




 www.qualister.com.br
Sobre a Qualister

•      Fundação: 2007.
•      Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união
       de profissionais qualificados e certificados na área de testes e qualidade de
       software, com o objetivo de integrar, implementar e implantar soluções com base nas
       melhores práticas do mercado e normas internacionais.
•      Colaboradores: A Qualister é composta por colaboradores pós-graduados e
       certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de
       Tecnologia da Informação.
•      Área de atuação: A Qualister é uma empresa especializada em serviços de
       qualidade e teste de software. Tem como linhas de atuação consultoria em
       teste/qualidade de software, outsourcing (terceirização dos serviços através da
       alocação de profissionais) e treinamentos.




    www.qualister.com.br
Parcerias internacionais


                        Soluções para automação, profilling e gestão




                       Soluções para testes de performance




                        Soluções de apoio a avaliação de usabilidade




www.qualister.com.br
O que é o Selenium?




www.qualister.com.br
O que é o Selenium

• Selenium é um conjunto de ferramentas para automação de
  browsers web

• Atualmente é composto por 4 grandes projetos
               Selenium IDE
                Plugin do Firefox que permite a gravação e execução de ações efetuadas
                em uma página web

               Selenium Remote Control
                Permite o controle e execução de scripts em outros browsers e máquinas
                Também utilizarmos linguagens de programação para criar os scripts
               Selenium Webdriver
                Emula nativamente diversos browsers localmente ou em máquinas remotas
                através de programação

                Selenium Grid
                Habilita a execução de scripts simultaneamente em diferentes máquinas


www.qualister.com.br
O que é o Selenium

• Nosso foco será no Selenium IDE e no Selenium Remote
  Control

• O suporte a browsers é bem extenso, como Firefox, Internet
  Explorer, Opera, Safari e GoogleChrome

• Também com suporte a linguagens de programação como:
  Java, C#, Python, PHP, Ruby e Perl

• E suporte a Sistemas Operacionais: Windows, Linux, OsX e
  Solaris

• Para saber mais sobre o suporte do Selenium acesse
  http://seleniumhq.org/about/platforms.html

www.qualister.com.br
O que é o Selenium

• Uma grande dica é sempre acompanhar a página de
  documentação do Selenium, que é atualizada
  constantemente, bem como outros itens:

• Documentação: http://seleniumhq.org/docs/

• Twitter: @SeleniumHQ

• Lista de email: http://groups.google.com/group/selenium-
  users

• Blog: http://seleniumhq.wordpress.com/



www.qualister.com.br
Instalando o
                       Selenium IDE




www.qualister.com.br
Instalando o Selenium IDE

• É um plugin para gravação e execução de testes pelo
  Firefox

• O Selenium IDE instala SOMENTE no browser Firefox

• Sempre verifique a página http://seleniumhq.org/download
  para encontrar a versão mais recente do Selenium IDE

• O instalador é um Addon do Firefox, porém pode ser
  instalado separadamente baixando o arquivo .xpi e
  instalando off-line

• Para versões beta do Firefox utilize o repositório do
  Selenium IDE
  http://xserve.openqa.org:8085/browse/IDE-EDITOR

www.qualister.com.br
Instalando o Selenium IDE

• Abra o Firefox e acesse o site
  http://seleniumhq.org/download

• Clique sobre o link referente a versão atual do Selenium
  IDE, como mostra a imagem abaixo




www.qualister.com.br
Instalando o Selenium IDE

• Uma mensagem será apresentada no canto superior
  esquerdo do Firefox. Clique sobre o botão “Allow” (Permitir)




• O download será executado. Aguarde o término da
  instalação do Addon




www.qualister.com.br
Instalando o Selenium IDE

• A tela de instalação do Addon do Selenium será
  apresentada. Aguarde por 5 segundos e no botão “Install
  Now” (Instalar Agora)




www.qualister.com.br
Instalando o Selenium IDE

• Agora no canto superior esquerdo mais uma mensagem
  para reiniciar o Firefox e validar a instalação do Addon do
  Selenium. Clique em “Restart Now” (Reiniciar)




www.qualister.com.br
Instalando o Selenium IDE

• Após o Firefox reiniciar vá até o menu Firefox/Web
  Developer/Selenium IDE para abrir o Selenium IDE




www.qualister.com.br
Instalando o Selenium IDE

• O Selenium IDE será aberto




www.qualister.com.br
Instalando o Firebug




www.qualister.com.br
Instalando o Firebug

• Firebug é uma ferramenta de desenvolvimento web onde
  podemos editar, debug e monitorar CSS, HTML e Javascript
  em uma página web

• Utilizaremos uma pequena funcionalidade do Firebug para
  nos ajudar em alguma automações com o Selenium




www.qualister.com.br
Instalando o Firebug

• Acesse a página http://getfirebug.com

• Clique sobre o “botão vermelho” “Install Firebug”




• Você será direcionado para a página de download. Clique
  sobre o item recomendado para iniciar a instalação




www.qualister.com.br
Instalando o Firebug

• Você será redirecionado para a ela de Add-ons do Firefox.
  Clique no botão Add to Firefox para iniciar a instalação




www.qualister.com.br
Instalando o Firebug

• Uma mensagem aparecerá no canto superior esquerdo do
  browser. Clique no botão “Allow” (Permitir)




• Aguarde o término do download




www.qualister.com.br
Instalando o Firebug

• A tela de instalação do Addon do Firebug será apresentada.
  Aguarde por 5 segundos e no botão “Install Now” (Instalar
  Agora)




www.qualister.com.br
Instalando o Firebug

• Agora no canto superior esquerdo mais uma mensagem
  para reiniciar o Firefox e validar a instalação do Addon do
  Firebug. Clique em “Restart Now” (Reiniciar)




www.qualister.com.br
Instalando o Firebug

• Após o Firefox reiniciar vá até o menu Firefox/Web
  Developer/Firebug ou clique sobre o botão      para habilitar
  a barra do Firebug




www.qualister.com.br
Firebug - Inspector

• A maior funcionalidade do Firebug que utilizaremos para
  nos ajudar na automação com o Selenium é chamado de
  Inspector.

• Podemos ativar o inspector pelo botão

• Quando o ativamos passamos o mouse sobre qualquer
  elemento dentro da página web para visualizar o
  código-fonte do elemento que estiver apontado com a seta
  do mouse




www.qualister.com.br
Estrutura do Selenium
                                 IDE




www.qualister.com.br
Estrutura do Selenium IDE


       URL inicial
                               Barra de menu



      Suíte de Teste
                             Estrutura e edição do
                                     script




Informações gerais




www.qualister.com.br
Estrutura do Selenium IDE

• A URL Base é muito importante, pois quando iniciamos a
  gravação do script um comando chamado open é
  adicionado com o endereço da página, menos a base de
  acesso.
• Com isso podemos trocar o endereço base e o script
  continua funcionando

• A barra Fast Slow controla a velocidade do script. Procure
  utiliza-la somente em caráter de visualização das ações dos
  scripts. Aprenderemos como fazer esperar e não depender
  dessa funcionalidade do Selenium IDE



www.qualister.com.br
Estrutura do Selenium IDE

• A barra de TestCase lista todos os scripts criados e é onde
  podemos agrupar diversos scripts e salvar uma suíte de
  teste

• O conjunto de Estruturação de Script é onde visualizamos
  os comandos que estão sendo gravados, onde também
  podemos editá-los

• O painel de Informações Gerais apresenta o log de
  execução, referência de comandos entre outras
  informações



www.qualister.com.br
Selenese, a linguagem do Selenium IDE

• Todos os scripts gravados e salvos como TestCase são
  chamados de Selenese

• Selenese é uma “linguagem” própria do Selenium através
  de comandos por palavras-chave (Keyword Driven)

• A visualização do código-fonte nada mais é do que uma
  tabela HTML com a mesma visualização da tabela no
  Selenium IDE




www.qualister.com.br
Selenese, a linguagem do Selenium IDE

• As Suítes de Teste podem ser salvas com um único script
  ou com vários

• A estrutura do código-fonte é nada mais que o caminho
  para cada script




www.qualister.com.br
Comandos Básicos




www.qualister.com.br
Comandos Básicos

• Existem uma série de comandos no Selenium IDE já
  prontos

• Visualizamos estes comandos no próprio Selenium IDE pela
  combo Command




www.qualister.com.br
Comandos Básicos

• Existem basicamente três divisões de comandos: de
  garantia ou verificação, de ação e gerais

• Os comandos de garantia e verificação podem ser
  identificados como verify... ou assert...
  Ex: assertTextPresent garante que um determinado texto
  está contido na página

• Asserts: garante que uma certa informação está na página,
  se não estiver falha e para a execução do script

• Verifys: verifica se uma certa informação está na página, se
  não estiver marca o comando como erro e continua a
  execução do script

www.qualister.com.br
Comandos Básicos

• Podemos chamar os comandos de ações os que mudam o
  comportamento da página como click, keys, mouse, etc...

• Um ponto importante sobre o comando click é que
  podemos visualizar o comando clickAndWait...
  Isso indica que o clique mudou o comportamento da página
  e o Selenium fará uma espera até a página ser carregada

• Todos os comandos que terminam com AndWait fazem
  uma espera até que a página seja 100% carregada ou que
  o tempo total de espera seja ultrapassado. Ele é
  configurado pelo menu Options/Options/Default timeout value...



www.qualister.com.br
Comandos Básicos

• As ações gerais são qualquer outro comando específico
  dentro do Selenium

• Sempre que precisarmos entender o que faz um comando
  selecionamos ele através da combo Command e a aba
  Reference é habilitada.
  Poderemos ver o que o comando realmente faz sobre a
  página ou sobre os elementos




www.qualister.com.br
Exercício 1




www.qualister.com.br
Conceituação para Exercício 1

• Locators: são formas de identificar um elemento dentro da
  página web. É um dos principais pontos que devemos
  entender no Selenium

• Os locators podem ser do tipo:
     –   Id: localização pelo ID de um elemento
     –   Nome: localização pelo nome de um elemento
     –   Xpath: localização ou por funções ou por navegação
     –   Links: localização por um link na página
     –   DOM: localização através de propriedades via javascript
     –   CSS: localização por estilos




www.qualister.com.br
Conceituação para Exercício 1

• Localização por ID
• Encontra um elemento pelo atributo id

• No exemplo abaixo o único elemento que podemos interagir pelo id é o
  form

• Ex: id=loginForm




www.qualister.com.br
Conceituação para Exercício 1

• Localização por Name
• Encontra um elemento pelo atributo name

• No exemplo abaixo podemos interagir com quatro elementos: campo de
  login e senha, botão de login e botão de limpar

• Ex: id=username

• Observação: como temos dois elementos com o mesmo nome (continue)
  o Selenium sempre pega o primeiro que encontra




www.qualister.com.br
Conceituação para Exercício 1

• Localização por xpath
• Encontra um elemento através da navegação entre os elementos

• No exemplo abaixo podemos localiza qualquer elemento por xpath e de
  diversas formas....

• Ex: //input[3] irá encontrar o botão de login

         //input[@name=“continue” and @type=“button” ] irá encontrar o
            botão de limpar




www.qualister.com.br
Conceituação para Exercício 1

• Localização por link
• Encontra um elemento do link (href) de uma página

• No exemplo podemos encontrar os dois links existentes

• Ex: link=Continue localiza o link de Continue (“continue.html”)
      link=Cancel localiza o link de Cancel (“cancel.html”)




www.qualister.com.br
Conceituação para Exercício 1

• Localização por DOM
• Encontra um elemento através de javascript

• No exemplo podemos encontrar qualquer elemento

• Ex: documents.forms[0].password localiza o campo de password




www.qualister.com.br
Conceituação para Exercício 1

• Localização por CSS
• Encontra um elemento através de um estilo CSS ou navegação na
  página

• No exemplo podemos encontrar qualquer elemento

• Ex: css=input.required[type=“text”] localiza o elemento de usuário
      css=input[name=“password"] localiza o elemento de senha




www.qualister.com.br
Qual a melhor estratégia?

• A melhor estratégia de localização está na ordem abaixo:
     –   id
     –   name
     –   Link
     –   CSS
     –   DOM
     –   Xpath

• Embora CSS esteja em quarto, o Selenium IDE pega a
  grande parte dos elementos que não tenham ID ou name por
   CSS

• Embora o Xpath esteja por último, existem funções que nos
  ajudam a localizar mais facilmente um elemento

www.qualister.com.br
Conceituação para Exercício 2

• Comumente as páginas web utilizam funções em javascript
  para executarem determinadas tarefas
• O Selenium tem diversos suportes para javascript, como os
  comandos abaixo:
     – addScript: adiciona um script javascript na página para execução do teste
     – assertEval: garante a avaliação de um resultado positivo de um javascript
     – assertNotEval: garante a avaliação de um resultado negativo de um javascript
     – fireEvent: simula um evento em um determinado elemento
     – runScript: executa um javascript
     – removeScript: remove uma tag script
     – storeEval: guarda o resultado de alguma ação via javascript
     – verifyEval: verifica a avaliação de um resultado positivo de um javascript
     – verifyNotEval: verifica a avaliação de um resultado negativo de um javascript
     – waitForEval: espera por algum resultado positivo de um javascript
     – waitForNotEval: espera por algum resultado negativo de um javascript

www.qualister.com.br
Conceituação para Exercício 3

• Alertas são mensagens informativas em javascript que
  possuem apenas um botão de OK

• Confirmações são mensagens em javascript esperando uma
  determinada ação de “sim/não” ou “ok/cancelar”

• Existe uma série de comandos para cada tipo de mensagem,
  mas o que não devemos confundir é o tipo de cada um.
  Todos os comandos de alertas possuem a palavra alert, e as
  confirmações possuem a palavra confirmation




www.qualister.com.br
Conceituação para Exercício 3

• Alertas
     – assertAlert: garante que um alerta apareceu validando pelo seu texto
     – assertAlertNotPresent: garante que um alerta não apareça validando pelo seu
         texto
     – assertAlertPresent: garante que qualquer alerta apareceu, independente do
         seu texto
     – storeAlert: guarda a mensagem/texto de um alerta
     – storeAlertPresent: guarda a mensagem/texto de um alerta presente na página
     – verifyAlert: verfica que um alerta apareceu validando pelo seu texto
     – verifyAlertPresent: verifica que um alerta apareça validando pelo seu texto
     – verifyAlertNotPresent: verifica que um alerta não apareça validando pelo seu
         texto
     – waitForAlert: espera por um alerta pelo seu texto
     – waitForAlertNotPresent: espera que um alerta não apareça mais na página
     – waitForAlertPresent: espera por qualquer alerta na página



www.qualister.com.br
Conceituação para Exercício 3

• Os mesmos comandos do Alerta servem para as
  Confirmações e tem as mesmas ações, porém com o nome
  confirmation ou invés de alert

• O único comando adicionar é
  chooseCancelOnNextConfirmation, que enviar um sinal
  para que o Selenium ao invés de clicar sobre o botão OK,
  clique sobre o botão Cancelar.




www.qualister.com.br
Conceituação para Exercício 4

• Popups no Selenium tem o mesmo tratamento de janelas.
• Vale salientar que o Selenium trabalha com janelas, mas não
  entende a troca de abas, logo se existirem mais de uma
  página ela deverá ser aberta em um novo browser

• O Selenium possui os seguintes comandos para interagir com
  janelas
     – close: simula o click no botão close da janela ou popup
     – descelectPopup: tira o foco atual de uma popup
     – selectPopup: coloca o foco em uma popup
     – selectWindow: coloca o foco sobre uma janela ou popup
     – waitForPopUp: espera por uma determinada popup
     – windowFocus: coloca o foco sobre uma janela ou popup



www.qualister.com.br
Conceituação para Exercício 5

• Uma página web possui uma série de elementos HTML.
  Alguns que podemos interagir diretamente como usuários da
  página e outros não.

• Veremos alguns dos principais elementos de integração com
  a página, como:
     – Input: que pode ser:
            • Caixa de texto/Senha
            • Radion button
            • Checkbox
     – Combobox e ListBox
     – ListBox




www.qualister.com.br
Conceituação para Exercício 6

• Expressões regulares são muito uteis no Selenium, onde
  temos três tipos de patterns (modos de uso):
     – Global
     – Expressões Regulares
     – Exatos

• Os Globais podem utilizar a maioria dos caracteres coringa de
  expressões regulares e é util quando necessitamos interagir ou
  validar certos elementos que tem nomes em comum.
• Utiliza o prefixo glob nos comandos

   Ex: click | link=glob: Pesquisar Relatorio *
   Neste exemplo ele encontra qualquer link com o que contenha o
   texto “Pesquisar Relatorio” como “Pesquisar Relatorio de Cliente”,
   Pesquisar “Relatório de Fornecedor,” etc..

www.qualister.com.br
Conceituação para Exercício 6

• As Expressões Regulares utilizam todos os recursos da
  expressão regular para localizar qualquer tipo de informação na
  página ou mesmo valida-las
• Utiliza o prefixo regexp nos comandos

   Ex: clicar sobre um link que é uma data na página (21/01/2011)
   click | link=regexp: [0-9]{2}/[0-9]{2}/[0-9]{4}

• Para saber mais de como utilizar os recursos de expressão regular
  consulte
  http://pt.wikipedia.org/wiki/Express%C3%A3o_regular




www.qualister.com.br
Conceituação para Exercício 6

• Os Exatos são utilizados quando interagimos com algum elemento
  que tenha algum tipo de caracter especial utilizado por expressões
  regulares ou globais

• Utiliza o prefixo exact nos comandos

• Ex: Validação do texto “(1 U.S. dollar) * 1 Brazil real = 0.57241”

assertTextPresent | exact:(1 U.S. dollar) * 1 Brazil real = 0.57241




www.qualister.com.br
Conceituação para Exercício 7

• Para efetuarmos esperas por eventos em Ajax deveremos
  utilizar comandos que iniciem com waitFor
• Essa é a melhor forma de esperar por qualquer informação na
  página. Por padrão todas as esperas no Selenium IDE tem o tempo
  de 30 segundos. Depois disso um erro de timeout é apresentado
• O ideal em uma página com requisições Ajax é entender qual a
  forma de retorno da requisição, seja apresentando um texto,
  apresentando uma imagem, um campo, etc... A partir dai
  pesquisamos pelo comando waitFor... mais apropriado
• Ex: para uma requisição Ajax que, ao seu término, apresenta o
  botão de Remover e que tenha id=delete, podemos utilizar o
  comando:
  waitForElementPresent | id=delete

www.qualister.com.br
Conceituação para Exercício 7

• O timeout do Selenium IDE é configurado pelo menu
  Option/Options...

• O campo “Default timeout value of recorded command in
  miliseconds” quarda o tempo de espera em milisegundos,
  onde 10s = 10.000 ms




www.qualister.com.br
Conceituação para Exercício 8

• Para encontrarmos certos tipos de elementos na página web
  podemos utilizar algumas funções do xpath


• starts-with: útil quando um elemento tem um mesmo prefixo
  Ex: elemento como caixa de texto: id=name1345
   click | //input[starts-with(@id,’name’)]

• ends-with: útil quando um elemento termina com uma
  mesma informação
  Ex: elemento imagem: <img src=“icon_1234_small32x32.png   />
   click | //img[ends-with(@src,’small32x32.png’)]




www.qualister.com.br
Conceituação para Exercício 8

• contains: muito útil para encontrarmos elementos que
  contenham certa informação.

   Ex: lista de informações onde cada uma é uma div, e
   queremos encontrar o valor “Fulano de Tal”:
     <div[id=123]>Fulano de Tal</div>

• Comando para encontrar:
   //div[contains(text(),’Fulano de Tal’)]


• Neste caso utilizamos também a função text(), para pegar o texto
  de cada elemento (neste caso uma div), assim todos os elementos
  são verificados e somente o que satisfaz a condição retorna



www.qualister.com.br
Conceituação para Exercício 9

• Em diversos momentos é necessário garantir uma certa
  informação, que é nosso resultado esperado.

• Muitas vezes a página possui a mesma informação em locais
  diferentes, mas precisamos garantir que a infomação está em
  um determinado local

• É muito valido, neste cado, que coloquemos o caminho para
  esta informação através de xpath

• Isso vai garantir que a informação que foi validada é a que
  esperamos

• Veremos como esperar por uma informação em determinado
  local no exercício

www.qualister.com.br
Conceituação para Exercício 10

• Este exercício utiliza a mesma lógica das esperas com Ajax

• A dica para este exercício é identificar como é o
  comportamento de cada combo e utilizar os comandos para
  esperar pelas informações certas




www.qualister.com.br
Quer saber mais?


Estes são apenas alguns slides do curso
 de automação de testes com selenium
 Para maiores informações e novas turmas, visite nosso site:


                http://www.qualister.com.br/cursos

                       contato@qualister.com.br


www.qualister.com.br

Curso Treinamento Automação de testes com Selenium Qualister

  • 1.
    (48) 4052-9536 /9540 contato@qualister.com.br • Terceirização de profissionais • Consultoria de teste • Avaliação de usabilidade • Automação de testes • Testes de performance • Treinamentos Treinamento Automação de testes com Selenium www.qualister.com.br
  • 2.
    Quer saber mais? Estessão apenas alguns slides do curso de automação de testes com selenium Para maiores informações e novas turmas, visite nosso site: http://www.qualister.com.br/cursos www.qualister.com.br
  • 3.
  • 4.
    Instrutor Elias Nogueira Email: elias.nogueira@gmail.com Blog:http://sembugs.blogspot.com Arquiteto de Teste de Software com ênfase em automação de Teste. Atualmente trabalha como Consultor Técnico na linha de ALM da Hewlett Packard e Consultor em Automação e Teste e Instrutor na Qualister. Possui a certificação CSTE – Certified Software Tester pela QAI e possui uma Pos Graduação em Teste de Software Já deu diversas palestras sobre Java e Teste de Software. Ativo na comunidade de Teste também coordenou alguns eventos e encontros de testes, como no Testadores e no The Developers Conference @eliasnogueira http://sembugs.blogspot.com http://slideshare.net/elias.nogueira http://about.ne/eliasnogueira www.qualister.com.br
  • 5.
    Sobre a Qualister • Fundação: 2007. • Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união de profissionais qualificados e certificados na área de testes e qualidade de software, com o objetivo de integrar, implementar e implantar soluções com base nas melhores práticas do mercado e normas internacionais. • Colaboradores: A Qualister é composta por colaboradores pós-graduados e certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de Tecnologia da Informação. • Área de atuação: A Qualister é uma empresa especializada em serviços de qualidade e teste de software. Tem como linhas de atuação consultoria em teste/qualidade de software, outsourcing (terceirização dos serviços através da alocação de profissionais) e treinamentos. www.qualister.com.br
  • 6.
    Parcerias internacionais Soluções para automação, profilling e gestão Soluções para testes de performance Soluções de apoio a avaliação de usabilidade www.qualister.com.br
  • 7.
    O que éo Selenium? www.qualister.com.br
  • 8.
    O que éo Selenium • Selenium é um conjunto de ferramentas para automação de browsers web • Atualmente é composto por 4 grandes projetos Selenium IDE Plugin do Firefox que permite a gravação e execução de ações efetuadas em uma página web Selenium Remote Control Permite o controle e execução de scripts em outros browsers e máquinas Também utilizarmos linguagens de programação para criar os scripts Selenium Webdriver Emula nativamente diversos browsers localmente ou em máquinas remotas através de programação Selenium Grid Habilita a execução de scripts simultaneamente em diferentes máquinas www.qualister.com.br
  • 9.
    O que éo Selenium • Nosso foco será no Selenium IDE e no Selenium Remote Control • O suporte a browsers é bem extenso, como Firefox, Internet Explorer, Opera, Safari e GoogleChrome • Também com suporte a linguagens de programação como: Java, C#, Python, PHP, Ruby e Perl • E suporte a Sistemas Operacionais: Windows, Linux, OsX e Solaris • Para saber mais sobre o suporte do Selenium acesse http://seleniumhq.org/about/platforms.html www.qualister.com.br
  • 10.
    O que éo Selenium • Uma grande dica é sempre acompanhar a página de documentação do Selenium, que é atualizada constantemente, bem como outros itens: • Documentação: http://seleniumhq.org/docs/ • Twitter: @SeleniumHQ • Lista de email: http://groups.google.com/group/selenium- users • Blog: http://seleniumhq.wordpress.com/ www.qualister.com.br
  • 11.
    Instalando o Selenium IDE www.qualister.com.br
  • 12.
    Instalando o SeleniumIDE • É um plugin para gravação e execução de testes pelo Firefox • O Selenium IDE instala SOMENTE no browser Firefox • Sempre verifique a página http://seleniumhq.org/download para encontrar a versão mais recente do Selenium IDE • O instalador é um Addon do Firefox, porém pode ser instalado separadamente baixando o arquivo .xpi e instalando off-line • Para versões beta do Firefox utilize o repositório do Selenium IDE http://xserve.openqa.org:8085/browse/IDE-EDITOR www.qualister.com.br
  • 13.
    Instalando o SeleniumIDE • Abra o Firefox e acesse o site http://seleniumhq.org/download • Clique sobre o link referente a versão atual do Selenium IDE, como mostra a imagem abaixo www.qualister.com.br
  • 14.
    Instalando o SeleniumIDE • Uma mensagem será apresentada no canto superior esquerdo do Firefox. Clique sobre o botão “Allow” (Permitir) • O download será executado. Aguarde o término da instalação do Addon www.qualister.com.br
  • 15.
    Instalando o SeleniumIDE • A tela de instalação do Addon do Selenium será apresentada. Aguarde por 5 segundos e no botão “Install Now” (Instalar Agora) www.qualister.com.br
  • 16.
    Instalando o SeleniumIDE • Agora no canto superior esquerdo mais uma mensagem para reiniciar o Firefox e validar a instalação do Addon do Selenium. Clique em “Restart Now” (Reiniciar) www.qualister.com.br
  • 17.
    Instalando o SeleniumIDE • Após o Firefox reiniciar vá até o menu Firefox/Web Developer/Selenium IDE para abrir o Selenium IDE www.qualister.com.br
  • 18.
    Instalando o SeleniumIDE • O Selenium IDE será aberto www.qualister.com.br
  • 19.
  • 20.
    Instalando o Firebug •Firebug é uma ferramenta de desenvolvimento web onde podemos editar, debug e monitorar CSS, HTML e Javascript em uma página web • Utilizaremos uma pequena funcionalidade do Firebug para nos ajudar em alguma automações com o Selenium www.qualister.com.br
  • 21.
    Instalando o Firebug •Acesse a página http://getfirebug.com • Clique sobre o “botão vermelho” “Install Firebug” • Você será direcionado para a página de download. Clique sobre o item recomendado para iniciar a instalação www.qualister.com.br
  • 22.
    Instalando o Firebug •Você será redirecionado para a ela de Add-ons do Firefox. Clique no botão Add to Firefox para iniciar a instalação www.qualister.com.br
  • 23.
    Instalando o Firebug •Uma mensagem aparecerá no canto superior esquerdo do browser. Clique no botão “Allow” (Permitir) • Aguarde o término do download www.qualister.com.br
  • 24.
    Instalando o Firebug •A tela de instalação do Addon do Firebug será apresentada. Aguarde por 5 segundos e no botão “Install Now” (Instalar Agora) www.qualister.com.br
  • 25.
    Instalando o Firebug •Agora no canto superior esquerdo mais uma mensagem para reiniciar o Firefox e validar a instalação do Addon do Firebug. Clique em “Restart Now” (Reiniciar) www.qualister.com.br
  • 26.
    Instalando o Firebug •Após o Firefox reiniciar vá até o menu Firefox/Web Developer/Firebug ou clique sobre o botão para habilitar a barra do Firebug www.qualister.com.br
  • 27.
    Firebug - Inspector •A maior funcionalidade do Firebug que utilizaremos para nos ajudar na automação com o Selenium é chamado de Inspector. • Podemos ativar o inspector pelo botão • Quando o ativamos passamos o mouse sobre qualquer elemento dentro da página web para visualizar o código-fonte do elemento que estiver apontado com a seta do mouse www.qualister.com.br
  • 28.
    Estrutura do Selenium IDE www.qualister.com.br
  • 29.
    Estrutura do SeleniumIDE URL inicial Barra de menu Suíte de Teste Estrutura e edição do script Informações gerais www.qualister.com.br
  • 30.
    Estrutura do SeleniumIDE • A URL Base é muito importante, pois quando iniciamos a gravação do script um comando chamado open é adicionado com o endereço da página, menos a base de acesso. • Com isso podemos trocar o endereço base e o script continua funcionando • A barra Fast Slow controla a velocidade do script. Procure utiliza-la somente em caráter de visualização das ações dos scripts. Aprenderemos como fazer esperar e não depender dessa funcionalidade do Selenium IDE www.qualister.com.br
  • 31.
    Estrutura do SeleniumIDE • A barra de TestCase lista todos os scripts criados e é onde podemos agrupar diversos scripts e salvar uma suíte de teste • O conjunto de Estruturação de Script é onde visualizamos os comandos que estão sendo gravados, onde também podemos editá-los • O painel de Informações Gerais apresenta o log de execução, referência de comandos entre outras informações www.qualister.com.br
  • 32.
    Selenese, a linguagemdo Selenium IDE • Todos os scripts gravados e salvos como TestCase são chamados de Selenese • Selenese é uma “linguagem” própria do Selenium através de comandos por palavras-chave (Keyword Driven) • A visualização do código-fonte nada mais é do que uma tabela HTML com a mesma visualização da tabela no Selenium IDE www.qualister.com.br
  • 33.
    Selenese, a linguagemdo Selenium IDE • As Suítes de Teste podem ser salvas com um único script ou com vários • A estrutura do código-fonte é nada mais que o caminho para cada script www.qualister.com.br
  • 34.
  • 35.
    Comandos Básicos • Existemuma série de comandos no Selenium IDE já prontos • Visualizamos estes comandos no próprio Selenium IDE pela combo Command www.qualister.com.br
  • 36.
    Comandos Básicos • Existembasicamente três divisões de comandos: de garantia ou verificação, de ação e gerais • Os comandos de garantia e verificação podem ser identificados como verify... ou assert... Ex: assertTextPresent garante que um determinado texto está contido na página • Asserts: garante que uma certa informação está na página, se não estiver falha e para a execução do script • Verifys: verifica se uma certa informação está na página, se não estiver marca o comando como erro e continua a execução do script www.qualister.com.br
  • 37.
    Comandos Básicos • Podemoschamar os comandos de ações os que mudam o comportamento da página como click, keys, mouse, etc... • Um ponto importante sobre o comando click é que podemos visualizar o comando clickAndWait... Isso indica que o clique mudou o comportamento da página e o Selenium fará uma espera até a página ser carregada • Todos os comandos que terminam com AndWait fazem uma espera até que a página seja 100% carregada ou que o tempo total de espera seja ultrapassado. Ele é configurado pelo menu Options/Options/Default timeout value... www.qualister.com.br
  • 38.
    Comandos Básicos • Asações gerais são qualquer outro comando específico dentro do Selenium • Sempre que precisarmos entender o que faz um comando selecionamos ele através da combo Command e a aba Reference é habilitada. Poderemos ver o que o comando realmente faz sobre a página ou sobre os elementos www.qualister.com.br
  • 39.
  • 40.
    Conceituação para Exercício1 • Locators: são formas de identificar um elemento dentro da página web. É um dos principais pontos que devemos entender no Selenium • Os locators podem ser do tipo: – Id: localização pelo ID de um elemento – Nome: localização pelo nome de um elemento – Xpath: localização ou por funções ou por navegação – Links: localização por um link na página – DOM: localização através de propriedades via javascript – CSS: localização por estilos www.qualister.com.br
  • 41.
    Conceituação para Exercício1 • Localização por ID • Encontra um elemento pelo atributo id • No exemplo abaixo o único elemento que podemos interagir pelo id é o form • Ex: id=loginForm www.qualister.com.br
  • 42.
    Conceituação para Exercício1 • Localização por Name • Encontra um elemento pelo atributo name • No exemplo abaixo podemos interagir com quatro elementos: campo de login e senha, botão de login e botão de limpar • Ex: id=username • Observação: como temos dois elementos com o mesmo nome (continue) o Selenium sempre pega o primeiro que encontra www.qualister.com.br
  • 43.
    Conceituação para Exercício1 • Localização por xpath • Encontra um elemento através da navegação entre os elementos • No exemplo abaixo podemos localiza qualquer elemento por xpath e de diversas formas.... • Ex: //input[3] irá encontrar o botão de login //input[@name=“continue” and @type=“button” ] irá encontrar o botão de limpar www.qualister.com.br
  • 44.
    Conceituação para Exercício1 • Localização por link • Encontra um elemento do link (href) de uma página • No exemplo podemos encontrar os dois links existentes • Ex: link=Continue localiza o link de Continue (“continue.html”) link=Cancel localiza o link de Cancel (“cancel.html”) www.qualister.com.br
  • 45.
    Conceituação para Exercício1 • Localização por DOM • Encontra um elemento através de javascript • No exemplo podemos encontrar qualquer elemento • Ex: documents.forms[0].password localiza o campo de password www.qualister.com.br
  • 46.
    Conceituação para Exercício1 • Localização por CSS • Encontra um elemento através de um estilo CSS ou navegação na página • No exemplo podemos encontrar qualquer elemento • Ex: css=input.required[type=“text”] localiza o elemento de usuário css=input[name=“password"] localiza o elemento de senha www.qualister.com.br
  • 47.
    Qual a melhorestratégia? • A melhor estratégia de localização está na ordem abaixo: – id – name – Link – CSS – DOM – Xpath • Embora CSS esteja em quarto, o Selenium IDE pega a grande parte dos elementos que não tenham ID ou name por CSS • Embora o Xpath esteja por último, existem funções que nos ajudam a localizar mais facilmente um elemento www.qualister.com.br
  • 48.
    Conceituação para Exercício2 • Comumente as páginas web utilizam funções em javascript para executarem determinadas tarefas • O Selenium tem diversos suportes para javascript, como os comandos abaixo: – addScript: adiciona um script javascript na página para execução do teste – assertEval: garante a avaliação de um resultado positivo de um javascript – assertNotEval: garante a avaliação de um resultado negativo de um javascript – fireEvent: simula um evento em um determinado elemento – runScript: executa um javascript – removeScript: remove uma tag script – storeEval: guarda o resultado de alguma ação via javascript – verifyEval: verifica a avaliação de um resultado positivo de um javascript – verifyNotEval: verifica a avaliação de um resultado negativo de um javascript – waitForEval: espera por algum resultado positivo de um javascript – waitForNotEval: espera por algum resultado negativo de um javascript www.qualister.com.br
  • 49.
    Conceituação para Exercício3 • Alertas são mensagens informativas em javascript que possuem apenas um botão de OK • Confirmações são mensagens em javascript esperando uma determinada ação de “sim/não” ou “ok/cancelar” • Existe uma série de comandos para cada tipo de mensagem, mas o que não devemos confundir é o tipo de cada um. Todos os comandos de alertas possuem a palavra alert, e as confirmações possuem a palavra confirmation www.qualister.com.br
  • 50.
    Conceituação para Exercício3 • Alertas – assertAlert: garante que um alerta apareceu validando pelo seu texto – assertAlertNotPresent: garante que um alerta não apareça validando pelo seu texto – assertAlertPresent: garante que qualquer alerta apareceu, independente do seu texto – storeAlert: guarda a mensagem/texto de um alerta – storeAlertPresent: guarda a mensagem/texto de um alerta presente na página – verifyAlert: verfica que um alerta apareceu validando pelo seu texto – verifyAlertPresent: verifica que um alerta apareça validando pelo seu texto – verifyAlertNotPresent: verifica que um alerta não apareça validando pelo seu texto – waitForAlert: espera por um alerta pelo seu texto – waitForAlertNotPresent: espera que um alerta não apareça mais na página – waitForAlertPresent: espera por qualquer alerta na página www.qualister.com.br
  • 51.
    Conceituação para Exercício3 • Os mesmos comandos do Alerta servem para as Confirmações e tem as mesmas ações, porém com o nome confirmation ou invés de alert • O único comando adicionar é chooseCancelOnNextConfirmation, que enviar um sinal para que o Selenium ao invés de clicar sobre o botão OK, clique sobre o botão Cancelar. www.qualister.com.br
  • 52.
    Conceituação para Exercício4 • Popups no Selenium tem o mesmo tratamento de janelas. • Vale salientar que o Selenium trabalha com janelas, mas não entende a troca de abas, logo se existirem mais de uma página ela deverá ser aberta em um novo browser • O Selenium possui os seguintes comandos para interagir com janelas – close: simula o click no botão close da janela ou popup – descelectPopup: tira o foco atual de uma popup – selectPopup: coloca o foco em uma popup – selectWindow: coloca o foco sobre uma janela ou popup – waitForPopUp: espera por uma determinada popup – windowFocus: coloca o foco sobre uma janela ou popup www.qualister.com.br
  • 53.
    Conceituação para Exercício5 • Uma página web possui uma série de elementos HTML. Alguns que podemos interagir diretamente como usuários da página e outros não. • Veremos alguns dos principais elementos de integração com a página, como: – Input: que pode ser: • Caixa de texto/Senha • Radion button • Checkbox – Combobox e ListBox – ListBox www.qualister.com.br
  • 54.
    Conceituação para Exercício6 • Expressões regulares são muito uteis no Selenium, onde temos três tipos de patterns (modos de uso): – Global – Expressões Regulares – Exatos • Os Globais podem utilizar a maioria dos caracteres coringa de expressões regulares e é util quando necessitamos interagir ou validar certos elementos que tem nomes em comum. • Utiliza o prefixo glob nos comandos Ex: click | link=glob: Pesquisar Relatorio * Neste exemplo ele encontra qualquer link com o que contenha o texto “Pesquisar Relatorio” como “Pesquisar Relatorio de Cliente”, Pesquisar “Relatório de Fornecedor,” etc.. www.qualister.com.br
  • 55.
    Conceituação para Exercício6 • As Expressões Regulares utilizam todos os recursos da expressão regular para localizar qualquer tipo de informação na página ou mesmo valida-las • Utiliza o prefixo regexp nos comandos Ex: clicar sobre um link que é uma data na página (21/01/2011) click | link=regexp: [0-9]{2}/[0-9]{2}/[0-9]{4} • Para saber mais de como utilizar os recursos de expressão regular consulte http://pt.wikipedia.org/wiki/Express%C3%A3o_regular www.qualister.com.br
  • 56.
    Conceituação para Exercício6 • Os Exatos são utilizados quando interagimos com algum elemento que tenha algum tipo de caracter especial utilizado por expressões regulares ou globais • Utiliza o prefixo exact nos comandos • Ex: Validação do texto “(1 U.S. dollar) * 1 Brazil real = 0.57241” assertTextPresent | exact:(1 U.S. dollar) * 1 Brazil real = 0.57241 www.qualister.com.br
  • 57.
    Conceituação para Exercício7 • Para efetuarmos esperas por eventos em Ajax deveremos utilizar comandos que iniciem com waitFor • Essa é a melhor forma de esperar por qualquer informação na página. Por padrão todas as esperas no Selenium IDE tem o tempo de 30 segundos. Depois disso um erro de timeout é apresentado • O ideal em uma página com requisições Ajax é entender qual a forma de retorno da requisição, seja apresentando um texto, apresentando uma imagem, um campo, etc... A partir dai pesquisamos pelo comando waitFor... mais apropriado • Ex: para uma requisição Ajax que, ao seu término, apresenta o botão de Remover e que tenha id=delete, podemos utilizar o comando: waitForElementPresent | id=delete www.qualister.com.br
  • 58.
    Conceituação para Exercício7 • O timeout do Selenium IDE é configurado pelo menu Option/Options... • O campo “Default timeout value of recorded command in miliseconds” quarda o tempo de espera em milisegundos, onde 10s = 10.000 ms www.qualister.com.br
  • 59.
    Conceituação para Exercício8 • Para encontrarmos certos tipos de elementos na página web podemos utilizar algumas funções do xpath • starts-with: útil quando um elemento tem um mesmo prefixo Ex: elemento como caixa de texto: id=name1345 click | //input[starts-with(@id,’name’)] • ends-with: útil quando um elemento termina com uma mesma informação Ex: elemento imagem: <img src=“icon_1234_small32x32.png /> click | //img[ends-with(@src,’small32x32.png’)] www.qualister.com.br
  • 60.
    Conceituação para Exercício8 • contains: muito útil para encontrarmos elementos que contenham certa informação. Ex: lista de informações onde cada uma é uma div, e queremos encontrar o valor “Fulano de Tal”: <div[id=123]>Fulano de Tal</div> • Comando para encontrar: //div[contains(text(),’Fulano de Tal’)] • Neste caso utilizamos também a função text(), para pegar o texto de cada elemento (neste caso uma div), assim todos os elementos são verificados e somente o que satisfaz a condição retorna www.qualister.com.br
  • 61.
    Conceituação para Exercício9 • Em diversos momentos é necessário garantir uma certa informação, que é nosso resultado esperado. • Muitas vezes a página possui a mesma informação em locais diferentes, mas precisamos garantir que a infomação está em um determinado local • É muito valido, neste cado, que coloquemos o caminho para esta informação através de xpath • Isso vai garantir que a informação que foi validada é a que esperamos • Veremos como esperar por uma informação em determinado local no exercício www.qualister.com.br
  • 62.
    Conceituação para Exercício10 • Este exercício utiliza a mesma lógica das esperas com Ajax • A dica para este exercício é identificar como é o comportamento de cada combo e utilizar os comandos para esperar pelas informações certas www.qualister.com.br
  • 63.
    Quer saber mais? Estessão apenas alguns slides do curso de automação de testes com selenium Para maiores informações e novas turmas, visite nosso site: http://www.qualister.com.br/cursos contato@qualister.com.br www.qualister.com.br