2016-06-03 7 views
0

Мне нужно автоматизировать регистрационную форму и создать новую учетную запись, а затем использовать те же данные учетной записи для входа в систему с вновь созданным номером учетной записи и паролем. Мне нужно сделать это в одном сценарии.Веб-тестирование огурцов - захват vaules

Характеристика: создать нового пользователя и зафиксировать имя пользователя, пароль и попытаться войти в систему с этими деталями.

Scenario: test 
    Given I am on xyz.com 
    When I click on register 
    Then I will enter required details for registration 
    Then I will click on submit 
    And I will enter new account details to login to test. 

ответ

0

Я бы не сделал этого в одном сценарии, если это не один поток. И я бы не пошел на xyz.com, и я бы не стал нажимать на вещи, потому что это не «поведение». Page objects поможет вам.

Scenario: Register a new account 
Given I do not have an account 
When I register a new account 
Then I can use those credentials to access the site 

Тогда я бы создать соответствующие шаги

Given(/^I do not have an account%/) do 
    @credentials = get_unique_credentials 
    @browser = Watir::Browser.new :firefox 
end 

When(/^I register a new account$/) do 
    visit RegistrationPage do |page| 
    page.name = @credentials[0] 
    page.password = @credentials[1] 
    page.register 
    end 
end 

Then(/^I can use those credentials to access the site$/) do 
    visit LoginPage do |page| 
    page.name = @credentials[0] 
    page.password = @credentials[1] 
    page.login 
    end 
    on HomePage do |page| 
    expect(page.something).to exist 
    end 
end 
0

Я надеюсь, что может помочь вам

Feature: a sample of test 

    Scenario: test 
    Given I am on "xyz.com" 
    When I click on register 
    Then I will enter required details for registration 
    Then I will click on submit 
    And I will enter new account details to login to test 
############# Шаги
Given(/^I am on "([^"]*)"$/) do |website| 
    visit website 
end 

When(/^I click on register$/) do 
    find(:xpath, "registerbutton").click 
end 

Then(/^I will enter required details for registration$/) do 
    @username = "xpto" 
    @password = "xptopassword" 

    fill_in('camp_name', with: @username) 
    fill_in('camp_name', with: @password) 
    fill_in('othercamps', with: "etcs") 
    #repeat for all the camps 
end 

Then(/^I will click on submit$/) do 
    find(:xpath, "submit_button").click 
end 

Then(/^I will enter new account details to login to test$/) do 
    visit "www.myloginpage.com" 
    fill_in("camp_username", with: @username) 
    fill_in("camp_password", with: @password) 
    find(:xpath, "login_button").click 
    page.should have_content ("LoggedPAge") 
end 

Вы можете использовать селен IDE (расширение Firefox) чтобы найти все xpath.

Мне не нравится это решение, для лучшей реализации моя рекомендация состоит в том, чтобы читать о объектах страницы (siteprism) и контурах сценария (огурец), это начало для лучшего кода.

0

Простой ответ заключается в том, что вы не должны делать это в одном сценарии.

Вы делаете две вещи здесь:

  1. , регистрирующих
  2. Подписание в

Позволяет сделке с вторым первым.

Чтобы войти в нас должны быть зарегистрированы таким образом мы получаем сценарий, как

Scenario: Sign in 
    Given I am registered 
    When I sign in 
    Then I should be signed in 

Но как же мы регистрируем?

Scenario: Register 
    Given I am a new user 
    When I register 
    Then I should be registered 

Теперь, как мы реализуем эту

Given "I am a new user" do 
    @i = create_new_user 
end 

When "I register" do 
    register as: @i 
end 

Then "I should be registered" do 
    # Go look at something to see that we are registered 
end 

Когда это работает теперь мы можем реализовать

Given "I am registered" do 
    @i = create_new_user 
    register as: @i 
end 

Мы можем сделать это, потому что мы создали возможность регистрации на получение нашего " Регистрация ".

И теперь мы можем работать над подписанием в

Это как BDD с огурцами работает. Вы работаете над реализацией небольшого количества действий (обычно в режиме «Когда», например, для регистрации).Затем вы используете это поведение (в Гивенс), так что вы можете добраться до места, где вы можете работать над реализацией какой-то новое поведение (вход в)

Надежда Thats помогает

Немного более подробно:

В методы create_new_user, регистр называется вспомогательными методами. Это ключ к написанию более простых определений шагов. В рубине вы можете определить их следующим образом:

module SignupStepHelper 
    def register 
    ... 
    def create_new_user 
    ... 
end 

World SignupStepHelper # makes it possible to call the methods in you step defs.