Overview of Cucumber / Capybara

Overview of Cucumber / Capybara

Overview of Cucumber / Capybara ❖ What is BDD? ➢ The main focus is on the expected behavior of the application and it’s components. ➢ User stories created and maintained collaboratively by all stakeholders ❖ What are the benefits? ➢ Define verifiable, executable and unambiguous requirements ➢ Developing features that truly add business value ➢ Preventing defects rather than finding defects ➢ Bring QA involvement to the forefront, great for team dynamics ❖ Testing tool based on BDD written in Ruby. ❖ Tests are written in plain language called Gherkin based BDD style of Given, When, Then, which any layperson can understand. ❖ Tests are grouped into feature files with .feature extension. ➢ E.g. Feature: As a Myish user I should be able to login Scenario: Successful login Given I am on the Myish home page When I fill in email and password And I click login button Then I should be able to click on the profile ❖ Capybara is a web-based automation framework used for creating functional tests that simulate how users would interact with the application ❖ Capybara is library/gem built to be used on top of underlying web-based driver ❖ Offers user-friendly DSL ( Domain Specific Language ) ❖ Supported driver ➢ Rack::test ■ Default driver. No JavaScript support ➢ Selenium-Webdriver ■ Mostly used in web-based automation FW ➢ Capybara-Webkit ■ For true headless testing with JavaScript support ❖ Basic DSL : ➢Visit('page_url') # navigate to page ➢Click_link('id_of_link') # click link by id ➢Click_link('link_text') # click link by link text ➢Click_button('button_name') # fill text field ➢Fill_in('First Name', :with => 'John') # choose radio button ➢Choose('radio_button') # choose radio button ➢Check('checkbox') # check in checkbox ➢Uncheck('checkbox') # uncheck in checkbox ➢Select('option', :from=>'select_box') # select from dropdown ➢Attach_file('image', 'path_to_image') # upload file ❖ Java - JRE ❖ Ruby ❖ RubyGems installation – use “gem install <name of gem>” command. ➢ Cucumber ➢ Capybara ➢ Rspec Project Structure : Project Structure : Features – folder to host all your feature files. Step_Definitions – folder to host all your step definition Ruby files. Support – folder to host your configuration files (env.rb). Gemfile – defines the top-level gems to be used in your project. Sample: simple_search.feature: – Describes the features that a user will be able to use in the program. Feature: As a user I should be able to perform simple google search. Scenario: A simple google search scenario Given I am on the main google search When I fill in "q" with "Cucumber test" And I click "gbqfb" button And I click on the first result Then I should see "Cucumber lets software development teams describe how software should behave in plain text." Given /^I am on the main google search$/ do visit ('/') end When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value| fill_in(field, :with => value) end Then /^I click "([^"]*)" button$/ do |button| click_button(button) end Then /^I click on the first result$/ do find(:xpath, "//html/body/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[2]/div/ol/li/div/h3/a").click end Then /^I should see "([^"]*)"$/ do |text| page.should have_content(text) end Project structure : require 'capybara' require 'capybara/cucumber' Capybara.default_driver = :selenium Capybara.app_host = "http://www.google.com" Capybara.default_wait_time = 20 World(Capybara) source "http://rubygems.org" group(:test) do gem 'cucumber' gem 'capybara' gem 'rspec' end command to run the script : cucumber features/<name of the feature file>.feature command to generate the report: run this command by going to your project directory cucumber features --format html --out reports https://github.com/jnicklas/capybara https://shvets.github.io/blog/2013/10/12/acceptance_tricks.html https://github.com/cucumber/cucumber/wiki http://www.ibm.com/developerworks/library/a-automating-ria/ Useful resources (and lots of examples): http://books.openlibra.com/pdf/cuke4ninja-2011-03-16.pdf < awesome free eBook – fun to read, too. http://www.slideshare.net/lunivore/behavior-driven-development-11754474 < Liz really knows her stuff! http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/ https://www.google.co.uk/search?q=declarative+vs+imperative+BDD < go Team Declarative! .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us