Curso treinamento automação de testes com selenium

  • 3,166 views
Uploaded on

Curso treinamento automação de testes com selenium. www.qualister.com.br

Curso treinamento automação de testes com selenium. www.qualister.com.br

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,166
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
14

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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?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/cursoswww.qualister.com.br
  • 3. Direitos autoraiswww.qualister.com.br
  • 4. InstrutorElias NogueiraEmail: elias.nogueira@gmail.comBlog: http://sembugs.blogspot.comArquiteto de Teste de Software com ênfase em automação de Teste. Atualmente trabalha como ConsultorTé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 deSoftwareJá deu diversas palestras sobre Java e Teste de Software. Ativo na comunidade de Teste tambémcoordenou alguns eventos e encontros de testes, como no Testadores e no The Developers Conference@eliasnogueirahttp://sembugs.blogspot.comhttp://slideshare.net/elias.nogueirahttp://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 usabilidadewww.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áquinaswww.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.htmlwww.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 IDEwww.qualister.com.br
  • 12. 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-EDITORwww.qualister.com.br
  • 13. 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 abaixowww.qualister.com.br
  • 14. 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 Addonwww.qualister.com.br
  • 15. 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
  • 16. 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
  • 17. Instalando o Selenium IDE• Após o Firefox reiniciar vá até o menu Firefox/Web Developer/Selenium IDE para abrir o Selenium IDEwww.qualister.com.br
  • 18. Instalando o Selenium IDE• O Selenium IDE será abertowww.qualister.com.br
  • 19. Instalando o Firebugwww.qualister.com.br
  • 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 Seleniumwww.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çãowww.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çãowww.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 downloadwww.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 Firebugwww.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 mousewww.qualister.com.br
  • 28. Estrutura do Selenium IDEwww.qualister.com.br
  • 29. Estrutura do Selenium IDE URL inicial Barra de menu Suíte de Teste Estrutura e edição do scriptInformações geraiswww.qualister.com.br
  • 30. 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 IDEwww.qualister.com.br
  • 31. 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çõeswww.qualister.com.br
  • 32. 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 IDEwww.qualister.com.br
  • 33. 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 scriptwww.qualister.com.br
  • 34. Comandos Básicoswww.qualister.com.br
  • 35. Comandos Básicos• Existem uma série de comandos no Selenium IDE já prontos• Visualizamos estes comandos no próprio Selenium IDE pela combo Commandwww.qualister.com.br
  • 36. 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 scriptwww.qualister.com.br
  • 37. 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
  • 38. 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 elementoswww.qualister.com.br
  • 39. Exercício 1www.qualister.com.br
  • 40. 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 estiloswww.qualister.com.br
  • 41. 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=loginFormwww.qualister.com.br
  • 42. 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 encontrawww.qualister.com.br
  • 43. 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 limparwww.qualister.com.br
  • 44. 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
  • 45. 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 passwordwww.qualister.com.br
  • 46. 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 senhawww.qualister.com.br
  • 47. 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 elementowww.qualister.com.br
  • 48. 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 javascriptwww.qualister.com.br
  • 49. 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 confirmationwww.qualister.com.br
  • 50. 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áginawww.qualister.com.br
  • 51. 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
  • 52. 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 popupwww.qualister.com.br
  • 53. 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 – ListBoxwww.qualister.com.br
  • 54. 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
  • 55. 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_regularwww.qualister.com.br
  • 56. 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.57241www.qualister.com.br
  • 57. 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=deletewww.qualister.com.br
  • 58. 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 mswww.qualister.com.br
  • 59. 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
  • 60. 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 retornawww.qualister.com.br
  • 61. 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íciowww.qualister.com.br
  • 62. 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 certaswww.qualister.com.br
  • 63. 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.brwww.qualister.com.br