SlideShare uma empresa Scribd logo
1 de 17
Protractor com Xvfb para
Integração Contínua
AgileTesters Conference 2017
Agenda
• Apresentação;
• Problema;
• Protractor;
• Integração Contínua;
• Headless Browsers;
• Xvfb;
• Dicas do dia;
Apresentação
• Marcelo Soares
• Formado em computação pela UNESP-Bauru;
• Trabalho com testes desde 2010;
• QA na
Problema
• No mundo “ágil” em que vivemos, todos somos
obrigados a queremos testar tudo, toda hora, de
todas as maneiras possíveis, mas o que fazer para
rodar seus testes end-to-end em um servidor que
não possui interface gráfica?
Protractor
• Framework para testes end-to-end para aplicações
em Angular e AngularJS;
• Esperas automáticas*;
• Roda os testes através da interface (como se fosse
um usuário de verdade);
• Roda sobre o WebDriver;
* as esperas podem ser desabitadas e o protractor pode ser usado para qualquer aplicação web
Protractor
• Fácil setup;
• Bastante utilizado (suporte da comunidade -
https://github.com/angular/protractor);
• Utiliza javascript;
Continuous Integration
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
Headless Browsers
• Browsers sem interface gráfica, mas que
conseguem executar ações dentro de uma
determinada URL;
• Testes mais rápidos;
• SO não precisa de interface gráfica;
Headless Browsers
• Por que não usar PhantomJS com Protractor?
• Comportamento diferente dos browsers reais em
algumas aplicações;
• Falsos positivos;
• Aumenta o custo de manutenção;
Headless Browsers
• A própria equipe do Protractor não recomenda o
uso do PhantomJS:
“Note: We recommend against using PhantomJS for tests with
Protractor. There are many reported issues with PhantomJS
crashing and behaving differently from real browsers.”
Xvfb
• X - sistema de display utilizado pelo Linux (X11);
• Virtual framebuffer X server for X Version 11;
• Fornece um buffer falso para programas gráficos
escreverem sobre ele, permitindo que qualquer
programa rode “headless”;
• Não é tão rápido quanto um headless browser;
• https://www.x.org/archive/X11R7.6/doc/man/man1/Xvfb
.1.xhtml;
Xvfb
• Como instalar o Xvfb?
• Instalando os browsers:
Xvfb
• Rodando seu browser no Xvfb:
• xvfb-run <browser> <URL>
• Protractor:
DEMO
Xvfb
• Não é um headless browser!
• Seus testes rodam no browser de verdade!!
Dicas do dia!
• Não use Protractor para testar TUDO, mantenha o foco
no end-to-end;
• Aprenda a usar o arquivo de configuração do
Protractor;
• Leia a documentação da API;
• Não use texto em validações nem para encontrar
elementos;
• Participe da comunidade =)
marcelorss@live.com
https://br.linkedin.com/in/marcelorss
@marcelojoale
Obrigado!

Mais conteúdo relacionado

Mais procurados

Dapper - Developers-SP - Junho/2017
Dapper - Developers-SP - Junho/2017Dapper - Developers-SP - Junho/2017
Dapper - Developers-SP - Junho/2017Renato Groff
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geralRenato Groff
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Mariana Elisa Moisés , CTFL-AT,MBA
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSStefan Teixeira
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Igor Abade
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017Renato Groff
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017Renato Groff
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Glauton Vieira
 
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
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017Renato Groff
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureBruno Nunes Trassante
 
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
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...Renato Groff
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 

Mais procurados (19)

Dapper - Developers-SP - Junho/2017
Dapper - Developers-SP - Junho/2017Dapper - Developers-SP - Junho/2017
Dapper - Developers-SP - Junho/2017
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
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
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + Azure
 
Serverless com python
Serverless com pythonServerless com python
Serverless com python
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 

Destaque

Utilizando Cucumber para um Continuous Delivery
Utilizando Cucumber para um Continuous DeliveryUtilizando Cucumber para um Continuous Delivery
Utilizando Cucumber para um Continuous DeliveryRobson Agapito Correa
 
Los Molinos de la mente: Integración, Decisión y Acción
Los Molinos de la mente: Integración, Decisión y AcciónLos Molinos de la mente: Integración, Decisión y Acción
Los Molinos de la mente: Integración, Decisión y AcciónAlberto Levy
 
ENVIRONMENTAL NOISE POLLUTION MONITOR.
ENVIRONMENTAL NOISE POLLUTION MONITOR.ENVIRONMENTAL NOISE POLLUTION MONITOR.
ENVIRONMENTAL NOISE POLLUTION MONITOR.Madan Krishna
 
VBAとPythonで始める数値計算教育
VBAとPythonで始める数値計算教育VBAとPythonで始める数値計算教育
VBAとPythonで始める数値計算教育Katsuhiro Morishita
 
Python と私の事情
Python と私の事情Python と私の事情
Python と私の事情tsudaa
 
História da questão ambiental
História da questão ambientalHistória da questão ambiental
História da questão ambientaldemervalm
 
Donald Trump refuses to shake Angela Merkel's hand
Donald Trump refuses to shake Angela Merkel's handDonald Trump refuses to shake Angela Merkel's hand
Donald Trump refuses to shake Angela Merkel's handSusana Gallardo
 
Internal and External publics of Public Relations by Shaining Star Lyngdoh
Internal and External publics of Public Relations by Shaining Star LyngdohInternal and External publics of Public Relations by Shaining Star Lyngdoh
Internal and External publics of Public Relations by Shaining Star LyngdohStar Lyngdoh
 
#CIPD17 Students - NAP Student Conference 2017
#CIPD17 Students - NAP Student Conference 2017#CIPD17 Students - NAP Student Conference 2017
#CIPD17 Students - NAP Student Conference 2017Perry Timms
 
Top E-commerce Trends to Watch Out for in 2017
Top E-commerce Trends to Watch Out for in 2017Top E-commerce Trends to Watch Out for in 2017
Top E-commerce Trends to Watch Out for in 2017i95Dev
 
OIL: The Real Outlook
OIL: The Real OutlookOIL: The Real Outlook
OIL: The Real OutlookBob Asken
 
Global Education and Skills Forum 2017 - Educating Global Citizens
Global Education and Skills Forum  2017 -  Educating Global CitizensGlobal Education and Skills Forum  2017 -  Educating Global Citizens
Global Education and Skills Forum 2017 - Educating Global CitizensEduSkills OECD
 
And when they shine ...(Mon mec à moi )
And when they shine ...(Mon mec à moi )And when they shine ...(Mon mec à moi )
And when they shine ...(Mon mec à moi )Makala (D)
 

Destaque (18)

Utilizando Cucumber para um Continuous Delivery
Utilizando Cucumber para um Continuous DeliveryUtilizando Cucumber para um Continuous Delivery
Utilizando Cucumber para um Continuous Delivery
 
CHSurvey introduce
CHSurvey introduceCHSurvey introduce
CHSurvey introduce
 
Los Molinos de la mente: Integración, Decisión y Acción
Los Molinos de la mente: Integración, Decisión y AcciónLos Molinos de la mente: Integración, Decisión y Acción
Los Molinos de la mente: Integración, Decisión y Acción
 
ENVIRONMENTAL NOISE POLLUTION MONITOR.
ENVIRONMENTAL NOISE POLLUTION MONITOR.ENVIRONMENTAL NOISE POLLUTION MONITOR.
ENVIRONMENTAL NOISE POLLUTION MONITOR.
 
VBAとPythonで始める数値計算教育
VBAとPythonで始める数値計算教育VBAとPythonで始める数値計算教育
VBAとPythonで始める数値計算教育
 
Python と私の事情
Python と私の事情Python と私の事情
Python と私の事情
 
Questão ambiental.
Questão ambiental.Questão ambiental.
Questão ambiental.
 
História da questão ambiental
História da questão ambientalHistória da questão ambiental
História da questão ambiental
 
Questão Ambiental
Questão AmbientalQuestão Ambiental
Questão Ambiental
 
Donald Trump refuses to shake Angela Merkel's hand
Donald Trump refuses to shake Angela Merkel's handDonald Trump refuses to shake Angela Merkel's hand
Donald Trump refuses to shake Angela Merkel's hand
 
Internal and External publics of Public Relations by Shaining Star Lyngdoh
Internal and External publics of Public Relations by Shaining Star LyngdohInternal and External publics of Public Relations by Shaining Star Lyngdoh
Internal and External publics of Public Relations by Shaining Star Lyngdoh
 
#CIPD17 Students - NAP Student Conference 2017
#CIPD17 Students - NAP Student Conference 2017#CIPD17 Students - NAP Student Conference 2017
#CIPD17 Students - NAP Student Conference 2017
 
Top E-commerce Trends to Watch Out for in 2017
Top E-commerce Trends to Watch Out for in 2017Top E-commerce Trends to Watch Out for in 2017
Top E-commerce Trends to Watch Out for in 2017
 
OIL: The Real Outlook
OIL: The Real OutlookOIL: The Real Outlook
OIL: The Real Outlook
 
Evaluacion Por Competencias
Evaluacion Por CompetenciasEvaluacion Por Competencias
Evaluacion Por Competencias
 
Des contreverses oubliées
Des contreverses oubliéesDes contreverses oubliées
Des contreverses oubliées
 
Global Education and Skills Forum 2017 - Educating Global Citizens
Global Education and Skills Forum  2017 -  Educating Global CitizensGlobal Education and Skills Forum  2017 -  Educating Global Citizens
Global Education and Skills Forum 2017 - Educating Global Citizens
 
And when they shine ...(Mon mec à moi )
And when they shine ...(Mon mec à moi )And when they shine ...(Mon mec à moi )
And when they shine ...(Mon mec à moi )
 

Semelhante a ATC2017 SP - Protractor com XVFB para CI

O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsBruno Borges
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play frameworkWende Mendes
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...iMasters
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayVitor Albuquerque
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebJairo Junior
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoPatrick Monteiro
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 

Semelhante a ATC2017 SP - Protractor com XVFB para CI (20)

O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flyway
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 

ATC2017 SP - Protractor com XVFB para CI

  • 1. Protractor com Xvfb para Integração Contínua AgileTesters Conference 2017
  • 2. Agenda • Apresentação; • Problema; • Protractor; • Integração Contínua; • Headless Browsers; • Xvfb; • Dicas do dia;
  • 3. Apresentação • Marcelo Soares • Formado em computação pela UNESP-Bauru; • Trabalho com testes desde 2010; • QA na
  • 4. Problema • No mundo “ágil” em que vivemos, todos somos obrigados a queremos testar tudo, toda hora, de todas as maneiras possíveis, mas o que fazer para rodar seus testes end-to-end em um servidor que não possui interface gráfica?
  • 5. Protractor • Framework para testes end-to-end para aplicações em Angular e AngularJS; • Esperas automáticas*; • Roda os testes através da interface (como se fosse um usuário de verdade); • Roda sobre o WebDriver; * as esperas podem ser desabitadas e o protractor pode ser usado para qualquer aplicação web
  • 6. Protractor • Fácil setup; • Bastante utilizado (suporte da comunidade - https://github.com/angular/protractor); • Utiliza javascript;
  • 8. Headless Browsers • Browsers sem interface gráfica, mas que conseguem executar ações dentro de uma determinada URL; • Testes mais rápidos; • SO não precisa de interface gráfica;
  • 9. Headless Browsers • Por que não usar PhantomJS com Protractor? • Comportamento diferente dos browsers reais em algumas aplicações; • Falsos positivos; • Aumenta o custo de manutenção;
  • 10. Headless Browsers • A própria equipe do Protractor não recomenda o uso do PhantomJS: “Note: We recommend against using PhantomJS for tests with Protractor. There are many reported issues with PhantomJS crashing and behaving differently from real browsers.”
  • 11. Xvfb • X - sistema de display utilizado pelo Linux (X11); • Virtual framebuffer X server for X Version 11; • Fornece um buffer falso para programas gráficos escreverem sobre ele, permitindo que qualquer programa rode “headless”; • Não é tão rápido quanto um headless browser; • https://www.x.org/archive/X11R7.6/doc/man/man1/Xvfb .1.xhtml;
  • 12. Xvfb • Como instalar o Xvfb? • Instalando os browsers:
  • 13. Xvfb • Rodando seu browser no Xvfb: • xvfb-run <browser> <URL> • Protractor:
  • 14. DEMO
  • 15. Xvfb • Não é um headless browser! • Seus testes rodam no browser de verdade!!
  • 16. Dicas do dia! • Não use Protractor para testar TUDO, mantenha o foco no end-to-end; • Aprenda a usar o arquivo de configuração do Protractor; • Leia a documentação da API; • Não use texto em validações nem para encontrar elementos; • Participe da comunidade =)