SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Selenium 2.0 (WebDriver)
                com Page Objects. Como
                    isso funciona?
                         T h e D e v e l o p e r ’ s
                         C o n f e r e n c e 2 0 1 1
                                Felipe Knorr Kuhn
                          Goiânia, 29 de Outubro de 2011




Monday, November 7, 11
Sobre Mim




Monday, November 7, 11
Sobre Vocês




Monday, November 7, 11
Selenium?


                         Biblioteca para automação de browsers

                          Tarefas repetitivas




Monday, November 7, 11
ATENÇÃO



                         SELENIUM NÃO É UMA FERRAMENTA!




Monday, November 7, 11
ATENÇÃO

                         TESTES NÃO SÃO AUTOMATIZÁVEIS!

                          “Checking vs Testing” - Michael Bolton

                            http://www.developsense.com/blog/
                            2009/08/testing-vs-checking/




Monday, November 7, 11
Selenium 1.0




Monday, November 7, 11
Selenium 2.0




Monday, November 7, 11
Pausa




Monday, November 7, 11
Page Objects?
                         Scripts com orientação a objetos

                           Modularidade

                             Manutenção

                             Reuso

                           Abstração

                           Independência

Monday, November 7, 11
Lembram da
                                  Faculdade?
                         Estado

                         Comportamento

                         Atributos

                         Métodos

                         Mensagens


Monday, November 7, 11
Querem que eu
                           desenhe?




Monday, November 7, 11
O quê isso tem a ver?

                         Uma forma bacana de escrever os scripts de
                         automação

                         Exercício de programação :)

                           Aproximação com os desenvolvedores

                         Antecipação da automação



Monday, November 7, 11
Casos de Uso

                         P01. O usuário visita a página do IMDb
                         O sistema apresenta a página do IMDb

                         P02. O usuário seleciona o critério de busca
                         O sistema aceita a entrada do usuário

                         P03. O usuário digita um nome de filme e aperta
                         no botão de busca
                         O sistema apresenta o resultado da busca



Monday, November 7, 11
User Stories
                         Como um Usuário do IMDb
                         Eu quero pesquisar por um filme
                         Para que eu possa ver as suas informações de
                         produção

                         Quando eu acesso a página do IMDb
                         E eu seleciono "Titles" na combo de categorias
                         E eu preencho o campo de busca com "Office Space"
                         E eu clico no botão de busca
                         Então eu vejo a página de resultados de busca
                         E eu vejo "Office Space" na seção "Exact Matches"


Monday, November 7, 11
Protótipos




Monday, November 7, 11
Aplicação
                         Executável




Monday, November 7, 11
Como modelar?

                         Pensar no walkthrough

                         Separar em páginas

                         Mapear os elementos

                         Modelar a interação entre os objetos



Monday, November 7, 11
Na prática (1/3)




Monday, November 7, 11
Na prática (2/3)




Monday, November 7, 11
Na prática (3/3)




Monday, November 7, 11
Pausa




Monday, November 7, 11
Código!




Monday, November 7, 11
Código!




Monday, November 7, 11
Refatorando




Monday, November 7, 11
Repositório de
                            Objetos




Monday, November 7, 11
Arquitetura

                         TestNG + WebDriver + Maven

                         Py.Saunter

                          http://element34.ca/products/saunter/
                          pysaunter




Monday, November 7, 11
Referências

                         http://seleniumhq.org

                         http://linu.com.br/papers/paper070.html

                         http://pragprog.com/magazines/2010-08/page-
                         objects-in-python




Monday, November 7, 11
Obrigado!

                         Felipe Knorr Kuhn

                         fknorr@gmail.com

                         http://knorrium.info

                         http://linkedin.com/in/knorrium

                         http://twitter.com/knorrium


Monday, November 7, 11

Mais conteúdo relacionado

Semelhante a Selenium Page Objects modelo OO para testes

[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áureaEduardo Novais
 
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?Alexandre Porcelli
 
Encontros com o nexo ricardo
Encontros com o nexo ricardoEncontros com o nexo ricardo
Encontros com o nexo ricardoNexial
 
Encontros com o Nexo
Encontros com o NexoEncontros com o Nexo
Encontros com o NexoFingerTips
 
Design de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo diaDesign de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo diaPaulo Cesar
 
Bootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação WebBootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação WebRafael Lima
 

Semelhante a Selenium Page Objects modelo OO para testes (7)

[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea
 
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
 
Sinatra - Primeiros Passos
Sinatra - Primeiros PassosSinatra - Primeiros Passos
Sinatra - Primeiros Passos
 
Encontros com o nexo ricardo
Encontros com o nexo ricardoEncontros com o nexo ricardo
Encontros com o nexo ricardo
 
Encontros com o Nexo
Encontros com o NexoEncontros com o Nexo
Encontros com o Nexo
 
Design de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo diaDesign de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo dia
 
Bootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação WebBootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação Web
 

Selenium Page Objects modelo OO para testes

  • 1. Selenium 2.0 (WebDriver) com Page Objects. Como isso funciona? T h e D e v e l o p e r ’ s C o n f e r e n c e 2 0 1 1 Felipe Knorr Kuhn Goiânia, 29 de Outubro de 2011 Monday, November 7, 11
  • 4. Selenium? Biblioteca para automação de browsers Tarefas repetitivas Monday, November 7, 11
  • 5. ATENÇÃO SELENIUM NÃO É UMA FERRAMENTA! Monday, November 7, 11
  • 6. ATENÇÃO TESTES NÃO SÃO AUTOMATIZÁVEIS! “Checking vs Testing” - Michael Bolton http://www.developsense.com/blog/ 2009/08/testing-vs-checking/ Monday, November 7, 11
  • 10. Page Objects? Scripts com orientação a objetos Modularidade Manutenção Reuso Abstração Independência Monday, November 7, 11
  • 11. Lembram da Faculdade? Estado Comportamento Atributos Métodos Mensagens Monday, November 7, 11
  • 12. Querem que eu desenhe? Monday, November 7, 11
  • 13. O quê isso tem a ver? Uma forma bacana de escrever os scripts de automação Exercício de programação :) Aproximação com os desenvolvedores Antecipação da automação Monday, November 7, 11
  • 14. Casos de Uso P01. O usuário visita a página do IMDb O sistema apresenta a página do IMDb P02. O usuário seleciona o critério de busca O sistema aceita a entrada do usuário P03. O usuário digita um nome de filme e aperta no botão de busca O sistema apresenta o resultado da busca Monday, November 7, 11
  • 15. User Stories Como um Usuário do IMDb Eu quero pesquisar por um filme Para que eu possa ver as suas informações de produção Quando eu acesso a página do IMDb E eu seleciono "Titles" na combo de categorias E eu preencho o campo de busca com "Office Space" E eu clico no botão de busca Então eu vejo a página de resultados de busca E eu vejo "Office Space" na seção "Exact Matches" Monday, November 7, 11
  • 17. Aplicação Executável Monday, November 7, 11
  • 18. Como modelar? Pensar no walkthrough Separar em páginas Mapear os elementos Modelar a interação entre os objetos Monday, November 7, 11
  • 19. Na prática (1/3) Monday, November 7, 11
  • 20. Na prática (2/3) Monday, November 7, 11
  • 21. Na prática (3/3) Monday, November 7, 11
  • 26. Repositório de Objetos Monday, November 7, 11
  • 27. Arquitetura TestNG + WebDriver + Maven Py.Saunter http://element34.ca/products/saunter/ pysaunter Monday, November 7, 11
  • 28. Referências http://seleniumhq.org http://linu.com.br/papers/paper070.html http://pragprog.com/magazines/2010-08/page- objects-in-python Monday, November 7, 11
  • 29. Obrigado! Felipe Knorr Kuhn fknorr@gmail.com http://knorrium.info http://linkedin.com/in/knorrium http://twitter.com/knorrium Monday, November 7, 11