• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Curso treinamento automação de testes com selenium
 

Curso treinamento automação de testes com selenium

on

  • 3,121 views

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

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

Statistics

Views

Total Views
3,121
Views on SlideShare
3,119
Embed Views
2

Actions

Likes
13
Downloads
1
Comments
0

1 Embed 2

https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Curso treinamento automação de testes com selenium Curso treinamento automação de testes com selenium Presentation Transcript

    • (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/cursoswww.qualister.com.br
    • Direitos autoraiswww.qualister.com.br
    • 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
    • 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 usabilidadewww.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áquinaswww.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.htmlwww.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 IDEwww.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-EDITORwww.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 abaixowww.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 Addonwww.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 IDEwww.qualister.com.br
    • Instalando o Selenium IDE• O Selenium IDE será abertowww.qualister.com.br
    • Instalando o Firebugwww.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 Seleniumwww.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çãowww.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çãowww.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 downloadwww.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 Firebugwww.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 mousewww.qualister.com.br
    • Estrutura do Selenium IDEwww.qualister.com.br
    • Estrutura do Selenium IDE URL inicial Barra de menu Suíte de Teste Estrutura e edição do scriptInformações geraiswww.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 IDEwww.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çõeswww.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 IDEwww.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 scriptwww.qualister.com.br
    • Comandos Básicoswww.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 Commandwww.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 scriptwww.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 elementoswww.qualister.com.br
    • Exercício 1www.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 estiloswww.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=loginFormwww.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 encontrawww.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 limparwww.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 passwordwww.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 senhawww.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 elementowww.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 javascriptwww.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 confirmationwww.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áginawww.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 popupwww.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 – ListBoxwww.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_regularwww.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.57241www.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=deletewww.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 mswww.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 retornawww.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íciowww.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 certaswww.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.brwww.qualister.com.br