SlideShare uma empresa Scribd logo
Web Application Testing in Ruby
Ruby
                         Ruby foi apresentada ao público pela primeira vez em
                          Ruby é uma linguagem totalmente orientada a obje
                          Curiosamente é uma das únicas linguagens nascid




Uma de suas principais características é a expressividade que possui. Teve-se

    Hellow World.rb

                           puts "Olá Mundo"
é um framework de desenvolvimento web escrito na linguag
             Rails



Rails é um software com opinião. Isto é, ele supõe que existe um modo melhor para fa
Se você aprender “O Modo Rails” vai provavelmente descobrir um aumento tremendo




A filosifia Rails inclui diversos princípios como:
DRY – “Don’t Repeat Yourself” – sugere que escrever o mesmo código várias vezes é uma coisa
Convenção ao invés de Configuração – significa que o Rails faz suposições sobre o que você qu
REST é o melhor modelo para aplicações web – organizar sua aplicação em torno de recursos e
Watir

Imagine poder simular através de código Ruby os passos de um usuário acessa
Isso facilitaria muito o teste de aplicações para web, não é mesmo? Seus proble



Na prática, é como se você programasse um robozinho para acessar o navegad
require 'watir'
Watir::Browser.default = 'firefox'
ff = Watir::Browser.new
ff.goto "http://www.twitter.com"
Os motivos para usar o Watir são:
É uma ferramenta open source e não há custos para usar;
A comunidade do Watir está crescendo e é muita ativa;
Ele usa Ruby, uma linguagem de script moderna e completa e que possui uma
Ele suporta qualquer aplicação web, não importando a linguagem na qual ela fo
O Watir suporta múltiplos browsers e diferentes plataformas;
Ele é poderoso, fácil de usar e ainda é bem leve.
o que precisamos saber para criar o nosso próprio teste usando o Watir é o se
O valor da propriedade name dos elementos que iremos ter que interagir para p
Numa rápida pesquisa, parece que existem IDEs de record-play (estilo o Seleni
A API do Watir, basicamente conhecer quais são os métodos que podemos usar
A linguagem Ruby, mas calma não precisa aprender toda a linguagem de uma v
Vamos realizar um teste básico com o Watir:




                    O objetivo será inserir um texto no campo de busca do Go
# Exemplo de uso do Watir
# Objetivo: Executar as seguintes tarefas:
# * inserir um texto no campo de buscas
# * clicar no botão
# * verificar se o resultado confere
# O teste irá buscar pelo nosso site (ruby-br)

# iniciando o watir
require "watir"

# definindo o site na variável
teste_site = "http://blogsearch.google.com.br/"

# definindo o firefox como navegador (e já iniciando ele)
  Watir::Browser.default = 'firefox'
  browser = Watir::Browser.new

# exibe ação na tela
puts "Iniciando o teste: busca no Google Blogs Search."

puts " Passo 1: acessando o site para o teste: " + teste_site
browser.goto teste_site

puts " Passo 2: inserir 'ruby brasil' no campo de busca."
browser.text_field(:name, "q").set "ruby brasil"
# "q" é o nome do campo de texto do Google

puts " Passo 3: clicar no botao 'Pesquisar blogs'."
browser.button(:name, "btnG").click
# "btnG" é o nome do botão

puts " Resultado Esperado:"
puts " Uma pagina de resultados deve ser apresentada. 'Ruby Brasil' devera estar na lista."

puts " Resultado Obtido:"
 if browser.text.include? "Ruby Brasil"
   puts " Aprovado no teste. Localizado o texto: 'Ruby Brasil'. O resultado atual confere com o resultado   esperado."
 else
   puts " Falha no teste! Nao foi encontrado: 'Ruby Brasil'."
 end

puts "Fim do teste: busca no Google Blogs Search."
Teste Watir
Teste Watir

Mais conteúdo relacionado

Mais procurados

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
Vibhor Grover
 
Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)
Tony Tam
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
Andrew Rota
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
Derek Willian Stavis
 
Swagger / Quick Start Guide
Swagger / Quick Start GuideSwagger / Quick Start Guide
Swagger / Quick Start Guide
Andrii Gakhov
 
Rest assured
Rest assuredRest assured
Rest assured
Varun Deshpande
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
Mayara Fernandes
 
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는 어떻게 재활용하는가
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는  어떻게  재활용하는가[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는  어떻게  재활용하는가
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는 어떻게 재활용하는가
CONNECT FOUNDATION
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applications
Yura Nosenko
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
Nitin Pande
 
Java8 features
Java8 featuresJava8 features
Java8 features
Elias Hasnat
 
Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
Harshit Choudhary
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in Java
Cristina Attori
 
Contract based testing
Contract based testingContract based testing
Contract based testing
Alisa Petivotova
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
Tobias Sette
 
Testing with laravel
Testing with laravelTesting with laravel
Testing with laravel
Derek Binkley
 
Reactive programming with RxJava
Reactive programming with RxJavaReactive programming with RxJava
Reactive programming with RxJava
Jobaer Chowdhury
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
Knoldus Inc.
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
Jorge Ávila Miranda
 

Mais procurados (20)

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
 
Swagger / Quick Start Guide
Swagger / Quick Start GuideSwagger / Quick Start Guide
Swagger / Quick Start Guide
 
Rest assured
Rest assuredRest assured
Rest assured
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
 
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는 어떻게 재활용하는가
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는  어떻게  재활용하는가[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는  어떻게  재활용하는가
[부스트캠프 웹・모바일 7기 Tech Talk]박명범_RecyclerView는 어떻게 재활용하는가
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applications
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
Java8 features
Java8 featuresJava8 features
Java8 features
 
Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in Java
 
Contract based testing
Contract based testingContract based testing
Contract based testing
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Testing with laravel
Testing with laravelTesting with laravel
Testing with laravel
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Reactive programming with RxJava
Reactive programming with RxJavaReactive programming with RxJava
Reactive programming with RxJava
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 

Semelhante a Teste Watir

Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
rafarubert
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhos
jpaulolins
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
armeniocardoso
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
Julio Monteiro
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
Agence Educacional
 
Ruby and Rails
Ruby and RailsRuby and Rails
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
Julio Monteiro
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
Andre Bernardes
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
overduka
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
COTIC-PROEG (UFPA)
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
Julio Monteiro
 
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João PessoaRuby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Women Techmakers João Pessoa
 
Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software
Fernando Henriques
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
Wende Mendes
 
RoR Beta
RoR BetaRoR Beta
RoR Beta
Breno Moura
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
home
 
Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsTiago Godinho
 

Semelhante a Teste Watir (20)

Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhos
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Ruby and Rails
Ruby and RailsRuby and Rails
Ruby and Rails
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João PessoaRuby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
 
Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software
 
Rails
RailsRails
Rails
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
 
RoR Beta
RoR BetaRoR Beta
RoR Beta
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Rails 03
Rails 03Rails 03
Rails 03
 
Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRails
 

Teste Watir

  • 2. Ruby Ruby foi apresentada ao público pela primeira vez em Ruby é uma linguagem totalmente orientada a obje Curiosamente é uma das únicas linguagens nascid Uma de suas principais características é a expressividade que possui. Teve-se Hellow World.rb puts "Olá Mundo"
  • 3. é um framework de desenvolvimento web escrito na linguag Rails Rails é um software com opinião. Isto é, ele supõe que existe um modo melhor para fa Se você aprender “O Modo Rails” vai provavelmente descobrir um aumento tremendo A filosifia Rails inclui diversos princípios como: DRY – “Don’t Repeat Yourself” – sugere que escrever o mesmo código várias vezes é uma coisa Convenção ao invés de Configuração – significa que o Rails faz suposições sobre o que você qu REST é o melhor modelo para aplicações web – organizar sua aplicação em torno de recursos e
  • 4. Watir Imagine poder simular através de código Ruby os passos de um usuário acessa Isso facilitaria muito o teste de aplicações para web, não é mesmo? Seus proble Na prática, é como se você programasse um robozinho para acessar o navegad
  • 5. require 'watir' Watir::Browser.default = 'firefox' ff = Watir::Browser.new ff.goto "http://www.twitter.com"
  • 6. Os motivos para usar o Watir são: É uma ferramenta open source e não há custos para usar; A comunidade do Watir está crescendo e é muita ativa; Ele usa Ruby, uma linguagem de script moderna e completa e que possui uma Ele suporta qualquer aplicação web, não importando a linguagem na qual ela fo O Watir suporta múltiplos browsers e diferentes plataformas; Ele é poderoso, fácil de usar e ainda é bem leve.
  • 7. o que precisamos saber para criar o nosso próprio teste usando o Watir é o se O valor da propriedade name dos elementos que iremos ter que interagir para p Numa rápida pesquisa, parece que existem IDEs de record-play (estilo o Seleni A API do Watir, basicamente conhecer quais são os métodos que podemos usar A linguagem Ruby, mas calma não precisa aprender toda a linguagem de uma v
  • 8. Vamos realizar um teste básico com o Watir: O objetivo será inserir um texto no campo de busca do Go
  • 9. # Exemplo de uso do Watir # Objetivo: Executar as seguintes tarefas: # * inserir um texto no campo de buscas # * clicar no botão # * verificar se o resultado confere # O teste irá buscar pelo nosso site (ruby-br) # iniciando o watir require "watir" # definindo o site na variável teste_site = "http://blogsearch.google.com.br/" # definindo o firefox como navegador (e já iniciando ele) Watir::Browser.default = 'firefox' browser = Watir::Browser.new # exibe ação na tela puts "Iniciando o teste: busca no Google Blogs Search." puts " Passo 1: acessando o site para o teste: " + teste_site browser.goto teste_site puts " Passo 2: inserir 'ruby brasil' no campo de busca." browser.text_field(:name, "q").set "ruby brasil" # "q" é o nome do campo de texto do Google puts " Passo 3: clicar no botao 'Pesquisar blogs'." browser.button(:name, "btnG").click # "btnG" é o nome do botão puts " Resultado Esperado:" puts " Uma pagina de resultados deve ser apresentada. 'Ruby Brasil' devera estar na lista." puts " Resultado Obtido:" if browser.text.include? "Ruby Brasil" puts " Aprovado no teste. Localizado o texto: 'Ruby Brasil'. O resultado atual confere com o resultado esperado." else puts " Falha no teste! Nao foi encontrado: 'Ruby Brasil'." end puts "Fim do teste: busca no Google Blogs Search."