testes com bdd (behave_selenium_python)

19
Automatização UI AUGUSTA RAPOSO MARQUES

Upload: augusta-raposo-marques

Post on 13-Apr-2017

144 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Testes com BDD (Behave_Selenium_Python)

Automatização UI

AUGUSTA RAPOSO MARQUES

Page 2: Testes com BDD (Behave_Selenium_Python)

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

Page 3: Testes com BDD (Behave_Selenium_Python)

Testar as operações da calculadora

Link: https://juliemr.github.io/protractor-demo/

Page 4: Testes com BDD (Behave_Selenium_Python)

Cenário da operação de Adição

Page 5: Testes com BDD (Behave_Selenium_Python)

Criar a estrutura de pastas necessárias

Page 6: Testes com BDD (Behave_Selenium_Python)

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◦ …

Page 7: Testes com BDD (Behave_Selenium_Python)

Primeiro impulso : Bad example

Page 8: Testes com BDD (Behave_Selenium_Python)

Uma das muitas consequência: Códigos repetidos

Page 9: Testes com BDD (Behave_Selenium_Python)

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 10: Testes com BDD (Behave_Selenium_Python)

Page Object da Calculadora

Page 11: Testes com BDD (Behave_Selenium_Python)

Execução do projeto

Page 12: Testes com BDD (Behave_Selenium_Python)

Criando mais cenários com o mesmo código

Page 13: Testes com BDD (Behave_Selenium_Python)

Tarefa: Hello World da Automação

Page 14: Testes com BDD (Behave_Selenium_Python)

Adaptando o “Hello World" da Automação• Criar a estrutura de pastas

Page 15: Testes com BDD (Behave_Selenium_Python)

Preenchendo os steps – Exemplo RUIM!

Page 16: Testes com BDD (Behave_Selenium_Python)

Criando o page object!

Exemplo completo no git-hub: https://github.com/augustaraposo/google-search-behave-selenium-

Page 17: Testes com BDD (Behave_Selenium_Python)

Apresentar um projeto rodando no Jenkins

Page 18: Testes com BDD (Behave_Selenium_Python)

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

Page 19: Testes com BDD (Behave_Selenium_Python)

AUGUSTA RAPOSO MARQUES

Obrigada!

Augusta Raposo

[email protected]