SlideShare une entreprise Scribd logo
1  sur  21
1




TESTES FUNCIONAIS
 COM O SELENIUM
2


                          SELENIUM

●   Selenium IDE
    ●
        Extensão do FF, que permite gravar, editar, executar testes.

●   Selenium Remote Control
    ●   Bibliotecas e servidor para executar os testes.
●   Selenium Grid
    ●   Distribuição de testes em multiplas máquinas
3


              SELENIUM IDE

●   Extensão do FireFox que possibilita a
    gravação de testes na sua aplicação web.


●   Não é apenas um gravador ou editor de
    testes, é uma ferramenta completa, onde
    pode até mesmo executar os seus testes.
4


SELENIUM IDE
 Ferramentas > Selenium IDE
5


                    SELENIUM IDE
                                             URL Padrão
                                             para o teste




    Executar
     Testes


                                          Indica que está sendo
                                            gravado um testes
Suíte de Testes



Lista de comandos
    Executados
 nessa gravação




                                              Área de
                                          Novos Comandos




                             Comandos
                             Executados
6


Teste Salvo
7


            Comandos SELENIUM IDE

● Open
● Assert Title

● Click and Wait

● Click

● Type

● Wait

● Close

● Go Back

● Is Text Present

● Key Down

● Key Press

● Key Up

● Refresh

● Submit

● Uncheck

● Check

● ...
8


Executando testes pela IDE
9


      Exportando o teste para Java
             Arquivo > Exportar Teste Como.. > Java (Junit) Selenium RC

package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class busca extends SeleneseTestCase {
     public void setUp() throws Exception {
           setUp("http://change-this-to-the-site-you-are-testing/", "*iexplore");
     }
     public void testBusca() throws Exception {
           selenium.open("/admin/configuracoes/papeis/lista_usuario_papel.jsf");
           selenium.select("form:sistema", "label=SIGAA");
           selenium.select("form:sistema", "label=SIGAA");
           selenium.select("form:subsistema", "label=BIBLIOTECA");
           selenium.select("form:subsistema", "label=BIBLIOTECA");
           selenium.click("//option[@value='14000']");
           selenium.click("//option[@value='14000']");
           selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL");
           selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL");
           selenium.click("form:j_id_jsp_513967898_19");
           selenium.click("form:j_id_jsp_513967898_19");
     }
}
10


SELENIUN REMOTE CONTROL (RC)
●   Ferramenta auxiliar do Selenium IDE.
●   Realiza os testes gravados em outros browser.
●   É uma ferramenta tipo record-and-playback
●   Não permite com o teste, ou seja modifica-lo para usar várias
    condições.
●   Algumas linguagens suportadas:
    ●   Java
    ●   .Net
    ●   Python
    ●   Ruby
    ●   PHP
11
12


Servidor
13


              SELENIUM GRID

●   Distribui os testes em múltiplas
    máquinas.
●   Reduz o tempo gasto na execução de
    uma suíte de testes.
14


                 Classe TestSuite
package br.ufrn.admin.jsf.tests;

import   org.junit.AfterClass;
import   org.junit.BeforeClass;
import   org.junit.runner.RunWith;
import   org.junit.runners.Suite;
import   com.thoughtworks.selenium.DefaultSelenium;

@RunWith(Suite.class)
@Suite.SuiteClasses( { UnidadeTests.class })
public class SigadminTestSuite extends WebTestCase {

     @BeforeClass
     public static void setUp() throws Exception {
              selenium = new DefaultSelenium("localhost", 4567,
"*firefox3",
"http://localhost:8080/admin/");
              selenium.start();

               selenium.open("http://localhost:8080/admin/login.jsf");
               selenium.type("login", "mayron");
               selenium.type("senha", "mayron");
               selenium.click("logar");
               selenium.waitForPageToLoad("200000");
    }

    @AfterClass
    public static void tearDown() throws Exception {
             selenium.stop();
    }
}
15


Elementos do TestSuite
@Suite.SuiteClasses( {
MaterialTreinamentoMBeanTests.class,
TipoMaterialTreinamentoMBeanTests.class,
TemplateDeDocumentoTests.class,
TipoDocumentoTemplateTest.class,
MensagemAvisoTests.class,
ConfiguracaoSistemasTest.class,
DadosInstitucionaisTest.class,
MaterialDeTreinamentoTests.class,
TipoDeAmbienteTests.class,
UsuarioAmbienteTests.class,
RegistroEntradaTests.class,
ConsultaErrosTests.class,
RegistrarAcessoPuplicoTests.class,
LogOperacoesTests.class,
LogServidorTests.class,
LogJbcTests.class,
ComunicacaoGrupo.class,
NotificacaoOnline.class,
AvisoSistema.class,
DocumentosTests.class,
EventosTests.class,
SessoesTests.class,
BoletimTests.class,
ClippingTests.class,
JornalTests.class,
RecusosSistemaTests.class,
UnidadeTests.class,
PermissoesTests.class,

})
16


                   Lista de Browser
●   *mock
●   *chrome
●   *iexplore
●   *firefox3
●   *safariproxy
●   *konqueror
●   *safari
●   *opera
●   *iehta
●   *custom
17


                       Preparando a JSP

●   No form a opção prependId como false e
    ids em todos os campos de formulário.

                  <h:form id="formulario"      prependId="false">


     <h:inputText value="#{boletim.noticia.titulo}" id="noticia" style="width: 600px;"/>


<h:commandButton id="cadastrar" value="#{boletim.confirmButton}" action="#{boletim.cadastrar}"/>
18


                   Escrevendo o Teste
package br.ufrn.admin.jsf.tests.suportetecnico;

import org.junit.Test;

import br.ufrn.arq.tests.WebTestCase;
import static org.junit.Assert.*;

public class TipoDeAmbienteTests extends WebTestCase {

    @Test
    public void cadastradoComSucesso() {
        selenium.open("/admin/suporte_tecnico/TipoAmbiente/form.jsf");
        selenium.type("nomeAmbiente", "AMBIENTE2");
        selenium.click("cadastrar");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("Operação realizada com sucesso!"));

    }
}
19


Executando
20


PROCESSO
21


     OBRIGADO




     Mayron Cachina
mayroncachina@gmail.com
  http://cachina.com.br

Contenu connexe

Tendances

Selenium
SeleniumSelenium
Selenium
fatec
 
Automatização de testes funcionais com selenium etapa 1
Automatização de testes funcionais com selenium  etapa 1Automatização de testes funcionais com selenium  etapa 1
Automatização de testes funcionais com selenium etapa 1
Cintia Armesto
 
JUnit: framework de testes unitários
JUnit: framework de testes unitáriosJUnit: framework de testes unitários
JUnit: framework de testes unitários
elliando dias
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 

Tendances (20)

Selenium
SeleniumSelenium
Selenium
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Selenium ide apresentação
Selenium ide   apresentaçãoSelenium ide   apresentação
Selenium ide apresentação
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011
 
Automatização de testes funcionais com selenium etapa 1
Automatização de testes funcionais com selenium  etapa 1Automatização de testes funcionais com selenium  etapa 1
Automatização de testes funcionais com selenium etapa 1
 
Selenium ide
Selenium ideSelenium ide
Selenium ide
 
JUnit: framework de testes unitários
JUnit: framework de testes unitáriosJUnit: framework de testes unitários
JUnit: framework de testes unitários
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Introducao logica2
Introducao logica2Introducao logica2
Introducao logica2
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
Java 03
Java 03Java 03
Java 03
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com selenium
 
CVS
CVSCVS
CVS
 

Similaire à Testes Funcionais com Selenium

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando dias
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Similaire à Testes Funcionais com Selenium (20)

Testes de regressão automatizados
Testes de regressão automatizadosTestes de regressão automatizados
Testes de regressão automatizados
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Aula1
Aula1Aula1
Aula1
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
JUnit
JUnitJUnit
JUnit
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 

Plus de Mayron Cachina

Plus de Mayron Cachina (20)

PotiLivre, uma comunidade de software livre voltada para você!
PotiLivre, uma comunidade de software livre voltada para você!PotiLivre, uma comunidade de software livre voltada para você!
PotiLivre, uma comunidade de software livre voltada para você!
 
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?
 
Poti Livre
Poti LivrePoti Livre
Poti Livre
 
Desbravando o HTML5
Desbravando o HTML5Desbravando o HTML5
Desbravando o HTML5
 
Apresentação GDG Natal FLISOL NATAL 2013
Apresentação GDG Natal FLISOL NATAL 2013Apresentação GDG Natal FLISOL NATAL 2013
Apresentação GDG Natal FLISOL NATAL 2013
 
Apresentação GDG Natal
Apresentação GDG NatalApresentação GDG Natal
Apresentação GDG Natal
 
Como ganhar dinheiro no mundo mobile
Como ganhar dinheiro no mundo mobile Como ganhar dinheiro no mundo mobile
Como ganhar dinheiro no mundo mobile
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGap
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com Android
 
Python com django
Python com djangoPython com django
Python com django
 
Servidores WEB
Servidores WEBServidores WEB
Servidores WEB
 
Jogos em Python utilizando PyGame
Jogos em Python utilizando PyGameJogos em Python utilizando PyGame
Jogos em Python utilizando PyGame
 
CTE - Controle de Estoque
CTE - Controle de EstoqueCTE - Controle de Estoque
CTE - Controle de Estoque
 
Web 2.0 + Poder ao usuario
Web 2.0 + Poder ao usuarioWeb 2.0 + Poder ao usuario
Web 2.0 + Poder ao usuario
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Introdução a linguagem de programação Python
Introdução a linguagem de programação PythonIntrodução a linguagem de programação Python
Introdução a linguagem de programação Python
 
Ferramentas para web, Desenvolvendo fácil
Ferramentas para web, Desenvolvendo fácilFerramentas para web, Desenvolvendo fácil
Ferramentas para web, Desenvolvendo fácil
 
Acessibilidade
AcessibilidadeAcessibilidade
Acessibilidade
 
Workshop (Mozilla Party) Desenvolvendo Extensões para o Firefox 3.0
Workshop (Mozilla Party)  Desenvolvendo Extensões para o Firefox 3.0Workshop (Mozilla Party)  Desenvolvendo Extensões para o Firefox 3.0
Workshop (Mozilla Party) Desenvolvendo Extensões para o Firefox 3.0
 
Firefox 3, novidades
Firefox 3, novidadesFirefox 3, novidades
Firefox 3, novidades
 

Dernier

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
azulassessoria9
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
Ana Lemos
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
RavenaSales1
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
LusGlissonGud
 

Dernier (20)

atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Testes Funcionais com Selenium

  • 2. 2 SELENIUM ● Selenium IDE ● Extensão do FF, que permite gravar, editar, executar testes. ● Selenium Remote Control ● Bibliotecas e servidor para executar os testes. ● Selenium Grid ● Distribuição de testes em multiplas máquinas
  • 3. 3 SELENIUM IDE ● Extensão do FireFox que possibilita a gravação de testes na sua aplicação web. ● Não é apenas um gravador ou editor de testes, é uma ferramenta completa, onde pode até mesmo executar os seus testes.
  • 4. 4 SELENIUM IDE Ferramentas > Selenium IDE
  • 5. 5 SELENIUM IDE URL Padrão para o teste Executar Testes Indica que está sendo gravado um testes Suíte de Testes Lista de comandos Executados nessa gravação Área de Novos Comandos Comandos Executados
  • 7. 7 Comandos SELENIUM IDE ● Open ● Assert Title ● Click and Wait ● Click ● Type ● Wait ● Close ● Go Back ● Is Text Present ● Key Down ● Key Press ● Key Up ● Refresh ● Submit ● Uncheck ● Check ● ...
  • 9. 9 Exportando o teste para Java Arquivo > Exportar Teste Como.. > Java (Junit) Selenium RC package com.example.tests; import com.thoughtworks.selenium.*; import java.util.regex.Pattern; public class busca extends SeleneseTestCase { public void setUp() throws Exception { setUp("http://change-this-to-the-site-you-are-testing/", "*iexplore"); } public void testBusca() throws Exception { selenium.open("/admin/configuracoes/papeis/lista_usuario_papel.jsf"); selenium.select("form:sistema", "label=SIGAA"); selenium.select("form:sistema", "label=SIGAA"); selenium.select("form:subsistema", "label=BIBLIOTECA"); selenium.select("form:subsistema", "label=BIBLIOTECA"); selenium.click("//option[@value='14000']"); selenium.click("//option[@value='14000']"); selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL"); selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL"); selenium.click("form:j_id_jsp_513967898_19"); selenium.click("form:j_id_jsp_513967898_19"); } }
  • 10. 10 SELENIUN REMOTE CONTROL (RC) ● Ferramenta auxiliar do Selenium IDE. ● Realiza os testes gravados em outros browser. ● É uma ferramenta tipo record-and-playback ● Não permite com o teste, ou seja modifica-lo para usar várias condições. ● Algumas linguagens suportadas: ● Java ● .Net ● Python ● Ruby ● PHP
  • 11. 11
  • 13. 13 SELENIUM GRID ● Distribui os testes em múltiplas máquinas. ● Reduz o tempo gasto na execução de uma suíte de testes.
  • 14. 14 Classe TestSuite package br.ufrn.admin.jsf.tests; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.junit.runners.Suite; import com.thoughtworks.selenium.DefaultSelenium; @RunWith(Suite.class) @Suite.SuiteClasses( { UnidadeTests.class }) public class SigadminTestSuite extends WebTestCase { @BeforeClass public static void setUp() throws Exception { selenium = new DefaultSelenium("localhost", 4567, "*firefox3", "http://localhost:8080/admin/"); selenium.start(); selenium.open("http://localhost:8080/admin/login.jsf"); selenium.type("login", "mayron"); selenium.type("senha", "mayron"); selenium.click("logar"); selenium.waitForPageToLoad("200000"); } @AfterClass public static void tearDown() throws Exception { selenium.stop(); } }
  • 15. 15 Elementos do TestSuite @Suite.SuiteClasses( { MaterialTreinamentoMBeanTests.class, TipoMaterialTreinamentoMBeanTests.class, TemplateDeDocumentoTests.class, TipoDocumentoTemplateTest.class, MensagemAvisoTests.class, ConfiguracaoSistemasTest.class, DadosInstitucionaisTest.class, MaterialDeTreinamentoTests.class, TipoDeAmbienteTests.class, UsuarioAmbienteTests.class, RegistroEntradaTests.class, ConsultaErrosTests.class, RegistrarAcessoPuplicoTests.class, LogOperacoesTests.class, LogServidorTests.class, LogJbcTests.class, ComunicacaoGrupo.class, NotificacaoOnline.class, AvisoSistema.class, DocumentosTests.class, EventosTests.class, SessoesTests.class, BoletimTests.class, ClippingTests.class, JornalTests.class, RecusosSistemaTests.class, UnidadeTests.class, PermissoesTests.class, })
  • 16. 16 Lista de Browser ● *mock ● *chrome ● *iexplore ● *firefox3 ● *safariproxy ● *konqueror ● *safari ● *opera ● *iehta ● *custom
  • 17. 17 Preparando a JSP ● No form a opção prependId como false e ids em todos os campos de formulário. <h:form id="formulario" prependId="false"> <h:inputText value="#{boletim.noticia.titulo}" id="noticia" style="width: 600px;"/> <h:commandButton id="cadastrar" value="#{boletim.confirmButton}" action="#{boletim.cadastrar}"/>
  • 18. 18 Escrevendo o Teste package br.ufrn.admin.jsf.tests.suportetecnico; import org.junit.Test; import br.ufrn.arq.tests.WebTestCase; import static org.junit.Assert.*; public class TipoDeAmbienteTests extends WebTestCase { @Test public void cadastradoComSucesso() { selenium.open("/admin/suporte_tecnico/TipoAmbiente/form.jsf"); selenium.type("nomeAmbiente", "AMBIENTE2"); selenium.click("cadastrar"); selenium.waitForPageToLoad("30000"); assertTrue(selenium.isTextPresent("Operação realizada com sucesso!")); } }
  • 21. 21 OBRIGADO Mayron Cachina mayroncachina@gmail.com http://cachina.com.br