Hugo Peres
Automatizando Testes de
Software Com
Selenium
Curso Básico
Hugo Peres
Graduado em Análise e Desenvolvimento de
Sistemas (UniCarioca) e Pós-Graduado em
Engenharia de Software (UFRJ). Exerceu a função
de Analista de Testes por 3 anos em uma
conceituada fábrica de software no RJ e escreveu
o primeiro livro sobre Selenium em Português-BR.
Atualmente é dono da Inove Teste, um projeto de
sua autoria que, através de livros e cursos, visa
difundir conhecimentos sobre automação de
testes por todo mundo.
Para mais informações:
https://inoveteste.com.br
Objetivos do curso
 Aprender os princípios e fundamentos da
automação em testes de software;
 Elaborar, executar e exportar os scripts de testes
automatizados;
 Executar os scripts de testes em múltiplos
navegadores (CrossBrowser Testing);
• BÔNUS:
+ Trabalhar com dados dinâmicos no Selenium IDE
+ Criar a própria ferramenta de execução de testes
Hugo Peres Curso Básico
Público-Alvo e Pré-Requisitos
 Conhecimentos básicos em Teste de Software;
 Elementos básicos do HTML;
 Comandos básicos do Prompt de Comando;
Hugo Peres Curso Básico
 Profissionais da área de qualidade de software que
almejam automatizar testes funcionais de aplicações
web sem complicações
Inovando a sua forma de testar software
Clique no ícone para adicionar uma imagem
A Inovação no Mercado de Trabalho
Inovar: Ato de transformar ou renovar algo, seja um produto ou processo, produzindo resultados
para a empresa.
Guerra da Inovação entre Google e Microsoft
Google inovou seu site de pesquisa (buscador), o qual detém cerca de 60% desse mercado. E a
Microsoft resolveu desenvolver seu próprio site de buscas, O Bing, o qual tem sido bem aceito
pelos usuários.
“Quem almeja ir além, no sentido de fazer algo que
faça a diferença e que traga resultados positivos para
a empresa, deve-se pensar em inovação. Do contrário,
o concorrente fará algo diferente e melhor para o
público alvo. É a lei da sobrevivência.” (Molinari)
Hugo Peres Curso Básico
Record
Script
Play
Automação em Teste de Software
Automatizar: Técnica de conceder à um
dispositivo, a autonomia de controlar o
próprio funcionamento, com a mínima
interferência humana.
Em Teste de Software, consiste no uso de
uma ferramenta que imita a interação do
testador para com a aplicação.
Hugo Peres Curso Básico
Por que Automatizar os Testes?
Hugo Peres
Visão Gerencial: As variáveis do Triângulo das Restrições
(escopo, tempo e custo) se tornam mais independentes uma
da outra sem que isso afete na qualidade do produto a ser
entregue.
Visão Operacional:
 Execução dos testes com a mesma eficiência, porém em
menos tempo.
 Redução drástica de falhas humanas oriundas de tarefas
repetitivas (Teste de Regressão).
 Maior disponibilidade dos testadores, que poderão focar
mais em atividades estratégicas.
Curso Básico
Testes Automatizados x Testes Manuais
O teste manual não pode ser eliminado, mas sim
reduzido ao máximo e focado em casos específicos onde
seja muito caro automatizar ou que seja necessário de
uma decisão humana.
Mesmo que a empresa automatize 99% dos testes,
sempre haverá necessidade de pessoas para realizarem
tarefas inviáveis aos robôs. Ex: Manutenção no projeto
de teste, pesquisa e documentação de novas estratégias
de teste, etc.
O robô jamais irá substituir o testador!!!
Hugo Peres Curso Básico
Considerações acerca da Automação
5W2H
5W
What (O que?) Saber quais sistemas e respectivos cenários de testes
deverão ser automatizados.
Who (Quem?) Identificar quais integrantes da equipe possuem o perfil
adequado para a atividade.
Where (Onde?) Decidir se será num ambiente a parte ou compartilhado
com o desenvolvimento.
When
(Quando?)
Saber qual o momento certo para começar a automatizar.
Why (Por que?) Descobrir os reais motivos do porquê é necessário
implementar a automação nos testes.
2H
How (Como?) Definir técnicas e ferramentas que são utilizadas no
processo de automação.
How Much
(Quanto custa?)
Calcular os custos para automatizar e verificar se
compensa aos resultados propostos.
Hugo Peres Curso Básico
Princípios da Automação de Testes
 Projete os casos de testes para depois automatizar;
 Não pense em automatizar 100% de tudo. Foque na
prioridade;
 Projete a automação de testes de forma que facilite
revisões;
 Inicie a automação de testes o mais cedo possível em
um projeto;
Hugo Peres Curso Básico
Selenium
Clique no ícone para adicionar uma imagem
O que é Selenium e como surgiu?
Selenium é uma suíte composta por 4 ferramentas de automação de testes para aplicações web.
E são elas: IDE, Remote Control, WebDriver e GRID.
Em 2004, o testador Jason Huggins estava testando
uma aplicação interna da ThoughtWorks, quando
percebeu que poderia gerenciar melhor seu tempo nas
atividades de teste manuais. Para isso, ele criou uma
biblioteca Javascript que interagia com o browser. A
esse projeto foi lhe concedido o nome de Selenium,
passando a ser uma ferramenta teste alternativa (open
source) para testadores que não suportavam mais ficar
dependentes da ferramenta Quick Test, da empresa
Mercury, que por sinal era paga e bem cara. Na
química, o antídoto do Mercúrio é o Selênio. Está aí, o
porquê do nome.
Hugo Peres Curso Básico
Por que usar Selenium?
• Criar e executar scripts de testes independente do
browser ou sistema operacional;
• Realizar Testes de Carga/Estresse através da
execução de teste em paralelo;
• Adicionar plug-ins que permitem elaborar scripts de
testes robustos e que atendem as necessidades dos
negócios;
• Integrar os scripts de teste a um projeto de teste, seja
em Java, C#, PHP, Python ou Ruby.
Hugo Peres Curso Básico
Selenium
IDE
IDE
1. Barra de Ferramentas: Possui as
funcionalidades que gerenciam os testes
como gravar, executar, pausar, etc.
2. Lista de Casos de Teste: Lista dos casos de
teste que compõem a suíte de teste em uso.
3. Editor de Script: Espaço para editar o script
do caso de teste selecionado, podendo
definir o step em que o teste irá iniciar ou
parar.
4. Rodapé: Log da execução do caso de teste
selecionado.
Hugo Peres Curso Básico
Elaborando o Script de Teste (Record)
Nesse exemplo, enviaremos uma mensagem
para o site Inove Teste. Para isso, será
criando o script: EnviarMensagem.
O roteiro do teste consiste em acessar a url
base, clicar no menu Contato, validar a
presença e críticas dos campos, preencher o
formulário e clicar no botão Enviar.
Iniciemos a gravação do teste clicando no
botão Record
Hugo Peres Curso Básico
Executando o Script de Teste (Play)
Uma vez o script sendo gerado, o mesmo
já poderá ser executado, clicando no
botão Play
Inicia-se então o teste, validando as
etapas: Acessar Tela de Contato, Validar
presença e críticas dos campos,
Preencher Campos e Enviar Mensagem.
Hugo Peres Curso Básico
Plugins
O Selenium IDE conta com uma variedade enorme de plugins, os quais podem ser novas
extensões (.xpi) do browser Firefox ou arquivos javascript (.js), cujo o caminho é apontado
no menu opções da IDE. Segue a lista de alguns:
• SelBlocks: Adiciona comandos de repetição ao script de teste;
• ScreenShot on Fail: Registra um print screen da tela no momento
em que ocorreu um erro na execução do teste;
• Pretty Report: Exporta os resultados de testes em um relatório
com um visual mais bonito e legível.
Hugo Peres Curso Básico
Salvando o Script de Teste
Para salvar o teste, basta ir à opção Arquivo
> Salvar Teste. O arquivo deve ser salvo no
formato .html.
Ex: EnviarMensagem.html
Hugo Peres Curso Básico
Exportando o Script de Teste
Por padrão, o Selenium IDE salva o script
no formato (.html). Porém, é possível
exportá-lo em outro formato para que
possa ser integrado a projetos de teste.
No atual exemplo, exportaremos o caso
de teste no formato
C#/Nunit/WebDriver, salvando o arquivo
no formato (.cs)
Hugo Peres Curso Básico
Selenium
Remote
Control
Standalone Server
Conhecido como Selenium 1.0, Remote Control
(RC) foi o principal projeto do Selenium antes da
fusão com o WebDriver (Selenium 2.0). Sua
composição consiste em:
• Servidor que “liga” os scripts de teste aos
browsers por meio de uma conexão Proxy. Por ser
desenvolvido em Java (arquivo .jar), é possível
executá-lo em qualquer Sistema Operacional.
• Biblioteca-Cliente que pode ser importada em
um projeto de teste Java, Ruby, Python, Pearl, PHP
ou .NET. O código-fonte (script) é encaminhado ao
browser por meio do servidor, que o converte em
comandos Javascript (Selenium-Core).
Hugo Peres Curso Básico
Executando Scripts pelo WebDriver Playback
Embora os scripts de teste sejam dependentes do
Firefox para serem gerados, é possível executá-
los em qualquer navegador (CrossBrowser)
através da opção WebDriver Playback.
Basta acessar o menu Opções > WebDriver,
ativar a opção Enable WebDriver Playback e
informar o navegador em que deseja executar os
testes.
Obs: É de suma importância que o Standalone
Server esteja em execução
CALL java
-Dwebdriver.nomeNavegador.driver=driverNavegador.exe -jar
standaloneServer.jar
Hugo Peres Curso Básico
Executando Scripts pelo HTML Runner
A partir da versão 3.0 do Selenium, as suítes de
testes no formato .html passaram a serem
executadas por um Servidor Standalone
específico, o HTML Runner.
CALL java -jar htmlRunner.jar -htmlSuite "*nomeNavegador"
“urlBase" “nomeSuite.html" “nomeRelatorio"
Hugo Peres Curso Básico
Bônus
Clique no ícone para adicionar uma imagem
Dados Dinâmicos no Selenium IDE
Visando facilitar a manutenção dos scripts de testes, o
uso de dados dinâmicos (Data Driven) torna-se
indispensável. No Selenium IDE, essa metodologia de
teste pode ser implementada através da extensão CSV
Read.js
Basta acessar o menu Opções > Geral e informar o
caminho da extensão em Extensões do Selenium Core
Comandos:
readCSV: faz a conexão com a planilha de dados.
storeCellValue: armazena o dado de uma célula numa
variável.
Hugo Peres Curso Básico
Crie sua própria GUI de execução de testes
Vimos que o HTML Runner é bastante eficiente quando
se diz a respeito da execução de suítes de testes (.html)
em múltiplos navegadores. Agora, convenhamos que não
é nada produtivo ficar modificando os parâmetros do
arquivo em lote (.bat) toda vez que quiser executar um
teste diferente, não é verdade?
Pensando nisso, fica a sugestão de criar uma GUI
(Interface Gráfica do Usuário).
A lógica da ferramenta consiste em criar um arquivo em
lote (.bat) com os parâmetros informados pelo usuário e
executá-lo. Ao final da execução dos testes, o usuário
poderá visualizar o relatório gerado e também exportar a
configuração de teste (.zip) para ser executada de forma
independente.
Hugo Peres Curso Básico
FIM
Hugo Peres Curso Básico
Alguma dúvida?
https://inoveteste.com.br/forum

Curso Básico de Selenium

  • 1.
    Hugo Peres Automatizando Testesde Software Com Selenium Curso Básico
  • 2.
    Hugo Peres Graduado emAnálise e Desenvolvimento de Sistemas (UniCarioca) e Pós-Graduado em Engenharia de Software (UFRJ). Exerceu a função de Analista de Testes por 3 anos em uma conceituada fábrica de software no RJ e escreveu o primeiro livro sobre Selenium em Português-BR. Atualmente é dono da Inove Teste, um projeto de sua autoria que, através de livros e cursos, visa difundir conhecimentos sobre automação de testes por todo mundo. Para mais informações: https://inoveteste.com.br
  • 3.
    Objetivos do curso Aprender os princípios e fundamentos da automação em testes de software;  Elaborar, executar e exportar os scripts de testes automatizados;  Executar os scripts de testes em múltiplos navegadores (CrossBrowser Testing); • BÔNUS: + Trabalhar com dados dinâmicos no Selenium IDE + Criar a própria ferramenta de execução de testes Hugo Peres Curso Básico
  • 4.
    Público-Alvo e Pré-Requisitos Conhecimentos básicos em Teste de Software;  Elementos básicos do HTML;  Comandos básicos do Prompt de Comando; Hugo Peres Curso Básico  Profissionais da área de qualidade de software que almejam automatizar testes funcionais de aplicações web sem complicações
  • 5.
    Inovando a suaforma de testar software Clique no ícone para adicionar uma imagem
  • 6.
    A Inovação noMercado de Trabalho Inovar: Ato de transformar ou renovar algo, seja um produto ou processo, produzindo resultados para a empresa. Guerra da Inovação entre Google e Microsoft Google inovou seu site de pesquisa (buscador), o qual detém cerca de 60% desse mercado. E a Microsoft resolveu desenvolver seu próprio site de buscas, O Bing, o qual tem sido bem aceito pelos usuários. “Quem almeja ir além, no sentido de fazer algo que faça a diferença e que traga resultados positivos para a empresa, deve-se pensar em inovação. Do contrário, o concorrente fará algo diferente e melhor para o público alvo. É a lei da sobrevivência.” (Molinari) Hugo Peres Curso Básico
  • 7.
    Record Script Play Automação em Testede Software Automatizar: Técnica de conceder à um dispositivo, a autonomia de controlar o próprio funcionamento, com a mínima interferência humana. Em Teste de Software, consiste no uso de uma ferramenta que imita a interação do testador para com a aplicação. Hugo Peres Curso Básico
  • 8.
    Por que Automatizaros Testes? Hugo Peres Visão Gerencial: As variáveis do Triângulo das Restrições (escopo, tempo e custo) se tornam mais independentes uma da outra sem que isso afete na qualidade do produto a ser entregue. Visão Operacional:  Execução dos testes com a mesma eficiência, porém em menos tempo.  Redução drástica de falhas humanas oriundas de tarefas repetitivas (Teste de Regressão).  Maior disponibilidade dos testadores, que poderão focar mais em atividades estratégicas. Curso Básico
  • 9.
    Testes Automatizados xTestes Manuais O teste manual não pode ser eliminado, mas sim reduzido ao máximo e focado em casos específicos onde seja muito caro automatizar ou que seja necessário de uma decisão humana. Mesmo que a empresa automatize 99% dos testes, sempre haverá necessidade de pessoas para realizarem tarefas inviáveis aos robôs. Ex: Manutenção no projeto de teste, pesquisa e documentação de novas estratégias de teste, etc. O robô jamais irá substituir o testador!!! Hugo Peres Curso Básico
  • 10.
    Considerações acerca daAutomação 5W2H 5W What (O que?) Saber quais sistemas e respectivos cenários de testes deverão ser automatizados. Who (Quem?) Identificar quais integrantes da equipe possuem o perfil adequado para a atividade. Where (Onde?) Decidir se será num ambiente a parte ou compartilhado com o desenvolvimento. When (Quando?) Saber qual o momento certo para começar a automatizar. Why (Por que?) Descobrir os reais motivos do porquê é necessário implementar a automação nos testes. 2H How (Como?) Definir técnicas e ferramentas que são utilizadas no processo de automação. How Much (Quanto custa?) Calcular os custos para automatizar e verificar se compensa aos resultados propostos. Hugo Peres Curso Básico
  • 11.
    Princípios da Automaçãode Testes  Projete os casos de testes para depois automatizar;  Não pense em automatizar 100% de tudo. Foque na prioridade;  Projete a automação de testes de forma que facilite revisões;  Inicie a automação de testes o mais cedo possível em um projeto; Hugo Peres Curso Básico
  • 12.
    Selenium Clique no íconepara adicionar uma imagem
  • 13.
    O que éSelenium e como surgiu? Selenium é uma suíte composta por 4 ferramentas de automação de testes para aplicações web. E são elas: IDE, Remote Control, WebDriver e GRID. Em 2004, o testador Jason Huggins estava testando uma aplicação interna da ThoughtWorks, quando percebeu que poderia gerenciar melhor seu tempo nas atividades de teste manuais. Para isso, ele criou uma biblioteca Javascript que interagia com o browser. A esse projeto foi lhe concedido o nome de Selenium, passando a ser uma ferramenta teste alternativa (open source) para testadores que não suportavam mais ficar dependentes da ferramenta Quick Test, da empresa Mercury, que por sinal era paga e bem cara. Na química, o antídoto do Mercúrio é o Selênio. Está aí, o porquê do nome. Hugo Peres Curso Básico
  • 14.
    Por que usarSelenium? • Criar e executar scripts de testes independente do browser ou sistema operacional; • Realizar Testes de Carga/Estresse através da execução de teste em paralelo; • Adicionar plug-ins que permitem elaborar scripts de testes robustos e que atendem as necessidades dos negócios; • Integrar os scripts de teste a um projeto de teste, seja em Java, C#, PHP, Python ou Ruby. Hugo Peres Curso Básico
  • 15.
  • 16.
    IDE 1. Barra deFerramentas: Possui as funcionalidades que gerenciam os testes como gravar, executar, pausar, etc. 2. Lista de Casos de Teste: Lista dos casos de teste que compõem a suíte de teste em uso. 3. Editor de Script: Espaço para editar o script do caso de teste selecionado, podendo definir o step em que o teste irá iniciar ou parar. 4. Rodapé: Log da execução do caso de teste selecionado. Hugo Peres Curso Básico
  • 17.
    Elaborando o Scriptde Teste (Record) Nesse exemplo, enviaremos uma mensagem para o site Inove Teste. Para isso, será criando o script: EnviarMensagem. O roteiro do teste consiste em acessar a url base, clicar no menu Contato, validar a presença e críticas dos campos, preencher o formulário e clicar no botão Enviar. Iniciemos a gravação do teste clicando no botão Record Hugo Peres Curso Básico
  • 18.
    Executando o Scriptde Teste (Play) Uma vez o script sendo gerado, o mesmo já poderá ser executado, clicando no botão Play Inicia-se então o teste, validando as etapas: Acessar Tela de Contato, Validar presença e críticas dos campos, Preencher Campos e Enviar Mensagem. Hugo Peres Curso Básico
  • 19.
    Plugins O Selenium IDEconta com uma variedade enorme de plugins, os quais podem ser novas extensões (.xpi) do browser Firefox ou arquivos javascript (.js), cujo o caminho é apontado no menu opções da IDE. Segue a lista de alguns: • SelBlocks: Adiciona comandos de repetição ao script de teste; • ScreenShot on Fail: Registra um print screen da tela no momento em que ocorreu um erro na execução do teste; • Pretty Report: Exporta os resultados de testes em um relatório com um visual mais bonito e legível. Hugo Peres Curso Básico
  • 20.
    Salvando o Scriptde Teste Para salvar o teste, basta ir à opção Arquivo > Salvar Teste. O arquivo deve ser salvo no formato .html. Ex: EnviarMensagem.html Hugo Peres Curso Básico
  • 21.
    Exportando o Scriptde Teste Por padrão, o Selenium IDE salva o script no formato (.html). Porém, é possível exportá-lo em outro formato para que possa ser integrado a projetos de teste. No atual exemplo, exportaremos o caso de teste no formato C#/Nunit/WebDriver, salvando o arquivo no formato (.cs) Hugo Peres Curso Básico
  • 22.
  • 23.
    Standalone Server Conhecido comoSelenium 1.0, Remote Control (RC) foi o principal projeto do Selenium antes da fusão com o WebDriver (Selenium 2.0). Sua composição consiste em: • Servidor que “liga” os scripts de teste aos browsers por meio de uma conexão Proxy. Por ser desenvolvido em Java (arquivo .jar), é possível executá-lo em qualquer Sistema Operacional. • Biblioteca-Cliente que pode ser importada em um projeto de teste Java, Ruby, Python, Pearl, PHP ou .NET. O código-fonte (script) é encaminhado ao browser por meio do servidor, que o converte em comandos Javascript (Selenium-Core). Hugo Peres Curso Básico
  • 24.
    Executando Scripts peloWebDriver Playback Embora os scripts de teste sejam dependentes do Firefox para serem gerados, é possível executá- los em qualquer navegador (CrossBrowser) através da opção WebDriver Playback. Basta acessar o menu Opções > WebDriver, ativar a opção Enable WebDriver Playback e informar o navegador em que deseja executar os testes. Obs: É de suma importância que o Standalone Server esteja em execução CALL java -Dwebdriver.nomeNavegador.driver=driverNavegador.exe -jar standaloneServer.jar Hugo Peres Curso Básico
  • 25.
    Executando Scripts peloHTML Runner A partir da versão 3.0 do Selenium, as suítes de testes no formato .html passaram a serem executadas por um Servidor Standalone específico, o HTML Runner. CALL java -jar htmlRunner.jar -htmlSuite "*nomeNavegador" “urlBase" “nomeSuite.html" “nomeRelatorio" Hugo Peres Curso Básico
  • 26.
    Bônus Clique no íconepara adicionar uma imagem
  • 27.
    Dados Dinâmicos noSelenium IDE Visando facilitar a manutenção dos scripts de testes, o uso de dados dinâmicos (Data Driven) torna-se indispensável. No Selenium IDE, essa metodologia de teste pode ser implementada através da extensão CSV Read.js Basta acessar o menu Opções > Geral e informar o caminho da extensão em Extensões do Selenium Core Comandos: readCSV: faz a conexão com a planilha de dados. storeCellValue: armazena o dado de uma célula numa variável. Hugo Peres Curso Básico
  • 28.
    Crie sua própriaGUI de execução de testes Vimos que o HTML Runner é bastante eficiente quando se diz a respeito da execução de suítes de testes (.html) em múltiplos navegadores. Agora, convenhamos que não é nada produtivo ficar modificando os parâmetros do arquivo em lote (.bat) toda vez que quiser executar um teste diferente, não é verdade? Pensando nisso, fica a sugestão de criar uma GUI (Interface Gráfica do Usuário). A lógica da ferramenta consiste em criar um arquivo em lote (.bat) com os parâmetros informados pelo usuário e executá-lo. Ao final da execução dos testes, o usuário poderá visualizar o relatório gerado e também exportar a configuração de teste (.zip) para ser executada de forma independente. Hugo Peres Curso Básico
  • 29.
    FIM Hugo Peres CursoBásico Alguma dúvida? https://inoveteste.com.br/forum