Professional Documents
Culture Documents
Pages / … / Unyleya Referências
SeleniumIDE Criando scripts de teste
Created by Joao Leite, last modified on 25/11/2016
Nome SeleniumIDE Criando os scripts de teste
Sigla Selenium/ Working
Status do Documento RASCUNHO
Responsável do Documento @ Joao Leite
Versão 0.1
Arquivos Anexo/Referências Gestão de Mudança
Processo de Teste e Qualidade de Software
Sobre o SeleniumIDE
Introdução ao SeleniumIDE
Principais Dificuldades
Automatizando testes noções essenciais
8 Dicas para uma escrita de casosdetestes
Selenese comandos do selenium
Selenium Guia rápido
Selenium Comandos de ação
Selenium Comandos de validação (assertion)
Objetivo
Este documento tem como objetivo apresentar um exemplo do passoapasso para a elaboração de um script no SeleniumIDE, com foco no seu reaproveitamento para a execução de testes
automatizados.
Contextualização
O SeleniumIDE poderia ser comparado a uma ferramenta de gravação de ações num webbrowser, entretanto, não se limita apenas a esta característica, pois o ele é uma IDE completa. O usuário pode
optar por usar a sua capacidade de gravação; pode editar seus scripts à mão tanto com o auxílio da IDE, quanto diretamente, via códigofonte; pode qualificar os diversos eventos ocorridos por meio dos
identificadores disponíveis na ferramenta (validação de mensagens de retorno, presença de objetos em tela...). Com a opção de autocomplete e a capacidade de mover a sequência de comandos
rapidamente, o SeleniumIDE é um ambiente que independe do estilo de testes que se necessita. Outro ponto importante, é sua capacidade de integração com outras API´s/ferramentas, por exemplo,
o Cucumber, que é uma ferramenta que suporta Behavior Driven Development (BDD), que consiste em descrever o comportamento de um usuário.
Características:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 1/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
Fácil procedimento de gravação e reprodução;
Possui opção para seleção inteligente de campos identificando IDs, nomes ou XPath, conforme necessário;
Autocomplete para todos os comandos comuns de selênio;
Navegação através de testes gravados;
Possibilita pontos de interrupção para depuração;
Possibilidade de gravação dos testes como HTML, scripts Ruby, entre outros;
Suporte para arquivos Selenium userextensions.js;
Opção para validar automaticamente o título de cada página
Integração com outros plugins.
Premissas e PréRequisitos:
Navegador MozillaFirefox devidamente instalado (http:\\www.mozilla.org/firefoxdownload);
Roteiro de testes devidamente elaborado (contemplando inclusive as pré e pós condições do teste e de aceitação, títulos de página, mensagens a serem apresentadas, entre outras referências);
Referência às bases e/ou banco de dados de teste;
Por onde começar?
Para a elaboração de uma lista de casos de testes eficientes e eficazes, antes, necessitamos conhecer mais sobre o foco dos testes (O que, como, quando), logo, necessitamos de boas referências.
Explorando um pouco mais, ressaltase a necessidade de uma percepção bem apurada sobre as dependências e interconexões entre as funcionalidadesfoco do teste (ou seja, é necessário conhecer as
etapas do processo sendo abordado, entradas e saídas, objetivos, pré e pós condições de cada cenário e, os impactos a partir de cada contexto.
Não obstante ao fato de que, a maioria dos projetos possuem prazos/recursos limitados para esforços direcionados à qualidade, onde o bomsenso é o principal norteador, listase abaixo, um pequeno
roteiro para auxiliar na elaboração dos casos de teste:
a. Material de referência: Reunir todas as referências sobre o foco dos testes (Casos de Uso, Documentos de Regras de negócio e apresentação, Estórias de usuário, Protótipos, MER...);
b. Visão do processo: Criar uma referência visual acerca do macroprocesso que contém as funcionalidades de escopo do teste e suas dependências;
c. Organização da funcionalidades: Listar e sequenciar as funcionalidades envolvidas no escopo do teste, buscando identificar suas dependências e interconexões;
d. Organização dos Cenários: Organizar e sequenciar os cenários de teste de tal forma que, quando necessário, as saídas de um Cenário possam ser combinadas como entrada de um
segundo;
e. Listagem dos objetivos e Regras por Cenário: Identificar e listar os objetivos e regras de negócio de cada Cenário, visando um melhor embasamento para os casos de teste;
f. Visão dos casos de teste: Criar uma referência visual acerca do fluxo de ações dos casos de teste, observando seus objetivos e regras do escopo do teste (utilizese de diagramas de
atividades, estados...);
g. Organização dos casos de teste: Numerar, nomear e registrar os casos de teste;
h. Automatização: Elaborar os scripts de teste, visando seu reaproveitamento a partir de processos automatizados.
Criando scripts para testes automatizados
A título de exemplo, utilizaremos um cenário simples "Realizar Login" (a partir do fluxo utilizado pelo Gmail tomadoo como um protótipo), abordando um conjunto limitado de casos de teste. Veja o
exemplo abaixo:
1. Material de referência:
a. Funcionalidade: Login
b. Cenário: Realizar Login
c. Listagem dos objetivos, regras de negócio e demais referências:
i. Objetivo: Validar credenciais de acesso (por meio de Email e senha, previamente cadastrados), fornecendo navegabilidade intuitiva e mensagens explicativas quando em fluxos
excepcionais;
ii. Regras de apresentação:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 2/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
1. RA01: A validação de credenciais de acesso ocorrerá em duas etapas;
2. RA02: (1ª etapa:) Ao acessar a aplicação, o sistema solicitará a informação de "Email" e disponibilizará a opção para "prosseguir";
3. RA03: (2ª etapa:) O sistema apresentará o Email informado na 1ª etapa e, solicitará a informação de "Senha" e disponibilizará a opção para "fazer login".
iii. Regras de negócio:
1. RN01: (1ª etapa:) Se o usuário não informar um Email e clicar na opção "Proximo", o sistema deverá apresentar a mensagem "Insira seu Email.";
2. RN02: (1ª etapa:) Se o usuário informar um Email inválido e clicar na opção "Proximo", o sistema deverá apresentar a mensagem "Insira um endereço de Email válido.";
3. RN03: (1ª etapa:) Se o usuário informar um Email não cadastrado e clicar na opção "Proximo", o sistema deverá apresentar a mensagem "O Google não reconhece o e
mail.";
4. RN04: (1ª etapa:) Se o usuário informar um Email válido/cadastrado e clicar na opção "Proximo", o sistema deverá encaminhar o usuário à 2ª etapa da validação de
credenciais de acesso;
5. RN05: (2ª etapa:) Se o usuário não informar uma senha e clicar na opção "fazer login", a aplicação apresentará a mensagem "Digite sua senha.";
6. RN06: (2ª etapa:) Se o usuário informar uma senha inválida e clicar na opção "fazer login", a aplicação apresentará a mensagem "Senha incorreta. Tente novamente.";
7. RN07: (2ª etapa:) Se o usuário informar uma senha válida e clicar na opção "fazer login", a aplicação validará a credencial de acesso e encaminhará o usuário à funcionalidade
de Listar de Emails;
iv. Protótipos de tela:
1 Tela inicial solicitação do usuário/Email 2 Segunda tela solicitação da senha
A visão geral da interação entre o sistema e o usuário pode ser explorada, por exemplo, a partir de uma estória de usuário, caso de uso, ou até mesmo a partir de um protótipo não funcional.
2. Visão dos casos de teste:
Realizar Login Diagrama de atividades:
A utilização de diagramas de atividade podem também apoiar no levantamento dos possíveis casos de teste e, desta forma, possibilitar um melhor entendimento do Cenário foco do trabalho.
Abaixo, exploramos alguns dos possíveis casos de teste a partir da visão de interação (entre o usuário e o sistema) e regras associadas:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 3/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
3. Organização dos casos de teste:
No nosso exemplo, abordaremos então, os cinco casos de teste, conforme relacionados abaixo:
a. Realizar Login |CT01| Não informar usuário/Email; e tentar realizar login;
b. Realizar Login |CT02| Informar um usuário/Email inválido; e tentar realizar login;
c. Realizar Login |CT03| Informar um usuário/Email válido; e não informar a senha; e tentar realizar login;
d. Realizar Login |CT04| Informar um usuário/Email válido; e informar uma senha inválida; e tentar realizar login.
e. Realizar Login |CT05| Informar um usuário/Email válido; e informar uma senha válida; e tentar realizar login.
Observação: Outros casos de teste ainda poderiam complementar o cenário: por exemplo, a RN03 foi ignorada nos testes e, ainda poderíamos adicionar um caso de teste "não informar
usuário/Email, mas, informar a senha" (caso a interface possibilitasse tal caso);
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 4/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
4. Automatizar:
Agora que já possuímos uma boa visão dos casos de teste, iremos elaborar os scripts para o SeleniumIDE:
IMPORTANTE: Antes de iniciar qualquer processo de gravação no SeleniumIDE, apague o CACHE do navegador Firefox. Desta forma, garantimos que o resultado da gravação e, por
consequência, o script de teste, estarão o mais imparciais possível (entre nas configurações do navegador Firefox e certifiquese de limpar todo o histórico, cookies, cache, etc.)
a. Abra o MozillaFirefox
c. Selecione a opção "Selenium IDE" .
A tela do SeleniumIDE será exibida, conforme a imagem abaixo:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 5/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
(No primeiro acesso o IDE abre uma página de Release Notes, que são as últimas modificações feitas nesta versão, por exemplo, adição de funcionalidades ou correção de bugs)
d. Com o Firefox aberto e o SeleniumIDE ativado, inicie o processo de gravação da operação. Note que, ao abrir o SeleniumIDE, o processo de gravação iniciase automaticamente
(você pode interrompêlo ou retomar o processo, selecionando o botão "Gravar", localizado no canto superior direito).
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 6/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
(Para facilitar a montagem dos scripts e acompanhar o processo visualmente, podese minimizar ambas as telas, colocandoas uma ao lado da outra)
e. No browser Firefox, siga o passoapasso abaixo:
|CT01| Realizar Login Não informar usuário/Email; e tentar realizar login:
i. Com o SeleniumIDE em processo de gravação, informe o URL da página que deseja testar. No nosso caso, utilizaremos o URL do Gmail (www.gmail.com).
A seguinte tela será apresentada:
ii. Execute os passos previstos no primeiro caso de teste: Não informar usuário/Email; e tentar realizar login (clicando no botão "Próximo). Note que, após finalizar os passos, na
aba "Tabela" do SeleniumIDE (FiguraA), é apresentado o código gravado referente às ações executadas. Perceba também, que a funcionalidade "Realizar Login" retornou a
mensagem de erro "Insira seu email." (FiguraB). Por fim, finalize a gravação do script, clicando novamente no botão "Gravar". Veja as telas abaixo:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 7/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
FiguraA: Código gravado pelo SeleniumIDE
FiguraB: Resposta do sistema (mensagem de erro: "Insira seu Email")
iii. Neste ponto, podemos verificar, visualmente, que a funcionalidade "Realizar Login" executou o 1º caso de testes com sucesso! Mas, como o SeleniumIDE poderia entender isso?
Resposta: Para que seja possível o SeleniumIDE entender como a funcionalidade deveria se comportar, precisamos fornecer os indícios necessários e em sua linguagem! Sendo
assim, vamos adicionar alguns eventos conhecidos pelo SeleniumIDE , ao código gravado:
1. Conferência da mensagem "Insira seu email.", nos casos em que enquadremse no 1º caso de teste:
a. No SeleniumIDE | Aba "Tabela", selecione uma linha em branco (após o último tag de script) e, no campo "Comando", selecione o Evento "verifyText". No Campo
"Alvo", deverá ser adicionado o elemento HTML a ser verificado. Para isso, clique no botão "Selecionar" (ao lado do campo "Alvo") e selecione, com o mouse, o
elemento referente a mensagem de erro (conforme figura abaixo):
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 8/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
Dica: Uma vez pressionado o botão "Select" (selecionar), ao navegar com o mouse sobre os elementos do Browser, estes apresentação cores diferenciadas sendo
destacados dos demais , possibilitando sua correta seleção.
b. Note que, após a seleção do elemento, o SeleniumIDE | campo "Alvo" será preenchido com o texto "id=errormsg_0_Email" (ou seja, definimos que o SeleniumIDE
deverá verificar o elemento cujo ID é nomeado como "errormsg_0_Email". Veja a figura abaixo:
c. O próximo passo será informar ao SeleniumIDE, qual mensagem ele deverá verificar, para que possa avaliar o sucesso do caso de teste. Para isso, preencha o campo
"Valor" com o texto exatamente igual à mensagem apresentada em tela ("Insira seu email."):
d. Note que, uma nova linha sugirá no SeleniumIDE | Aba "Tabela", conforme figura abaixo:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 9/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
2. Evitando erros comuns: Por último, mas, não menos importante, vamos adequar nosso script, evitando possíveis erros em função do tempo de resposta da aplicação. Pois,
para que o SeleniumIDE possa verificar os elementos html de tela, se faz necessário que eles já tenham sido apresentados (caso contrário, o SeleniumIDE entenderá que
houve um erro!).
Como o nosso script contempla dois elementos html de tela ( 1: id=next; 2: id=errormsg_0_Email), criaremos eventos para espera/verificação de sua presença. Para tal,
no SeleniumIDE | Aba "Tabela", selecione uma linha em branco (após o último comando) e clique no campo "Comando". Selecione o evento "waitForElementPresent" e
no campo "Alvo" informe o identificador do 1º elemento a ser verificado (que seria o botão "Próximo" cujo identificador é "id=next"). Repita o procedimento para o 2º
componente ("id=errormsg_0_Email") e ordene os eventos, de tal maneira que, a verificação da presença do elemento seja realizada antes do evento de ação ou de
verificação ("Click" e "verifyText", respectivamente). Veja a figura abaixo:
Dica: É possível recortar e colar os comandos utilizandose das teclas de atalho CTRL+C e CTRL+V.
3. Salvando seu Script:
No menu "Arquivo" selecione a opção "Salvar Teste" e defina um nome sugestivo, de acordo com o identificador do Caso de Teste. Veja o Exemplo:
No exemplo, criamos a composição do nome com a seguinte formatação:
<Nome da Funcionalidade>_<Nome do cenário>_<Identificador do Caso de Teste>
Recomendase a criação de um arquivo de índice, contendo o nome da funcionalidade, nome do cenário, identificador do Caso de teste e a Regra de Negócio a qual o
teste se propõe a verificar. Desta maneira, quando for necessário realizar possíveis manutenções, basta identificar o arquivo de teste por meio do arquivo de índice (Pode
se criar uma Planilha ou até mesmo um arquivo de formato TXT).
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 10/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
5. Testando o seu Script;
Para testar o seu script, abra uma nova aba no Firefox e clique no botão Play ( ). Na guia "Mensagens, serão exibidos os registros de execução. Veja figura abaixo:
(Caso fosse detectado algum erro, um linha com texto em vermelho surgiria entre as mensagens)
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 11/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
6. Veja alguns dos outros Scripts como ficaram:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 12/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
a. |CT02| Realizar Login Informar um usuário/Email inválido; e tentar realizar login;
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 13/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
b. |CT03| Realizar Login Informar um usuário/Email válido; e não informar a senha; e tentar realizar login;
(Observe que os pontos de verificação que obtiveram êxito, foram marcados com verde escuro, caso contrario, seriam marcados com vermelho)
Para um melhor entendimento, segue a tabelaScript com o detalhamento acerca do procedimento de teste, conforme cenário acima (as linhas em verde, representam os pontos de
verificação incluídos no Script, após sua gravação; as linhas em amarelo, representam os scripts originados do processo de gravação):
open / Abre o URL (alvo) no navegador. Aceita ambos os URLs relativos e absolutos (aqui eu o ocultei, evitando poluir a
tabela explicativa)
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 14/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
7. Criando seu Test Suite:
Um Test Suite é um conjunto de casos de teste que podem ser executados sequencialmente (são todos exibidos no painel mais à esquerda no IDE*).
* O painel que concentra o conjunto de testes (Test Case painel mais à esquerda no SelIDE) pode ser aberto ou fechado manualmente, através da seleção de um pequeno ponto no meio
da divisória, entre os painéis de |Test Case| e |Tabela/CódigoFonte|.
O painel Test Case será aberto automaticamente quando: i) um caso de teste pré existente for aberto; ii) ou, por meio do item de menu |Arquivo| New Test Case| (Neste último caso, o novo
processo de teste aparece imediatamente abaixo do teste anterior).
Outra forma de montar o seu Test Suite, seria por meio da adição de casos de teste préexistentes (desta forma, podese contemplar todo um sistema, consolidando os seus vários scripts num
mesmo Test Suite). Para tal, utilize o item de menu |Arquivo| Adicionar Test Case (Add Test Case)|.
* É possível selecionar um caso de teste específico na lista do painel de Test Case por meio de um duploclick sobre o título do caso de teste. Caso deseje excluir um dos itens do
Test Suite, selecione o caso de teste a ser excluído e, com o botão direito do mouse, selecione a opção "Limpar"
Veja o Test Suite criado, nas imagens abaixo:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 15/17
21/12/2016 SeleniumIDE Criando scripts de teste Processo de Teste Confluence
* Test Suite e todos os casos de teste contidos: Note que, foi adicionado um passo inicial "|open| \ |" em cada um dos casos de teste (este primeiro passo é utilizado para que, no início de cada
teste, o fluxo de controle volte à tela inicial da aplicação sendo testada).
* Outro ponto que vale comentar é que, ao final da execução do Test Suite, as mensagens de todos os casos de teste contidos serão centralizadas (na aba |Mensagens|), sequencialmente,
conforme a ordem de execução.
O Test Suite também pode ser elaborado manualmente. Veja, abaixo, o códigofonte do Test Suite apresentado:
<?xml version="1.0" encoding="UTF‐8"?>
<!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1‐strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html; charset=UTF‐8" http‐equiv="content‐type" />
<title>Test Suite</title>
</head>
<body>
<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"><tbody>
<tr><td><b>Test Suite</b></td></tr>
<tr><td><a href="Login_RealizarLogin_CT01.html">Login_RealizarLogin_CT01</a></td></tr>
<tr><td><a href="Login_RealizarLogin_CT02.html">Login_RealizarLogin_CT02</a></td></tr>
<tr><td><a href="Login_RealizarLogin_CT03.html">Login_RealizarLogin_CT03</a></td></tr>
</tbody></table>
</body>
</html>
8. Outras dicas:
http://confluence.unyleya.com.br/display/Teste/SeleniumIDE++Criando+scripts+de+teste 16/17