Teste Automatizado com Selenium Silas Fellipe M. da Silva
[email protected]
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Automação de Testes Automatizar os testes nada mais é do que repassar para o computador as atividades de testes que normalmente são realizadas de forma manual A automação de testes deve ser iniciada a partir de um processo manual de teste já estabelecido e maduro O teste automático só vale a pena se repetido várias vezes. Exceto para casos onde cálculos monstruosos são realizados
A execução dos testes automáticos não substitui a execução dos testes manuais, eles se complementam
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
O que é o Selenium Selenium é um conjunto de ferramentas para automação Atualmente é composto por 4 grandes projetos Selenium IDE
Selenium Remote Control
– Permite o controle e execução de scripts em outros browsers
Selenium WebDriver
– Emula nativamente diversos browsers localmente ou em máquinas remotas
Selenium Grid
– Habilita a execução de scripts simultaneamente em diferentes máquinas
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
O que é o Selenium Nosso foco será o Selenium IDE e um pouco sobre WebDriver O suporte a browser é bem extenso, como Firefox, Internet Explorer, Opera, Safari e Google Chrome 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
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Selenium IDE É um plugin para gravação e execução de testes
O Selenium IDE instala SOMENTE no browser Firefox O instalador é um Addon do Firefox, porém pode ser instalado separadamente baixando o arquivo .xpi e instalado off-line
Para versões beta do Firefox utilize o repositório do selenium IDE http://xserve.openqa.org:8085/browse/IDE-EDITOR
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Selenium IDE Para a instalação abra o Firefox e acesse o site: http://seleniumhq.org/download Clique sobre o link referente a versão atual do Selenium IDE
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Selenium IDE Uma mensagem será apresentada no canto superior esquerdo do Firefox. Clique sobre o botão “Allow” (Permitir)
O download será executado
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do 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)
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do 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)
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Selenium IDE Após o Firefox reiniciar vá até o menu Firefox/Web Developer/Selenium IDE para abrir o Selenium IDE
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Selenium IDE O Selenium IDE será aberto
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Firebug O Firebug é uma ferramenta de desenvolvimento web onde podemos editar, debugar e monitorar CSS, HTML e Javascript em uma página web Utilizaremos uma pequena funcionalidade do Firebug para nos ajudar nas automações com o Selenium Acesse a página http://getfirebug.com Clique sobre o botão vermelho “Install Firebug”
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Firebug 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
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Firebug Você será redirecionado para a tela de Add-nos do Firefox. Clique no botão “Add to Firefox” para iniciar a instalação Uma mensagem aparecerá no canto superior esquerdo do browser. Clique no botão “Allow” (Permitir)
Aguarde o término do download e depois clique em “Instal Now” (Instalar) CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Instalação do Firebug Agora no canto superior esquerdo irá aparecer uma outra mensagem, agora para reiniciar o Firefox
Espero o Firefox reiniciar e abra o Firebug
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Firebug - Inspector A maior funcionalidade do Firebug que iremos utilizar para ajudar na automação com Selenium é chamado de Inspector Podemos ativar o inspector pelo botão Quando ativado, basta passar 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
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Estrutura do Selenium - IDE URL inicial Suíte de Teste
Informações Gerais CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Barra de menu Estrutura e edição do script
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
A barra Fast Slow controla a velocidade do script Procure utiliza-la somente em caráter de visualização das ações dos scripts A barra de execução de script de teste controla a execução de apenas o teste selecionado ou da Suite
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Estrutura do Selenium - IDE A barra de Suite de Teste lista todos os scripts criados e é onde podemos agrupar diversos scripts e salvar uma suíte de teste
A Estrutura e edição do script é onde visualizamos os comandos que estão sendo gravados, onde também podemos editá-los
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Estrutura do Selenium - IDE O painel de Informações Gerais apresenta o log de execução, referência de comandos entre outras informações
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.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 A visualização do código-fonte nada mais é do que uma tabela em HTML com a mesma visualização da tabela no Selenium IDE
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE – Comandos Básicos Existe uma série de comandos no Selenium IDE já prontos Visualizamos estes comandos no próprio Selenium IDE pelo Comando
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE – 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
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE – Comandos Básicos O mais utilizado é o Assert. Pois se não encontrar o elemento na tela, o script para No WebDriver não existe o comando Verify Podemos chamar os comandos de ações os que mudam o comportamento da página como click, keys, mouse, etc...
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE – 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 comando e a aba Reference é habilitada.
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Conceituação - Locators Locators: são formas de identificar um elemento da página web 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ção ou por navegação – Links: localização por um link na página – CSS: localização por estilos
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Conceituação - Locators Usando o Firebug descobriremos o ID do elemento que desejamos interagir
– id=“txt-buscar”
No mesmo exemplo é possível também identificar um elemento por outro locator, o name – name=“buscar”
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação Ao executar o script ocorre um erro
O erro informa que o elemento não foi encontrado Mas o elemento está na tela!! Se eu colocar para executar devagar ele executa sem problema!!
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação Esse tipo de erro é bastante comum nos testes automatizados Mas como resolver? Vamos entender o que aconteceu
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação Depois do clique (click) no resultado da consulta, o próximo passo do teste é verificar (assert) o texto Como a página ainda não está carregada, o Selenium indica que o elemento em verificação não existe Para resolver esse tipo de problema, tem um comando no Selenium que é o 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 máximo de 30 segundos, podendo ser configurada Agora temos que identificar qual é o elemento que iremos aguardar
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação Depois de identificado o elemento, o comando mais apropriado para o nosso exemplo é o waitForElementPresent Ele faz que o script espere que o elemento seja carregado na tela, e só assim passa para o próximo passo O comando fica assim
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Gravação O script deverá ficar conforme abaixo
Executando o script, não apresentará mais erro
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Exemplo
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven Data Driven é o nome dado a abordagem dirigida a dados. Isso quer dizer que um script Data Driven não terá dados fixos, e sim parâmetros para receber qualquer dado Uma fonte de dados se faz necessária para guardar os dados que serão utilizados Além disso, o script executa o número de vezes igual a quantidade de dados na fonte de dados Com Selenium IDE o Data Driven usa como fonte de dados arquivo XML, onde há um formato específico para armazenar estes dados Além disso três extensões se faz necessárias para que o script do Selenium IDE saiba trabalhar com os dados CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven Essa é uma alternativa rápida quando queremos:
– Gerar massa de dados na aplicação – Testar uma grande quantidade de vezes o mesmo script com dados diferentes
Iremos precisar de:
– Flow Control/Side Flow https://github.com/darrenderidder/sideflow – IncludeCommand4IDE http://wiki.openqa.org/download/aQachments/283/includeCo mmand4IDE_1_1.zip
– DataDriven http://wiki.openqa.org/download/aQachments/14975018/data driven_v0.2.zip
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Configurar Data Driven Depois de baixar os arquivos, temos que adicioná-los ao Selenium IDE Vá até o menu Opções/Opções e clique sobre o botão Procurar para Selenium Core extensions (userextensions.js)
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven Após ter adicionado os três arquivos .js, feche o Selenium e abra novamente. Nenhum erro pode ocorrer e o caminho para todos os arquivos estão separados por vírgula Um arquivo XML deve ser criado para que seja possível ligar com o script em HYML do Selenium.
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven
A tag
representa um conjunto de dados. Não pode ter seu nome alterado. No final do arquivo fechamos a tag
Dentro do
podem haver diversos . Eles representam os registros de massa de dados. Colocamos as propriedades necessárias, que viram automaticamente variáveis no Selenium, onde as utilizaremos através do $(variável) CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven loadTestData | file:///C:/arquivo.xml chamada do arquivo de massa de dados while | !testdata.EOF() deve ser colocado no inicio do laço nextTestData comando que pegará o próximo registro da massa de dados sendKeys | id= txtNome | ${nome} substituir os dados fixos pelas propriedades do no arquivo de massa de dados endWhile deve ser colocado na finalização do laço CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Selenium IDE- Data Driven Exemplo
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver É uma API (Application Programming Interface)
Executa ações em diversos browser Tem que ter noção de programação, pois iremos programas os scripts de teste Pode ser desenvolvido nas seguintes linguagens nativamente
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver Sempre que usamos o WebDriver devemos informar qual browser web iremos utilizar
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver Esses browsers precisam de um “intermediador” para entender os comandos que serão executados Geralmente o intermediador é disponibilizado em forma de API e/ou executável
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver - Configuração Adicionar referencia do Selenium no Visual Basic
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver - Configuração Selecionar as DLL’s
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver - Configuração Adicionar referencia do Selenium no Visual Basic
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver É necessário importar algumas bibliotecas para usar os comandos do Selenium no Visual Studio
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
WebDriver A classe WebDriver é o ponto de partida para: – Abrir o browser web
– Navegar entre páginas do browser – Interrogar elementos – Manipular elementos
A execução deste código abre o Firefox e acessa a página do Selenium
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver – Exemplo Script
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver – Exemplo Script
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver – Exemplo Script
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver – Exemplo Script
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver O WebDriver usa praticamente todos os comando do Selenium IDE Para encontrar um elemento (findElement) é necessário informar a estratégia de localização que é utilizada através da palavra By (por)
Nome para manipulação do elemento
Procurar o elemento na tela
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Estratégia da procura
WebDriver Outras estratégias que podemos utilizar para encontrar um elemento:
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
WebDriver - Exemplos
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Dificuldades em Automatizar Mudança na sprint
Mudança de requisito Mudança do código Garantir que o teste execute nos principais navegadores, pois cada um tem suas particularidades Elementos com ID's dinâmicos Elementos com ID’s com nomes que não representam a funcionalidade
As esperas
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Analista de Teste Ferramentas de Automação não substituirão o trabalho manual O analista de teste precisa ter noção de programação A automação não é só a utilização de ferramentas record & play
Precisamos avaliar quais são os problemas que estamos querendo resolver com a automação (automatizar por automatizar é besteira)
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Automação não fazem milagres
Automação não encontra Bug’s Automação só faz o que programamos
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br
Dúvidas
[email protected]
CORPORATIVO – versão: 1 | jan/2007 Gestor: TIC/ADS-TI/PGOD/CSQE
http://bugs-busters.blogspot.com.br