SlideShare a Scribd company logo
1 of 11
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."
Web App Testing Ruby Watir
Web App Testing Ruby Watir

More Related Content

What's hot

Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JSNàtali Cabral
 
Single page applications
Single page applicationsSingle page applications
Single page applicationsDiego Cardozo
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidNaresh Jain
 
Extent Test report v3 with Appium/Selenium
Extent Test report v3 with Appium/SeleniumExtent Test report v3 with Appium/Selenium
Extent Test report v3 with Appium/SeleniumRaman Gowda Hullur
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing ProcessQASource
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answersGaruda Trainings
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentationadamcookeuk
 
Selenium Grid
Selenium GridSelenium Grid
Selenium Gridnirvdrum
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot frameworkPrayoch Rujira
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'tsPekka Klärck
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)scandiweb
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency GotchasAlex Miller
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
API-first development
API-first developmentAPI-first development
API-first developmentVasco Veloso
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using SeleniumNikhil Kapoor
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan HameedHassan Muhammad
 

What's hot (20)

Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Extent Test report v3 with Appium/Selenium
Extent Test report v3 with Appium/SeleniumExtent Test report v3 with Appium/Selenium
Extent Test report v3 with Appium/Selenium
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answers
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
Selenium Grid
Selenium GridSelenium Grid
Selenium Grid
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
 
React js for beginners
React js for beginnersReact js for beginners
React js for beginners
 
Api Testing
Api TestingApi Testing
Api Testing
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Definition of Ready
Definition of ReadyDefinition of Ready
Definition of Ready
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
API-first development
API-first developmentAPI-first development
API-first development
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
 

Similar to Web App Testing Ruby Watir

Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
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 trilhosjpaulolins
 
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
 
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 2011Andre 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 Railsoverduka
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio 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 PessoaWomen 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 5Wende Mendes
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railshome
 
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
 

Similar to Web App Testing Ruby 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
 

Web App Testing Ruby 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."