<ul><li>Разработка с использованием Cucumber состоит из 3-х основных этапов. </li></ul><ul><ul><li>Описание фич проекта ...
  Cucumber + Capybara + Selenium Webdriver + Ruby
Структура |~ features /                   | |~ step_definitions /         | | |-person_steps.rb         | | `-web_steps.rb...
Feature: Login                                             In order to manage my private data                       As a p...
Scenario   Outline : eating    Given  there are <start> cucumbers    When  I eat <eat> cucumbers    Then  I should have <l...
Feature:  Registration     In order to start using site     As a new user     I want to register Scenario:  Normal registr...
Given /^(?:|I )am on (.+)$/   do   |page_name|   visit path_to(page_name) end   When /^(?:|I )press &quot;([^&quot;]*)&quo...
 
Пример ошибки при выполнении
<ul><li>Возникшие у нас проблемы: </li></ul><ul><li>  </li></ul><ul><ul><li>Selenium не видит новых дочерних окон </li></u...
<ul><li>Подключаемые библиотеки: </li></ul><ul><li>  </li></ul><ul><ul><li>Capybara </li></ul></ul><ul><ul><li>Faker </li>...
Непрерывное системное тестирование   integrity + cucumber + selenium на VPS
The RSpec Book
Спасибо за внимание =)
Upcoming SlideShare
Loading in...5
×

2_cucumber

707

Published on

Cucumber

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
707
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2_cucumber

  1. 1.  
  2. 2.   <ul><li>Разработка с использованием Cucumber состоит из 3-х основных этапов. </li></ul><ul><ul><li>Описание фич проекта простым человеческим языком. И даже необязательно английским. </li></ul></ul><ul><ul><li>Определение поступков (step definition) на Ruby </li></ul></ul><ul><ul><li>Цикл разработки: проверка фич кукумбером и реализация не прошедших тестирование фич ручками. </li></ul></ul>
  3. 3.   Cucumber + Capybara + Selenium Webdriver + Ruby
  4. 4. Структура |~ features /                   | |~ step_definitions /         | | |-person_steps.rb         | | `-web_steps.rb            | |~ support /                  | | |-env.rb                  | | `-paths.rb                | |-addtocontacts.feature     | |-attachimage.feature       | |-chpass.feature            | |-ignore.feature            | |-ims.feature               | |-login.feature             | |-logout.feature            | |-present.feature           | `-registeration.feature     |~ lib /                        | `+ faker /                    `+data/                       
  5. 5. Feature: Login                                             In order to manage my private data                       As a person.com user                                     I want to login                                                                                               Scenario: Normal login                                     Given I am on the home page                              When I fill in &quot;login&quot; with &quot;value&quot;        And I fill in password field &quot;passwd&quot; with &quot;value1&quot;     And I press &quot;login&quot;                                      Then I should see &quot;My Stuff&quot;    But I should not see &quot;ERROR: Invalid password!&quot;                                                                                Scenario: Invalid login with bad login                     Given I am on the home page                              When I fill in &quot;login&quot; with &quot;value1&quot;                     And I fill in password field &quot;passwd&quot; with &quot;value2&quot;      And I press &quot;login&quot;                                      Then I should see &quot;NO Login&quot;                                                                                  Scenario: Invalid login with incorrect password            Given I am on the home page                              When I fill in &quot;login&quot; with &quot;value&quot;        And I press &quot;login&quot;                                      Then I should see &quot;ERROR: Invalid password!&quot;
  6. 6. Scenario Outline : eating    Given there are <start> cucumbers    When I eat <eat> cucumbers    Then I should have <left> cucumbers    Examples :      | start | eat | left |      |  12   |  5  |  7   |      |  20   |  5  |  15  | Given  the following people exist:    | name  | email           | phone |    | Aslak | aslak@email.com | 123   |    | Joe   | joe@email.com   | 234   |    | Bryan | bryan@email.org | 456   |
  7. 7. Feature: Registration     In order to start using site     As a new user     I want to register Scenario: Normal registration     Given I am on the home page     When I fill in &quot;email&quot; with random email     And I fill in &quot;fullname&quot; with &quot;MyNameIs&quot;     And I fill in &quot;nickname&quot; with &quot;MyNicknameIs&quot;     And I choose &quot;gender_1&quot;     And I select &quot;10&quot; from &quot;birthday_day&quot;     And I select &quot;March&quot; from &quot;birthday_month&quot;     And I select &quot;1986&quot; from &quot;birthday_year&quot;     And I fill in &quot;city&quot; with &quot;Antarctica, Antarctica, Antarctica&quot;     And I fill in &quot;password&quot; with &quot;testpass&quot;     And I fill in &quot;city&quot; with &quot;Antarct&quot;     And I click to city autocomplete item with &quot;Antarctica&quot;     And I press &quot;button_submit&quot;     Then I should see &quot;Thank you for registration!&quot;
  8. 8. Given /^(?:|I )am on (.+)$/ do |page_name|   visit path_to(page_name) end   When /^(?:|I )press &quot;([^&quot;]*)&quot;(?: within &quot;([^&quot;]*)&quot;)?$/ do |button, selector|   with_scope(selector) do     click_button(button)   end end   Then /^(?:|I )should not see &quot;([^&quot;]*)&quot;(?: within &quot;([^&quot;]*)&quot;)?$/ do |text, selector|   with_scope(selector) do     if page.respond_to? :should       page.should have_no_content(text)     else       assert page.has_no_content?(text)     end   end end When /^(?:|I )fill in &quot;([^&quot;]*)&quot; with random email(?: within &quot;([^&quot;]*)&quot;)?$/ do |field, selector|   @email = Faker::Internet.email   with_scope(selector) do     fill_in(field, :with => @email)   end end
  9. 9.  
  10. 10. Пример ошибки при выполнении
  11. 11. <ul><li>Возникшие у нас проблемы: </li></ul><ul><li>  </li></ul><ul><ul><li>Selenium не видит новых дочерних окон </li></ul></ul><ul><ul><li>Скрытые поля </li></ul></ul><ul><ul><li>Капча </li></ul></ul><ul><ul><li>Не семантическая верстка </li></ul></ul>
  12. 12. <ul><li>Подключаемые библиотеки: </li></ul><ul><li>  </li></ul><ul><ul><li>Capybara </li></ul></ul><ul><ul><li>Faker </li></ul></ul><ul><ul><li>brominet </li></ul></ul><ul><ul><li>bermuda </li></ul></ul><ul><ul><li>... их много... </li></ul></ul>
  13. 13. Непрерывное системное тестирование   integrity + cucumber + selenium на VPS
  14. 14. The RSpec Book
  15. 15. Спасибо за внимание =)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×