SlideShare uma empresa Scribd logo
1 de 29
ISCTE – INSTITUTO UNIVERSITÁRIO DE LISBOA
MESTRADO EM SOFTWARE DE CÓDIGO ABERTO
INTRODUÇÃO AO SOFTWARE DE CÓDIGO ABERTO
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
INTRODUÇÃO AO SOFTWARE DE CÓDIGO ABERTO
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
Estudante: Emanuel Agostinho Sebastião Mateus
Nº 80383
Professor: Carlos Costa, PhD
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
• Ferramenta
• Fase no Processo de desenvolvimento
• Tipo de Suporte
• Exemplificação
• Instalação
• Utilização
• Análise SWOT
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
FERRAMENTA
SELENIUM
 O Selenium é uma framework para automatização de testes de aplicações web.
Ela suporta diversos navegadores (web browser), diferentes sistemas operativos e
diferentes linguagens de programação. Esta ferramenta open source foi
inicialmente desenvolvida em java, no entanto atualmente podemos encontrar
várias versões da mesma desenvolvida em várias linguagens de programação.
 A versão Java do selenium encontra-se na versão 3.5.0 e é distribuída sob a
licença Apache 2.0, o seu repositório está em github.com/SeleniumHQ e a
pagina oficial da mesma pode ser acessada em seleniumhq.org.
 Esta ferramenta de automação de testes possui quatro componentes: Selenium
IDE, Selenium client API, Selenium WebDriver (Selenium Remote Control) e
Selenium Grid.
Selenium IDE
 É distribuído sob forma de plugin para o Firefox (Firefox Add-On). Ela
permite previamente gravar um conjunto de testes nas páginas web que
posteriormente podem ser editados e executados.
 O Selenium IDE tem neste momento problemas de compatibilidades de
com as novas versões do Firefox 55, pelo que o seu uso deixou de ser
recomendável.
Selenium client API
 Disponibiliza o antigo interface que dá a liberdade dos programadores se
comunicarem com o selenium usando outras linguagem de programação para
escreverem os testes de software. Apesar de existir uma nova versão da API
associada a componente Webdriver, este antigo componente ainda funciona.
Selenium WebDriver
 É o sucessor do Selenium Remote Control que nada mais era do que um
pequeno servidor que, automaticamente permite abrir e fechar um navegador,
agindo como um proxy HTTP que aceitava as requisições web vinda dos scripts
do Selenium.
 Webdriver é uma API melhorada do Selenium que não precisa de um servidor
especial para executar testes. Na prática usa-se uma linguagem de programação
para invocar a API, no script definimos o objeto webdriver que é associado a um
interpretador de um navegador web, a seguir definimos os testes que devem ser
executados.
Selenium Grid
 O Selenium Grid permite executar testes em paralelo em várias máquinas e em
diferentes versões do navegador web. Ela permite a gestão centralizada testes
individuais.
 Na prática o Selenium Grid é um servidor que permite efectuar testes que
correm em diferentes navegador web que estão em execução diferentes
máquinas remotas. Com Selenium Grid, um servidor atua como um hub. Os
testes contatam o hub para obter acesso às instâncias do navegador permitindo
deste modo testes remotos distribuídos e ou paralelos.
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
FASE NO PROCESSO DE DESENVOLVIMENTO
FASE NO PROCESSO DE DESENVOLVIMENTO
O webDriver permite recorrer a API do selenium para efectuar testes automatizados. Ela
pode ser usada durante o processo de desenvolvimento ou na fase da avaliação da
qualidade do sistema.
Durante o processo de desenvolvimento de software geralmente é necessário efectuar
testes repetitivos sobre uma determinada funcionalidade em particular ou sobre o
sistema como um todo.
Tarefas simples como preencher um formulário, validar os campos, calcular determinados
valores e submetê-lo, ou tarefas mais complexas que envolvem testes de desempenho,
carga e stress, são tarefas propensas a erro e às vezes impossíveis quando executadas
por seres humanos.
É nesta fase do processo de desenvolvimento do software em que se deve recorrer a
ferramentas como o selenium para automatizar tais testes.
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
TIPO DE SUPORTE
TIPO DE SUPORTE
 Esta ferramenta apoia o desenvolvedor e testadores de software no
planeamento e execução de tarefas que podem ser automatizadas.
Desta forma os desenvolvedores conseguem evitar bugs que poderiam
comprometer a qualidade do software.
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
EXEMPLIFICAÇÃO
EXEMPLIFICAÇÃO
Cenário:
 Validar se todos os links das páginas uma aplicação web estão funcionais (não
estão quebrados).
EXEMPLIFICAÇÃO
Sem testes automatizados:
 Implica ter previamente uma lista atualizada com todos os links existentes na
aplicação.
 Percorrer toda lista dos links e ir verificando manualmente na aplicação se todos
os links da lista estão a funcionar ou estão quebrados.
 Gerar um relatório manual sobre o processo de verificação.
Neste cenário, desperdiça-se tempo e recursos humanos. Aumenta a probabilidade
de erro humano, e a cada atualização de páginas ou de funcionalidades
gastávamos novamente tempo e recursos.
EXEMPLIFICAÇÃO
Com testes automatizados:
 Com o Selenium, bastava criar os testes automatizados uma vez e estes
estavam aptos para serem executados recursiva e indeterminadamente, com
maior rapidez e com capacidade para gerar um relatório automático que
poderiam ser enviado automaticamente por email a um grupo.
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
INSTALAÇÃO
INSTALAÇÃO
O processo de instalação do Selenium Webdriver na versão Java é extremamente
simples, e pode ser executado em três passos:
 Instalação do Selenium Standalone Server que se encontra disponivel website
www.seleniumhq.org/download.
 Instalação do Marionette Driver (driver de automação do motor Gekco)
https://github.com/mozilla/geckodriver/releases
 Incluir e associar Selenium Standalone Server ao IDE ou ao programa java.
O único pré-requisito é possuir o Java Development Kit (JDK) instalado na computador
onde será desenvolvido a aplicação de testes. O meso pode ser obtido em
www.oracle.com/technetwork/java/javase/downloads/index.html.
INSTALAÇÃO
Figura 1 - Download do Selenium Standalone Server
INSTALAÇÃO
Figura 2 - Download do Marionette Driver
INSTALAÇÃO
Figura 3 - Aceder as proriedades do projeto no Eclipse
INSTALAÇÃO
Figura 4 - Incluir e associar Selenium Standalone Server no Eclipse
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
UTILIZAÇÃO
UTILIZAÇÃO
 O Selenium Webdriver é invocado em modo de programação. O seguinte
código fonte permite abrir automaticamente o navegador web, ir página
principal do website, clicar nos links definidos e efectuar o login com sucesso,
após uns segundos fecha o navegador web.
INSTALAÇÃO
Figura 5 - Utilização do Selenium WebDriver
SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
ANÁLISE SWOT
ANÁLISE SWOT
PONTOS FORTES PONTOS FRACOS
o Maturidade da Ferramenta. (existe a
mais de 10 anos)
o Possui uma grande comunidade de
utilizadores.
o Foi e ou ainda é utilizado na Google.
o Permite reduzir custos com licenças.
o Compatibilidade com vários sistemas
operativos, vários navegadores e
linguagens de programação
o Curva de aprendizagem fácil.
o Apenas funciona para testar aplicações web.
o Está dependente de algumas bibliotecas de
terceiros.
o Alguns componentes se tornaram obsolete por
causa da compatibilidade com certos
navegadores. (Selenium IDE)
OPORTUNIDADES AMEAÇAS
o Não está limitada ao teste de
qualidade.
o Utilização da ferramenta para outros
fins.
o A concorrência pode obter o mesmo software e
melhorar as suas funcionalidades.
o O uso errado da ferramenta pode afetar a
produtividade das equipas.
BIBLIOGRAFIA
https://en.wikipedia.org/wiki/Selenium_(software)
http://www.seleniumhq.org/projects/webdriver/
https://www.ibm.com/developerworks/br/local/tivoli/maximo_selenium_autom_tests/
https://www.infoq.com/br/news/2011/07/Selenium-2
http://www.qualister.com.br/blog/introducao-ao-selenium
https://www.youtube.com/watch?v=2SzdhH8xAX4&t=141s
https://www.youtube.com/watch?v=juKRybHPMwE&t=24s

Mais conteúdo relacionado

Mais procurados

Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
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
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...tdc-globalcode
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisElias Nogueira
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumVictor Serta
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkMayara Fernandes
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste ContinuoElias Nogueira
 
Selenium Workshop
Selenium Workshop Selenium Workshop
Selenium Workshop Thoughtworks
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustMayara Fernandes
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaHenrique Limas
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidElias Nogueira
 
Selenium
SeleniumSelenium
Seleniumfatec
 
Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsFelipe Santos
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 

Mais procurados (20)

Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
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
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Selenium
SeleniumSelenium
Selenium
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com Selenium
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot framework
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
Selenium Workshop
Selenium Workshop Selenium Workshop
Selenium Workshop
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e Android
 
Selenium
SeleniumSelenium
Selenium
 
Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com Jenkins
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 

Semelhante a Selenium: Automatização de testes web

Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterQualister
 
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
 
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...Renato Groffe
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonSuporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonRicardo Ferreira
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Automatização de Testes com Selenium
Automatização de Testes com SeleniumAutomatização de Testes com Selenium
Automatização de Testes com SeleniumLuís Cesar Teodoro
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
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
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Automacão de Testes Funcionais com Selenium
Automacão de Testes Funcionais com SeleniumAutomacão de Testes Funcionais com Selenium
Automacão de Testes Funcionais com SeleniumFabrício Lemos
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioPatrick Monteiro
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JSNàtali Cabral
 

Semelhante a Selenium: Automatização de testes web (20)

Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium Qualister
 
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
 
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
 
Selenium web pt br
Selenium web pt brSelenium web pt br
Selenium web pt br
 
Selenium web pt br
Selenium web pt brSelenium web pt br
Selenium web pt br
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonSuporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Automatização de Testes com Selenium
Automatização de Testes com SeleniumAutomatização de Testes com Selenium
Automatização de Testes com Selenium
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
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
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Automacão de Testes Funcionais com Selenium
Automacão de Testes Funcionais com SeleniumAutomacão de Testes Funcionais com Selenium
Automacão de Testes Funcionais com Selenium
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.io
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
Aula maven
Aula   mavenAula   maven
Aula maven
 

Mais de eurosigdoc acm

Blockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor FinanceiroBlockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor Financeiroeurosigdoc acm
 
No code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripNo code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripeurosigdoc acm
 
The oracle problem nos smart contracts
The oracle problem nos smart contractsThe oracle problem nos smart contracts
The oracle problem nos smart contractseurosigdoc acm
 
Robotic process automation
Robotic process automation Robotic process automation
Robotic process automation eurosigdoc acm
 
Robotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo DelloiteRobotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo Delloiteeurosigdoc acm
 
Projeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma pplProjeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma ppleurosigdoc acm
 
Implementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low CodeImplementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low Codeeurosigdoc acm
 
Proteção de dados e redes sociais
Proteção de dados e redes sociaisProteção de dados e redes sociais
Proteção de dados e redes sociaiseurosigdoc acm
 
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIALCLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIALeurosigdoc acm
 
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDINGCROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDINGeurosigdoc acm
 
Low code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicaçõesLow code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicaçõeseurosigdoc acm
 
Robotic Process Automation
Robotic Process AutomationRobotic Process Automation
Robotic Process Automationeurosigdoc acm
 
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDECrowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDEeurosigdoc acm
 
Business Intelligence e o Desporto
Business Intelligence e o DesportoBusiness Intelligence e o Desporto
Business Intelligence e o Desportoeurosigdoc acm
 
Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?eurosigdoc acm
 
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...eurosigdoc acm
 
Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo eurosigdoc acm
 
Outsystems e o Universo do Low-Code
Outsystems e o Universo do Low-CodeOutsystems e o Universo do Low-Code
Outsystems e o Universo do Low-Codeeurosigdoc acm
 

Mais de eurosigdoc acm (20)

Blockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor FinanceiroBlockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor Financeiro
 
No code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripNo code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTrip
 
The oracle problem nos smart contracts
The oracle problem nos smart contractsThe oracle problem nos smart contracts
The oracle problem nos smart contracts
 
Robotic process automation
Robotic process automation Robotic process automation
Robotic process automation
 
Robotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo DelloiteRobotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo Delloite
 
Projeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma pplProjeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma ppl
 
Implementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low CodeImplementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low Code
 
Proteção de dados e redes sociais
Proteção de dados e redes sociaisProteção de dados e redes sociais
Proteção de dados e redes sociais
 
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIALCLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
 
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDINGCROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
 
Low code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicaçõesLow code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicações
 
Robotic Process Automation
Robotic Process AutomationRobotic Process Automation
Robotic Process Automation
 
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDECrowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
 
Business Intelligence e o Desporto
Business Intelligence e o DesportoBusiness Intelligence e o Desporto
Business Intelligence e o Desporto
 
Blockchain
Blockchain Blockchain
Blockchain
 
Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?
 
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
 
Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo
 
Outsystems e o Universo do Low-Code
Outsystems e o Universo do Low-CodeOutsystems e o Universo do Low-Code
Outsystems e o Universo do Low-Code
 
Erp
ErpErp
Erp
 

Selenium: Automatização de testes web

  • 1. ISCTE – INSTITUTO UNIVERSITÁRIO DE LISBOA MESTRADO EM SOFTWARE DE CÓDIGO ABERTO INTRODUÇÃO AO SOFTWARE DE CÓDIGO ABERTO SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source
  • 2. INTRODUÇÃO AO SOFTWARE DE CÓDIGO ABERTO SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source Estudante: Emanuel Agostinho Sebastião Mateus Nº 80383 Professor: Carlos Costa, PhD
  • 3. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source • Ferramenta • Fase no Processo de desenvolvimento • Tipo de Suporte • Exemplificação • Instalação • Utilização • Análise SWOT
  • 4. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source FERRAMENTA
  • 5. SELENIUM  O Selenium é uma framework para automatização de testes de aplicações web. Ela suporta diversos navegadores (web browser), diferentes sistemas operativos e diferentes linguagens de programação. Esta ferramenta open source foi inicialmente desenvolvida em java, no entanto atualmente podemos encontrar várias versões da mesma desenvolvida em várias linguagens de programação.  A versão Java do selenium encontra-se na versão 3.5.0 e é distribuída sob a licença Apache 2.0, o seu repositório está em github.com/SeleniumHQ e a pagina oficial da mesma pode ser acessada em seleniumhq.org.  Esta ferramenta de automação de testes possui quatro componentes: Selenium IDE, Selenium client API, Selenium WebDriver (Selenium Remote Control) e Selenium Grid.
  • 6. Selenium IDE  É distribuído sob forma de plugin para o Firefox (Firefox Add-On). Ela permite previamente gravar um conjunto de testes nas páginas web que posteriormente podem ser editados e executados.  O Selenium IDE tem neste momento problemas de compatibilidades de com as novas versões do Firefox 55, pelo que o seu uso deixou de ser recomendável.
  • 7. Selenium client API  Disponibiliza o antigo interface que dá a liberdade dos programadores se comunicarem com o selenium usando outras linguagem de programação para escreverem os testes de software. Apesar de existir uma nova versão da API associada a componente Webdriver, este antigo componente ainda funciona.
  • 8. Selenium WebDriver  É o sucessor do Selenium Remote Control que nada mais era do que um pequeno servidor que, automaticamente permite abrir e fechar um navegador, agindo como um proxy HTTP que aceitava as requisições web vinda dos scripts do Selenium.  Webdriver é uma API melhorada do Selenium que não precisa de um servidor especial para executar testes. Na prática usa-se uma linguagem de programação para invocar a API, no script definimos o objeto webdriver que é associado a um interpretador de um navegador web, a seguir definimos os testes que devem ser executados.
  • 9. Selenium Grid  O Selenium Grid permite executar testes em paralelo em várias máquinas e em diferentes versões do navegador web. Ela permite a gestão centralizada testes individuais.  Na prática o Selenium Grid é um servidor que permite efectuar testes que correm em diferentes navegador web que estão em execução diferentes máquinas remotas. Com Selenium Grid, um servidor atua como um hub. Os testes contatam o hub para obter acesso às instâncias do navegador permitindo deste modo testes remotos distribuídos e ou paralelos.
  • 10. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source FASE NO PROCESSO DE DESENVOLVIMENTO
  • 11. FASE NO PROCESSO DE DESENVOLVIMENTO O webDriver permite recorrer a API do selenium para efectuar testes automatizados. Ela pode ser usada durante o processo de desenvolvimento ou na fase da avaliação da qualidade do sistema. Durante o processo de desenvolvimento de software geralmente é necessário efectuar testes repetitivos sobre uma determinada funcionalidade em particular ou sobre o sistema como um todo. Tarefas simples como preencher um formulário, validar os campos, calcular determinados valores e submetê-lo, ou tarefas mais complexas que envolvem testes de desempenho, carga e stress, são tarefas propensas a erro e às vezes impossíveis quando executadas por seres humanos. É nesta fase do processo de desenvolvimento do software em que se deve recorrer a ferramentas como o selenium para automatizar tais testes.
  • 12. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source TIPO DE SUPORTE
  • 13. TIPO DE SUPORTE  Esta ferramenta apoia o desenvolvedor e testadores de software no planeamento e execução de tarefas que podem ser automatizadas. Desta forma os desenvolvedores conseguem evitar bugs que poderiam comprometer a qualidade do software.
  • 14. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source EXEMPLIFICAÇÃO
  • 15. EXEMPLIFICAÇÃO Cenário:  Validar se todos os links das páginas uma aplicação web estão funcionais (não estão quebrados).
  • 16. EXEMPLIFICAÇÃO Sem testes automatizados:  Implica ter previamente uma lista atualizada com todos os links existentes na aplicação.  Percorrer toda lista dos links e ir verificando manualmente na aplicação se todos os links da lista estão a funcionar ou estão quebrados.  Gerar um relatório manual sobre o processo de verificação. Neste cenário, desperdiça-se tempo e recursos humanos. Aumenta a probabilidade de erro humano, e a cada atualização de páginas ou de funcionalidades gastávamos novamente tempo e recursos.
  • 17. EXEMPLIFICAÇÃO Com testes automatizados:  Com o Selenium, bastava criar os testes automatizados uma vez e estes estavam aptos para serem executados recursiva e indeterminadamente, com maior rapidez e com capacidade para gerar um relatório automático que poderiam ser enviado automaticamente por email a um grupo.
  • 18. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source INSTALAÇÃO
  • 19. INSTALAÇÃO O processo de instalação do Selenium Webdriver na versão Java é extremamente simples, e pode ser executado em três passos:  Instalação do Selenium Standalone Server que se encontra disponivel website www.seleniumhq.org/download.  Instalação do Marionette Driver (driver de automação do motor Gekco) https://github.com/mozilla/geckodriver/releases  Incluir e associar Selenium Standalone Server ao IDE ou ao programa java. O único pré-requisito é possuir o Java Development Kit (JDK) instalado na computador onde será desenvolvido a aplicação de testes. O meso pode ser obtido em www.oracle.com/technetwork/java/javase/downloads/index.html.
  • 20. INSTALAÇÃO Figura 1 - Download do Selenium Standalone Server
  • 21. INSTALAÇÃO Figura 2 - Download do Marionette Driver
  • 22. INSTALAÇÃO Figura 3 - Aceder as proriedades do projeto no Eclipse
  • 23. INSTALAÇÃO Figura 4 - Incluir e associar Selenium Standalone Server no Eclipse
  • 24. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source UTILIZAÇÃO
  • 25. UTILIZAÇÃO  O Selenium Webdriver é invocado em modo de programação. O seguinte código fonte permite abrir automaticamente o navegador web, ir página principal do website, clicar nos links definidos e efectuar o login com sucesso, após uns segundos fecha o navegador web.
  • 26. INSTALAÇÃO Figura 5 - Utilização do Selenium WebDriver
  • 27. SELENIUM - Ferramenta de engenharia de software aplicado ao Software Open Source ANÁLISE SWOT
  • 28. ANÁLISE SWOT PONTOS FORTES PONTOS FRACOS o Maturidade da Ferramenta. (existe a mais de 10 anos) o Possui uma grande comunidade de utilizadores. o Foi e ou ainda é utilizado na Google. o Permite reduzir custos com licenças. o Compatibilidade com vários sistemas operativos, vários navegadores e linguagens de programação o Curva de aprendizagem fácil. o Apenas funciona para testar aplicações web. o Está dependente de algumas bibliotecas de terceiros. o Alguns componentes se tornaram obsolete por causa da compatibilidade com certos navegadores. (Selenium IDE) OPORTUNIDADES AMEAÇAS o Não está limitada ao teste de qualidade. o Utilização da ferramenta para outros fins. o A concorrência pode obter o mesmo software e melhorar as suas funcionalidades. o O uso errado da ferramenta pode afetar a produtividade das equipas.