0
SeleniumFrameworkTestes Automatizados emAplicações Web
Menú   Definição   Framework Selenium   Selenese   Referência do Selenium   Expandindo Selenium   Conclusão   Duvid...
Definição
O que é o Selenium? Suítede ferramentas de teste para sistemas web Diferentes   Abordagens de Automação de Testes Supor...
O que é o Selenium? Open    Source Muito   Flexível Simula   o comportamento do Usuário.
Selenium Framework
Framework SeleniumA   Suite Selenium é composta de:    Selenium Core:    Selenium IDE:    Selenium RC:    Selenium Gr...
Selenium Core Escrito       com JavaScript/DHTML, fazendo  com que possa rodar direto no browser Estápor baixo de toda f...
Selenium IDE IDE   Completa. Extensão   do Firefox. Grava, Edita e Reproduz as interações feitas no browser. Não Neces...
Selenium IDE Scripts       gravados em formato selenese  automaticamente Gera código para varias linguagens e  framework...
Selenium IDE
Selenium RC   Segue uma Arquitetura Cliente – Servidor   Servidor escrito em Java (portabilidade)   Flexibilidade de br...
Selenium RC Os   Clientes são Bibliotecas (Drivers) Atuam  como Interfaces entre a  linguagem de programação e o Servido...
Selenium Grid Escrito   em Java Testes    Paralelos em Múltiplas máquinas     Redução de tempo ( Testes Paralelos)    ...
Selenium Grid Roda  em Nuvem ou em Clusters de  Servidores Cluster:Servidor Hub distribui o teste para  várias maquinas ...
Selenium WebDriver Mais   nova ferramenta da Suite Selenium Integração   com a API WebDriver Selenium   2.0! 2.0?
Selenium WebDriver
Selenium WebDriver   Selenium 1.0 tinha dificuldades:   1. eventos de mouse teclado nativos   2. Same origin policy XSS...
Selenium WebDriver   Webdriver é rápido e limpo framework para    automação de teste de browser, criado por    Simon Stew...
Selenium WebDriver Selenium2.0 supera as dificuldades da versao anterior, tendo controle do Browser WebDriver   unido ao...
Selenese
Selenese Linguagem  de comandos para elaboração de Scripts de Teste dentro de tabelas HTML EstáPresente no Selenium Core...
Selenese Apresenta   o formato de tabela abaixo:        Comando 1    Alvo 1   Valor 1        Comando 2    Alvo 2   Valor ...
Selenese Alvos e valores são parametros a serem   usados em alguma função do Core Exemplo    de Caso de Teste com Selene...
Referência do Selenium
Revisão e ObservaçõesImportantes   Estrutura na IDE existem 3 campos comando,    alvo e valor, onde:       Comando: é o ...
Revisão e ObservaçõesImportantes   Diferença entre assert e verify:   Assert:       Pára a execução quando ocorre um er...
Revisão e ObservaçõesImportantes •   Comando waitFor :      Toda instrução que tiver o waitFor fica      esperando até que...
Revisão Prática e Dicas   Procurando por checkbox e radio Button específicos       Os checkboxes e os radiosButtons nem ...
Estrutura de pastas   Pasta config       Nesta pasta devemos colocar todos os arquivos        de configuração;       Di...
Elementos identificadores   São os elementos que indicam qual o    campo(id ou name) deve ser aplicada a    ação, onde po...
Identificadores: Identifier   Identifier (Identificador):       Esse elemento faz uma busca primeiro pelo        element...
Identificadores: Id/Name Id:     Elementos que procuram pelos respectivos      id: o Selenium só busca pelo id; Name:  ...
Identificadores: Dom Dom    Este elemento possibilita a utilização de     javascript para se identificar um elemento    ...
Identificadores: XPath   XPath       Esse elemento possibilita localizar de acordo        com expressões xpath       Ex...
Identificadores: Css   Css       Esse elemento torna possível localizar um        elemento utilizando regras do tipo css...
Expandindo o Selenium
Estrutura de Codificação Quando  não é possível automatizar com a IDE do selenium, o que fazer?    Utilizar o recurso de...
Selenium.prototype.do[NomeDoMetodo]•   Estrutura que cria uma nomeclatura para o Selenium    IDE. É possível chamar de dua...
Selenium.prototype.do[NomeDoMetodo]   * Método que realiza o check ou o uncheck    do locator     * @param locator string...
Selenium.prototype.do[NomeDoMetodo]   Observações importantes     Na  estrutura do Selenium é possível      informar até...
Selenium.prototype.do[NomeDoMetodo]   Passo-a-passo     Crio um arquivo javascript: o      UserExtensions.js;     Adici...
Selenium.prototype.do[NomeDoMetodo]
Métodos e Objetos auxiliares   Para se trabalhar com o Selenium é    necessário utilizar arquivos javascript, pois    exi...
Como Sobrescrever métodos da    API do Selenium IDE? Simples: API do Selenium IDE está  disponível: http://code.google.c...
Como Sobrescrever métodos da API do Selenium IDE?   /**    * Método que sobrescreve o comando type do Selenium, executan...
Conclusão
Duvidas?
Autores André  Fernandes de Caldas Lysianne Couto Andrade Wellington Narciso
Referências   http://seleniumhq.org/   http://en.wikipedia.org/wiki/Selenium_(softwa    re)   http://wiki.openqa.org/di...
Referências   http://release.seleniumhq.org/selenium-    core/1.0.1/reference.html   http://wiki.openqa.org/display/SEL/...
98796699 selenium-framework
98796699 selenium-framework
Upcoming SlideShare
Loading in...5
×

98796699 selenium-framework

1,763

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,763
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
39
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "98796699 selenium-framework"

  1. 1. SeleniumFrameworkTestes Automatizados emAplicações Web
  2. 2. Menú Definição Framework Selenium Selenese Referência do Selenium Expandindo Selenium Conclusão Duvidas? Autores Referências
  3. 3. Definição
  4. 4. O que é o Selenium? Suítede ferramentas de teste para sistemas web Diferentes Abordagens de Automação de Testes Suporta Vários Browsers e S.Os
  5. 5. O que é o Selenium? Open Source Muito Flexível Simula o comportamento do Usuário.
  6. 6. Selenium Framework
  7. 7. Framework SeleniumA Suite Selenium é composta de:  Selenium Core:  Selenium IDE:  Selenium RC:  Selenium Grid:  Selenium WebDriver(Novo):
  8. 8. Selenium Core Escrito com JavaScript/DHTML, fazendo com que possa rodar direto no browser Estápor baixo de toda funcionalidade do Selenium RC e IDE. Usauma linguagem de comando chamada Selenese (será explicado depois)
  9. 9. Selenium IDE IDE Completa. Extensão do Firefox. Grava, Edita e Reproduz as interações feitas no browser. Não Necessita conhecer nenhuma Linguagem de Programação
  10. 10. Selenium IDE Scripts gravados em formato selenese automaticamente Gera código para varias linguagens e frameworks de testes Bom para aprender sobre a API do Selenium
  11. 11. Selenium IDE
  12. 12. Selenium RC Segue uma Arquitetura Cliente – Servidor Servidor escrito em Java (portabilidade) Flexibilidade de browsers Algumas das tarefas atribuídas ao Servidor são:  Receber requisições HTTP  Lançar e fechar browsers  Interpretar comandos Selenese  Proxy HTTP
  13. 13. Selenium RC Os Clientes são Bibliotecas (Drivers) Atuam como Interfaces entre a linguagem de programação e o Servidor Possibilita teste mais robustos Flexibilidade de Linguagens de Programação
  14. 14. Selenium Grid Escrito em Java Testes Paralelos em Múltiplas máquinas  Redução de tempo ( Testes Paralelos)  Múltiplas combinações de Ambientes (Browsers e S.Os)
  15. 15. Selenium Grid Roda em Nuvem ou em Clusters de Servidores Cluster:Servidor Hub distribui o teste para várias maquinas rodando Selenium RC Nuvem: Testes podem ser rodados em servidores nas Nuvens.
  16. 16. Selenium WebDriver Mais nova ferramenta da Suite Selenium Integração com a API WebDriver Selenium 2.0! 2.0?
  17. 17. Selenium WebDriver
  18. 18. Selenium WebDriver Selenium 1.0 tinha dificuldades: 1. eventos de mouse teclado nativos 2. Same origin policy XSS/HTPP(S) 3. Pop-ups, dialogs(Basic Auth;Certificados auto-assinados; dowload/upload de arquivos)
  19. 19. Selenium WebDriver Webdriver é rápido e limpo framework para automação de teste de browser, criado por Simon Stewart WebDriver suportava poucos browsers(IE, Firefox) Não suportava Testes Paralelos
  20. 20. Selenium WebDriver Selenium2.0 supera as dificuldades da versao anterior, tendo controle do Browser WebDriver unido ao Selenium ganha:  Testes em Paralelo (Selenium Grid)  Multiplicidade de Browsers
  21. 21. Selenese
  22. 22. Selenese Linguagem de comandos para elaboração de Scripts de Teste dentro de tabelas HTML EstáPresente no Selenium Core, que é incluído pelo Selenium IDE e RC Cada comando representa uma linha desta tabela, fazendo referencia a uma função da biblioteca do Selenium Core
  23. 23. Selenese Apresenta o formato de tabela abaixo: Comando 1 Alvo 1 Valor 1 Comando 2 Alvo 2 Valor 2 Comando n Alvo n Valor n
  24. 24. Selenese Alvos e valores são parametros a serem usados em alguma função do Core Exemplo de Caso de Teste com SeleneseMyTestopen /mypagetype nameField John Smithclick submitButton TrueverifyText name John Smith
  25. 25. Referência do Selenium
  26. 26. Revisão e ObservaçõesImportantes Estrutura na IDE existem 3 campos comando, alvo e valor, onde:  Comando: é o local onde se digita a instrução a ser executada;  Alvo: é o primeiro parâmetro da função a ser executada. As funções do selenium utilizam este parâmetro para informar qual é o id/name a ser buscado;  Valor: é o campo que também é utilizado para identificar, onde a forma de identificação é feita pelo valor, “o campo contém um valor”.
  27. 27. Revisão e ObservaçõesImportantes Diferença entre assert e verify: Assert:  Pára a execução quando ocorre um erro;  Mais utilizado para verificar se está na página correta Verify:  Loga o erro, caso exista, sem parar a execução do teste;  Mais para analisar os itens da página.
  28. 28. Revisão e ObservaçõesImportantes • Comando waitFor : Toda instrução que tiver o waitFor fica esperando até que uma outra instrução retorne um valor(true or false) para que a mesma saia dessa espera.
  29. 29. Revisão Prática e Dicas Procurando por checkbox e radio Button específicos  Os checkboxes e os radiosButtons nem sempre possuem um id;  No entanto, sempre possuem um name igual aos outros;  Para selecionar, precisa-se de um parâmetro diferenciador, que nesse caso existe o value do mesmo, logo é necessário selecionar utilizando 2 tipos de parâmetros ;  Dica: utilizar o xpath, pois ele consegue buscar pelo name e o value ao mesmo tempo, exemplo:  //input[@name=situacao and @value=2]  Ele busca por um input que possua um nome situação e o valor específico igual a 2;  Logo é possível identificar e clicar, por exemplo, em um radio ou checkbox.
  30. 30. Estrutura de pastas Pasta config  Nesta pasta devemos colocar todos os arquivos de configuração;  Dica: deve ser criado um arquivo com as configurações mais utilizadas:  Selenium.base: é a primeira url em que o teste vai acessar;  Dessa forma, deve ser configurado no arquivo de configuração e não nos arquivos de teste;  Exemplo:  <link rel="selenium.base" href="https://trunk.voxtecnologia.com.br" />
  31. 31. Elementos identificadores São os elementos que indicam qual o campo(id ou name) deve ser aplicada a ação, onde pode-se ter:  Identifier = [id ou nome]  id = [id]  name = [nome]  dom = [expressão javascript]  xpath = [expressão a ser aplicada]  link = [nome da âncora]  css = [regra de css2 ou css3]  ui = [regra específica string] UI-Elements
  32. 32. Identificadores: Identifier Identifier (Identificador):  Esse elemento faz uma busca primeiro pelo elemento id, onde caso não seja possível encontrar, faz a devida busca pelo elemento name. Ex: identifier = bola Procura primeiro pelo id=”bola”, caso não encontre tal id o selenium procura pelo name=”bola”.
  33. 33. Identificadores: Id/Name Id:  Elementos que procuram pelos respectivos id: o Selenium só busca pelo id; Name:  Elementos que procuram pelos respectivos name: o Selenium só busca pelo name do item requisitado.
  34. 34. Identificadores: Dom Dom  Este elemento possibilita a utilização de javascript para se identificar um elemento na página;  Possibilidade em capturar um elemento;  Possibilidade em executar funções javascript.  Ex: dom=document.getElementById(login) Procura na pagina um elemento que tenha o id login.
  35. 35. Identificadores: XPath XPath  Esse elemento possibilita localizar de acordo com expressões xpath  Ex: xpath=//input[@id=login] Procura na página um elemento que tenha o id login.  Ex: xpath=//input[@id=login and @class=campo-texto] Procura na página um elemento com o id login e a classe campo-texto.
  36. 36. Identificadores: Css Css  Esse elemento torna possível localizar um elemento utilizando regras do tipo css, onde pode ser css2 ou css3;  Boa dica: utilizar das propriedades ^=(inicia com), $=(termina com) e *=(possui em) como medida de busca por um elemento.  Ex css: css=a[title=${sistema}] Procura na página pelo elemento a onde possuia o titulo gravado na variável sistema.
  37. 37. Expandindo o Selenium
  38. 38. Estrutura de Codificação Quando não é possível automatizar com a IDE do selenium, o que fazer?  Utilizar o recurso de inclusão de arquivos javascript, onde para acessar no selenium necessita respeitar uma estrutura básica de chamada do objeto:  Selenium.prototype.do[NomeDoMetodo]
  39. 39. Selenium.prototype.do[NomeDoMetodo]• Estrutura que cria uma nomeclatura para o Selenium IDE. É possível chamar de duas formas:  nomeDoMetodo: não espera por uma instrução ter um resultado para continuar a execução do caso de teste.  nomeDoMetodoAndWait : espera por uma instrução ter um resultado para continuar a execução do caso de teste.
  40. 40. Selenium.prototype.do[NomeDoMetodo] * Método que realiza o check ou o uncheck do locator * @param locator string * @param value bool */ Selenium.prototype.doCheckByValue = function(locator, value){ value == true ? value = checked : value = ; this.page().findElement(locator).checked = value; }
  41. 41. Selenium.prototype.do[NomeDoMetodo] Observações importantes  Na estrutura do Selenium é possível informar até dois parâmetros;  Quando é criado o método é necessário colocar o “do” antes do nome do mesmo, onde o doTeste na IDE do Selenium o, método a ser chamado é o teste.
  42. 42. Selenium.prototype.do[NomeDoMetodo] Passo-a-passo  Crio um arquivo javascript: o UserExtensions.js;  Adiciono os métodos, seguindo o padrão: Selenium.prototype.do[NomeDoMeto do], conforme explicações anteriores;  Adiciono no Selenium IDE, conforma imagem seguinte
  43. 43. Selenium.prototype.do[NomeDoMetodo]
  44. 44. Métodos e Objetos auxiliares Para se trabalhar com o Selenium é necessário utilizar arquivos javascript, pois existem casos que o próprio Selenium não consegue automatizar sem o auxílio de javascript; Nesse contexto, é recomendado que se utilize uma escrita de código fora do padrão do Selenium; Dessa maneira, os métodos podem ser chamados sem a limitação de tamanho e os mesmos não possuem a necessidade de serem chamados na IDE do Selenium.
  45. 45. Como Sobrescrever métodos da API do Selenium IDE? Simples: API do Selenium IDE está disponível: http://code.google.com/p/selenium/sour ce/search?q=dotype&origq=dotype&btn G=Search+Trunk (svn selenium); Basta no arquivo js UserExtensions.js colocar o método sobrescrevendo o da API; O método a ser chamado é o seu!
  46. 46. Como Sobrescrever métodos da API do Selenium IDE? /** * Método que sobrescreve o comando type do Selenium, executando somente * se o valor não for vazio ou nulo */ Selenium.prototype.doType = function(locator, value) { if(value == || value == null) return ; if (this.browserbot.controlKeyDown || this.browserbot.altKeyDown || this.browserbot.metaKeyDown) { throw new SeleniumError("type not supported immediately after call to controlKeyDown() or altKeyDown() or metaKeyDown()"); } // TODO fail if it cant be typed into. var element = this.browserbot.findElement(locator); if (this.browserbot.shiftKeyDown) { value = new String(value).toUpperCase(); } this.browserbot.replaceText(element, value);
  47. 47. Conclusão
  48. 48. Duvidas?
  49. 49. Autores André Fernandes de Caldas Lysianne Couto Andrade Wellington Narciso
  50. 50. Referências http://seleniumhq.org/ http://en.wikipedia.org/wiki/Selenium_(softwa re) http://wiki.openqa.org/display/SIDE/Home http://svn.openqa.org/fisheye/browse/~raw,r =2184/selenium/website/src/main/webapp/in stalling.html http://stackoverflow.com/questions/3380682/ what-exactly-is-selenese-html
  51. 51. Referências http://release.seleniumhq.org/selenium- core/1.0.1/reference.html http://wiki.openqa.org/display/SEL/Contribute d+User-Extensions http://colab.mpdl.mpg.de/mediawiki/images /1/16/Pubman_and_Selenium_tests.ppt http://bharath- marrivada.blogspot.com.br/2011/02/selenium 10-vs-selenium20.html
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×