testando interfaces web com splinter

107
como trazer sua banda favorita para o Friday, July 1, 2011

Upload: francisco-souza

Post on 15-Jan-2015

2.189 views

Category:

Technology


0 download

DESCRIPTION

Palestra "Testando interfaces web com Splinter" apresentada no FISL 12, no dia 01/07/2011 por Andrews Medina e Francisco Souza.

TRANSCRIPT

Page 1: Testando interfaces web com Splinter

como trazer sua banda favorita para o

Friday, July 1, 2011

Page 2: Testando interfaces web com Splinter

ou...

Friday, July 1, 2011

Page 3: Testando interfaces web com Splinter

testando interfaces web com splinter

Friday, July 1, 2011

Page 4: Testando interfaces web com Splinter

Andrews Medina

#cobrateam founderdjangobrasil.org / python.org.br

desenvolvedor @ globo.com

Friday, July 1, 2011

Page 5: Testando interfaces web com Splinter

Francisco Souza

#cobrateam memberdjangobrasil.org

desenvolvedor @ globo.com

Friday, July 1, 2011

Page 6: Testando interfaces web com Splinter

Meet the cure.

proprietary software is the disease.

Friday, July 1, 2011

Page 7: Testando interfaces web com Splinter

testes?

Friday, July 1, 2011

Page 8: Testando interfaces web com Splinter

Friday, July 1, 2011

Page 9: Testando interfaces web com Splinter

show me the code

Friday, July 1, 2011

Page 10: Testando interfaces web com Splinter

interfaces web?

Friday, July 1, 2011

Page 11: Testando interfaces web com Splinter

interfaces x componentes ricos

Friday, July 1, 2011

Page 12: Testando interfaces web com Splinter

interfaces

Friday, July 1, 2011

Page 13: Testando interfaces web com Splinter

componentes

Friday, July 1, 2011

Page 14: Testando interfaces web com Splinter

testando componentes

Friday, July 1, 2011

Page 15: Testando interfaces web com Splinter

qunit

Friday, July 1, 2011

Page 16: Testando interfaces web com Splinter

qunit

• jquery

Friday, July 1, 2011

Page 17: Testando interfaces web com Splinter

qunit

• jquery

• unitário

Friday, July 1, 2011

Page 18: Testando interfaces web com Splinter

qunit

• jquery

• unitário

• api feia

Friday, July 1, 2011

Page 19: Testando interfaces web com Splinter

qunit

• jquery

• unitário

• api feia

• ruim para testes assíncronos

Friday, July 1, 2011

Page 20: Testando interfaces web com Splinter

jasmine

Friday, July 1, 2011

Page 21: Testando interfaces web com Splinter

• bdd

jasmine

Friday, July 1, 2011

Page 22: Testando interfaces web com Splinter

• bdd

• api bonita

jasmine

Friday, July 1, 2011

Page 23: Testando interfaces web com Splinter

• bdd

• api bonita

• inspirado no rspec

jasmine

Friday, July 1, 2011

Page 24: Testando interfaces web com Splinter

• bdd

• api bonita

• inspirado no rspec

• baseado em tópicos

jasmine

Friday, July 1, 2011

Page 25: Testando interfaces web com Splinter

• bdd

• api bonita

• inspirado no rspec

• baseado em tópicos

• bom para testes assíncronos

jasmine

Friday, July 1, 2011

Page 26: Testando interfaces web com Splinter

qunit x jasmine

Friday, July 1, 2011

Page 27: Testando interfaces web com Splinter

jasmine-splinter-runner

Friday, July 1, 2011

Page 28: Testando interfaces web com Splinter

Friday, July 1, 2011

Page 29: Testando interfaces web com Splinter

show me the code

Friday, July 1, 2011

Page 30: Testando interfaces web com Splinter

testando interfaces

Friday, July 1, 2011

Page 31: Testando interfaces web com Splinter

ferramentas

Friday, July 1, 2011

Page 32: Testando interfaces web com Splinter

selenium 1.0

Friday, July 1, 2011

Page 33: Testando interfaces web com Splinter

• lento

selenium 1.0

Friday, July 1, 2011

Page 34: Testando interfaces web com Splinter

• lento

• necessita de server

selenium 1.0

Friday, July 1, 2011

Page 35: Testando interfaces web com Splinter

• lento

• necessita de server

• obsoleto

selenium 1.0

Friday, July 1, 2011

Page 36: Testando interfaces web com Splinter

• lento

• necessita de server

• obsoleto

• sintaxe ruim (java)

selenium 1.0

Friday, July 1, 2011

Page 37: Testando interfaces web com Splinter

• lento

• necessita de server

• obsoleto

• sintaxe ruim (java)

• funcionalidades legais

selenium 1.0

Friday, July 1, 2011

Page 38: Testando interfaces web com Splinter

pyccuracy

Friday, July 1, 2011

Page 39: Testando interfaces web com Splinter

• linguagem natural

pyccuracy

Friday, July 1, 2011

Page 40: Testando interfaces web com Splinter

• linguagem natural

• sintaxe complexa

pyccuracy

Friday, July 1, 2011

Page 41: Testando interfaces web com Splinter

• linguagem natural

• sintaxe complexa

• difícil de manter

pyccuracy

Friday, July 1, 2011

Page 42: Testando interfaces web com Splinter

• linguagem natural

• sintaxe complexa

• difícil de manter

• baseaado no selenium 1

pyccuracy

Friday, July 1, 2011

Page 43: Testando interfaces web com Splinter

selenium 2.0

Friday, July 1, 2011

Page 44: Testando interfaces web com Splinter

• vários browsers (firefox, ie, chrome)

selenium 2.0

Friday, July 1, 2011

Page 45: Testando interfaces web com Splinter

• vários browsers (firefox, ie, chrome)

• instável

selenium 2.0

Friday, July 1, 2011

Page 46: Testando interfaces web com Splinter

• vários browsers (firefox, ie, chrome)

• instável

• diferença entre browsers (api)

selenium 2.0

Friday, July 1, 2011

Page 47: Testando interfaces web com Splinter

• vários browsers (firefox, ie, chrome)

• instável

• diferença entre browsers (api)

• menos features que o selenium 1

selenium 2.0

Friday, July 1, 2011

Page 48: Testando interfaces web com Splinter

zope testbrowser

Friday, July 1, 2011

Page 49: Testando interfaces web com Splinter

• rápido

zope testbrowser

Friday, July 1, 2011

Page 50: Testando interfaces web com Splinter

• rápido

• headless

zope testbrowser

Friday, July 1, 2011

Page 51: Testando interfaces web com Splinter

• rápido

• headless

• não renderiza js

zope testbrowser

Friday, July 1, 2011

Page 52: Testando interfaces web com Splinter

• rápido

• headless

• não renderiza js

• api estável

zope testbrowser

Friday, July 1, 2011

Page 53: Testando interfaces web com Splinter

• rápido

• headless

• não renderiza js

• api estável

• trata formulários de forma ‘especial’

zope testbrowser

Friday, July 1, 2011

Page 54: Testando interfaces web com Splinter

htmlunit

Friday, July 1, 2011

Page 55: Testando interfaces web com Splinter

• rápido

htmlunit

Friday, July 1, 2011

Page 56: Testando interfaces web com Splinter

• rápido

• headless

htmlunit

Friday, July 1, 2011

Page 57: Testando interfaces web com Splinter

• rápido

• headless

• suporta js

htmlunit

Friday, July 1, 2011

Page 58: Testando interfaces web com Splinter

• rápido

• headless

• suporta js

• java :(

htmlunit

Friday, July 1, 2011

Page 59: Testando interfaces web com Splinter

zombie.js

Friday, July 1, 2011

Page 60: Testando interfaces web com Splinter

• rápido

zombie.js

Friday, July 1, 2011

Page 61: Testando interfaces web com Splinter

• rápido

• headless

zombie.js

Friday, July 1, 2011

Page 62: Testando interfaces web com Splinter

• rápido

• headless

• node.js

zombie.js

Friday, July 1, 2011

Page 63: Testando interfaces web com Splinter

• rápido

• headless

• node.js

• instável

zombie.js

Friday, July 1, 2011

Page 64: Testando interfaces web com Splinter

e mais...

• Mechanize

• PhantomJS

• twill

• Windmill

Friday, July 1, 2011

Page 65: Testando interfaces web com Splinter

splintersplinter.cobrateam.info

Friday, July 1, 2011

Page 66: Testando interfaces web com Splinter

splinter é uma API

Friday, July 1, 2011

Page 67: Testando interfaces web com Splinter

browser = Browser(‘webdriver.firefox’)browser.visit(‘http://cobrateam.info’)assert browser.is_text_present(‘Projects’)

browser = Browser(‘zope.testbrowser’)browser.visit(‘http://cobrateam.info’)assert browser.is_text_present(‘Projects’)

browser = Browser(‘phantomjs’)browser.visit(‘http://cobrateam.info’)assert browser.is_text_present(‘Projects’)

Friday, July 1, 2011

Page 68: Testando interfaces web com Splinter

browser

Friday, July 1, 2011

Page 69: Testando interfaces web com Splinter

browser

• visit(‘url’)

Friday, July 1, 2011

Page 70: Testando interfaces web com Splinter

browser

• visit(‘url’)

• reload()

Friday, July 1, 2011

Page 71: Testando interfaces web com Splinter

browser

• visit(‘url’)

• reload()

• quit()

Friday, July 1, 2011

Page 72: Testando interfaces web com Splinter

browser

• visit(‘url’)

• reload()

• quit()

• html

Friday, July 1, 2011

Page 73: Testando interfaces web com Splinter

browser

• visit(‘url’)

• reload()

• quit()

• html

• url

Friday, July 1, 2011

Page 74: Testando interfaces web com Splinter

browser

• visit(‘url’)

• reload()

• quit()

• html

• url

• title

Friday, July 1, 2011

Page 75: Testando interfaces web com Splinter

procurando por elementos

Friday, July 1, 2011

Page 76: Testando interfaces web com Splinter

procurando por elementos

• find_by_css(‘.classe’)

Friday, July 1, 2011

Page 77: Testando interfaces web com Splinter

procurando por elementos

• find_by_css(‘.classe’)

• find_by_id(‘meuid’)

Friday, July 1, 2011

Page 78: Testando interfaces web com Splinter

procurando por elementos

• find_by_css(‘.classe’)

• find_by_id(‘meuid’)

• find_by_xpath(‘//body’)

Friday, July 1, 2011

Page 79: Testando interfaces web com Splinter

procurando por elementos

• find_by_css(‘.classe’)

• find_by_id(‘meuid’)

• find_by_xpath(‘//body’)

• find_by_tag(‘a’)

Friday, July 1, 2011

Page 80: Testando interfaces web com Splinter

procurando por elementos

• find_by_css(‘.classe’)

• find_by_id(‘meuid’)

• find_by_xpath(‘//body’)

• find_by_tag(‘a’)

• find_by_name(‘search’)

Friday, July 1, 2011

Page 81: Testando interfaces web com Splinter

formulários

Friday, July 1, 2011

Page 82: Testando interfaces web com Splinter

formulários

• fill(‘name’, ‘value’)

Friday, July 1, 2011

Page 83: Testando interfaces web com Splinter

formulários

• fill(‘name’, ‘value’)

• attach_file(‘name’, ‘/path/to/file.txt’)

Friday, July 1, 2011

Page 84: Testando interfaces web com Splinter

formulários

• fill(‘name’, ‘value’)

• attach_file(‘name’, ‘/path/to/file.txt’)

• check(‘name’) #checkbox

Friday, July 1, 2011

Page 85: Testando interfaces web com Splinter

formulários

• fill(‘name’, ‘value’)

• attach_file(‘name’, ‘/path/to/file.txt’)

• check(‘name’) #checkbox

• choose(‘name’, ‘value’) #radio button

Friday, July 1, 2011

Page 86: Testando interfaces web com Splinter

formulários

• fill(‘name’, ‘value’)

• attach_file(‘name’, ‘/path/to/file.txt’)

• check(‘name’) #checkbox

• choose(‘name’, ‘value’) #radio button

• select(‘name’, ‘option’)

Friday, July 1, 2011

Page 87: Testando interfaces web com Splinter

e mais...

Friday, July 1, 2011

Page 88: Testando interfaces web com Splinter

e mais...

• alert

Friday, July 1, 2011

Page 89: Testando interfaces web com Splinter

e mais...

• alert

• iframe

Friday, July 1, 2011

Page 90: Testando interfaces web com Splinter

e mais...

• alert

• iframe

• status_code

Friday, July 1, 2011

Page 91: Testando interfaces web com Splinter

Friday, July 1, 2011

Page 92: Testando interfaces web com Splinter

show me the code

Friday, July 1, 2011

Page 93: Testando interfaces web com Splinter

futuro do projeto

Friday, July 1, 2011

Page 94: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

Friday, July 1, 2011

Page 95: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

• ie

Friday, July 1, 2011

Page 96: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

• ie

• zombie.js

Friday, July 1, 2011

Page 97: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

• ie

• zombie.js

• webkit

Friday, July 1, 2011

Page 98: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

• ie

• zombie.js

• webkit

• mouse events

Friday, July 1, 2011

Page 99: Testando interfaces web com Splinter

futuro do projeto• mais browsers/drivers

• ie

• zombie.js

• webkit

• mouse events

• cookies

Friday, July 1, 2011

Page 100: Testando interfaces web com Splinter

como contribuir

Friday, July 1, 2011

Page 101: Testando interfaces web com Splinter

como contribuir

• #cobrateam @ irc.freenode.net

Friday, July 1, 2011

Page 102: Testando interfaces web com Splinter

como contribuir

• #cobrateam @ irc.freenode.net

• fork

Friday, July 1, 2011

Page 103: Testando interfaces web com Splinter

como contribuir

• #cobrateam @ irc.freenode.net

• fork

• pull request

Friday, July 1, 2011

Page 104: Testando interfaces web com Splinter

sprint durante o fisl

Friday, July 1, 2011

Page 105: Testando interfaces web com Splinter

sprint durante o fisl

ainda da tempo!

Friday, July 1, 2011

Page 106: Testando interfaces web com Splinter

como trazer sua banda favorita para o

Friday, July 1, 2011

Page 107: Testando interfaces web com Splinter

perguntas?

Andrews Medinaandrewsmedina.com @[email protected]

Francisco Souzafranciscosouza.com

@[email protected]

splinter.cobrateam.infogithub.com/cobrateam/splinter

Friday, July 1, 2011