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
Seleniumfatec
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
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 2011Luís Cobucci
 
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 1Cintia Armesto
 
JUnit: framework de testes unitários
JUnit: framework de testes unitáriosJUnit: framework de testes unitários
JUnit: framework de testes unitárioselliando dias
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_frameworkMilton Rodrigues
 
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 seleniumMayron Cachina
 
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 JavaWandesson Soares
 
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 seleniumSandy Maciel
 
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 automatizadosDiego Santos
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
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 seleniumCristiano Caetano
 

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

Testes de regressão automatizados
Testes de regressão automatizadosTestes de regressão automatizados
Testes de regressão automatizadosCristian R. Silva
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
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 DorAllyson Barros
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
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ápidosElias Nogueira
 
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 PHPUnitDiego Tremper
 
Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Vanderson Silva
 
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 2Cezar Souza
 
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 AppiumElias Nogueira
 
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 ÁgilElias Nogueira
 
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...Edlaine Zamora
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
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 fislAdriano Petrich
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
[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)Júlio de Lima
 

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

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ê!Mayron Cachina
 
[#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?Mayron Cachina
 
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 2013Mayron Cachina
 
Apresentação GDG Natal
Apresentação GDG NatalApresentação GDG Natal
Apresentação GDG NatalMayron Cachina
 
Como ganhar dinheiro no mundo mobile
Como ganhar dinheiro no mundo mobile Como ganhar dinheiro no mundo mobile
Como ganhar dinheiro no mundo mobile Mayron Cachina
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapMayron Cachina
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidMayron Cachina
 
Jogos em Python utilizando PyGame
Jogos em Python utilizando PyGameJogos em Python utilizando PyGame
Jogos em Python utilizando PyGameMayron Cachina
 
CTE - Controle de Estoque
CTE - Controle de EstoqueCTE - Controle de Estoque
CTE - Controle de EstoqueMayron Cachina
 
Web 2.0 + Poder ao usuario
Web 2.0 + Poder ao usuarioWeb 2.0 + Poder ao usuario
Web 2.0 + Poder ao usuarioMayron Cachina
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - ConceitosMayron Cachina
 
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 PythonMayron Cachina
 
Ferramentas para web, Desenvolvendo fácil
Ferramentas para web, Desenvolvendo fácilFerramentas para web, Desenvolvendo fácil
Ferramentas para web, Desenvolvendo fácilMayron Cachina
 
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.0Mayron 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

UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Dernier (20)

UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 

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