Atc2017 sp ppt

17
Protractor com Xvfb para Integração Contínua AgileTesters Conference 2017

Transcript of Atc2017 sp ppt

Page 1: Atc2017 sp ppt

Protractor com Xvfb para Integração

ContínuaAgileTesters Conference 2017

Page 2: Atc2017 sp ppt

Agenda• Apresentação;• Problema;• Protractor;• Integração Contínua;• Headless Browsers;• Xvfb;• Dicas do dia;

Page 3: Atc2017 sp ppt

Apresentação• Marcelo Soares

• Formado em computação pela UNESP-Bauru;

• Trabalho com testes desde 2010;

• QA na

Page 4: Atc2017 sp ppt

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?

Page 5: Atc2017 sp ppt

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

Page 6: Atc2017 sp ppt

Protractor

• Fácil setup;

• Bastante utilizado (suporte da comunidade - https://github.com/angular/protractor);

• Utiliza javascript;

Page 7: Atc2017 sp ppt

Continuous Integration

https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html

Page 8: Atc2017 sp ppt

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;

Page 9: Atc2017 sp ppt

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;

Page 10: Atc2017 sp ppt

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.”

Page 11: Atc2017 sp ppt

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;

Page 12: Atc2017 sp ppt

Xvfb• Como instalar o Xvfb?

• Instalando os browsers:

Page 13: Atc2017 sp ppt

Xvfb• Rodando seu browser no Xvfb:

• xvfb-run <browser> <URL>

• Protractor:

Page 14: Atc2017 sp ppt

DEMO

Page 15: Atc2017 sp ppt

Xvfb• Não é um headless browser!

• Seus testes rodam no browser de verdade!!

Page 16: Atc2017 sp ppt

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 =)

Page 17: Atc2017 sp ppt

[email protected]://br.linkedin.com/in/marcelorss

@marcelojoale

Obrigado!