SlideShare uma empresa Scribd logo
1 de 19
Automatização UI
AUGUSTA RAPOSO MARQUES
Behave
• Ferramenta baseada em Behavior Driven Development (BDD)
• Utilizado para criar especificações em linguagem natural (Gherkin) com associação a uma linguagem de
automação(no nosso caso python 3.4)
Feature: Title (one line describing the story/feature)
As a [role] I want [feature] So that [benefit]
Scenario: Title1 (for Behaviour 1)
Given [context or setup]
And [some more context]...
When [event occurs]
Then [expected outcome]
And [another outcome]...
Scenario: Title2 (for Behaviour 2) ...
Testar as operações da calculadora
Link: https://juliemr.github.io/protractor-demo/
Cenário da operação de Adição
Criar a estrutura de pastas necessárias
Selenium
• Se comunica diretamente com o browser para simular interações do usuário
• Dispõe de uma api que prove vários métodos para localizar elementos na tela, por ex:
◦ find_element_by_id
◦ find_element_by_name
◦ find_element_by_xpath
◦ find_element_by_link_text
◦ find_element_by_partial_link_text
◦ find_element_by_tag_name
◦ find_element_by_class_name
◦ find_element_by_css_selector
◦ …
Primeiro impulso : Bad example
Uma das muitas consequência:
Códigos repetidos
Page Object
• Padrão usado para diminuir o impacto de mudanças do HTML das páginas nos testes automáticos
• Separação entre código de teste e código específico da página
• Deve encapsular toda a lógica de interação com o site testado
Page Object da Calculadora
Execução do projeto
Criando mais cenários com o mesmo código
Tarefa: Hello World da Automação
Adaptando o “Hello World" da Automação
• Criar a estrutura de pastas
Preenchendo os steps – Exemplo RUIM!
Criando o page object!
Exemplo completo no git-hub: https://github.com/augustaraposo/google-search-behave-selenium-
Apresentar um projeto rodando no Jenkins
Orientações para aprendizado
* Códigos para o projeto apresentado => https://github.com/augustaraposo
* Behave => http://jenisys.github.io/behave.example/
* Selenium with python => http://selenium-python.readthedocs.org/getting-started.html
* Curso de python do Codecademy => https://www.codecademy.com/pt/learn
* Livro de python gratuito => http://learnpythonthehardway.org/
*Documentação do python 3.X => https://docs.python.org/3.4/tutorial/index.html
AUGUSTA RAPOSO MARQUES
Obrigada!
Augusta Raposo
augustaraposomarques@gmail.com

Mais conteúdo relacionado

Destaque

Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Vanderson Silva
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDDQualister
 
Aprenda bdd-jogando-dados-ebook
Aprenda bdd-jogando-dados-ebookAprenda bdd-jogando-dados-ebook
Aprenda bdd-jogando-dados-ebookValério Farias
 
Falando sobre BDD com cucumber-jvm
Falando sobre BDD com cucumber-jvmFalando sobre BDD com cucumber-jvm
Falando sobre BDD com cucumber-jvmHézio Fernandes
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
BDD JBehave
BDD JBehaveBDD JBehave
BDD JBehaveIsmael
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsLocaweb
 

Destaque (11)

Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
BDD - Behaviour Driven Development
BDD - Behaviour Driven DevelopmentBDD - Behaviour Driven Development
BDD - Behaviour Driven Development
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDD
 
Aprenda bdd-jogando-dados-ebook
Aprenda bdd-jogando-dados-ebookAprenda bdd-jogando-dados-ebook
Aprenda bdd-jogando-dados-ebook
 
Falando sobre BDD com cucumber-jvm
Falando sobre BDD com cucumber-jvmFalando sobre BDD com cucumber-jvm
Falando sobre BDD com cucumber-jvm
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Test First, TDD e outros Bichos
Test First, TDD e outros BichosTest First, TDD e outros Bichos
Test First, TDD e outros Bichos
 
BDD JBehave
BDD JBehaveBDD JBehave
BDD JBehave
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJs
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 

Semelhante a Testes com BDD (Behave_Selenium_Python)

Introdução À Automação de Testes com Selenium
Introdução À Automação de Testes com SeleniumIntrodução À Automação de Testes com Selenium
Introdução À Automação de Testes com Seleniumrodrigogouveia
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)cesarvianna
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkMayara Fernandes
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Introducao ao visual basic
Introducao ao visual basicIntroducao ao visual basic
Introducao ao visual basicEugenio Caetano
 
BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverCristian Mathias
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 

Semelhante a Testes com BDD (Behave_Selenium_Python) (20)

Introdução À Automação de Testes com Selenium
Introdução À Automação de Testes com SeleniumIntrodução À Automação de Testes com Selenium
Introdução À Automação de Testes com Selenium
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot framework
 
Poo Aula 02
Poo Aula 02Poo Aula 02
Poo Aula 02
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Curso PHP: Básico JavaScript
Curso PHP: Básico JavaScriptCurso PHP: Básico JavaScript
Curso PHP: Básico JavaScript
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Introducao ao visual basic
Introducao ao visual basicIntroducao ao visual basic
Introducao ao visual basic
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriver
 
Hibernate
HibernateHibernate
Hibernate
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 

Testes com BDD (Behave_Selenium_Python)

  • 2. Behave • Ferramenta baseada em Behavior Driven Development (BDD) • Utilizado para criar especificações em linguagem natural (Gherkin) com associação a uma linguagem de automação(no nosso caso python 3.4) Feature: Title (one line describing the story/feature) As a [role] I want [feature] So that [benefit] Scenario: Title1 (for Behaviour 1) Given [context or setup] And [some more context]... When [event occurs] Then [expected outcome] And [another outcome]... Scenario: Title2 (for Behaviour 2) ...
  • 3. Testar as operações da calculadora Link: https://juliemr.github.io/protractor-demo/
  • 5. Criar a estrutura de pastas necessárias
  • 6. Selenium • Se comunica diretamente com o browser para simular interações do usuário • Dispõe de uma api que prove vários métodos para localizar elementos na tela, por ex: ◦ find_element_by_id ◦ find_element_by_name ◦ find_element_by_xpath ◦ find_element_by_link_text ◦ find_element_by_partial_link_text ◦ find_element_by_tag_name ◦ find_element_by_class_name ◦ find_element_by_css_selector ◦ …
  • 7. Primeiro impulso : Bad example
  • 8. Uma das muitas consequência: Códigos repetidos
  • 9. Page Object • Padrão usado para diminuir o impacto de mudanças do HTML das páginas nos testes automáticos • Separação entre código de teste e código específico da página • Deve encapsular toda a lógica de interação com o site testado
  • 10. Page Object da Calculadora
  • 12. Criando mais cenários com o mesmo código
  • 13. Tarefa: Hello World da Automação
  • 14. Adaptando o “Hello World" da Automação • Criar a estrutura de pastas
  • 15. Preenchendo os steps – Exemplo RUIM!
  • 16. Criando o page object! Exemplo completo no git-hub: https://github.com/augustaraposo/google-search-behave-selenium-
  • 17. Apresentar um projeto rodando no Jenkins
  • 18. Orientações para aprendizado * Códigos para o projeto apresentado => https://github.com/augustaraposo * Behave => http://jenisys.github.io/behave.example/ * Selenium with python => http://selenium-python.readthedocs.org/getting-started.html * Curso de python do Codecademy => https://www.codecademy.com/pt/learn * Livro de python gratuito => http://learnpythonthehardway.org/ *Documentação do python 3.X => https://docs.python.org/3.4/tutorial/index.html
  • 19. AUGUSTA RAPOSO MARQUES Obrigada! Augusta Raposo augustaraposomarques@gmail.com