Итак, вот как я думаю, что справлюсь с этим сценарием, я сделаю некоторые предположения, чтобы проиллюстрировать то, что я думаю, просто для объяснения:
предположение 1: У меня есть YAML, которыйбудет хранить кредиты для всех пользователей.
допущение 2: в этом примере, скажем, я использую работу с огурцом в Selenium / Ruby для проверки страницы входа в систему: https://github.com/cucumber/cucumber-ruby.
ИтакУ меня есть класс Ruby, который будет включать в себя гем pageObject и будет иметь URL-адреса и объекты страниц для всех различных страниц входа в систему, например: class LoginPage
include PageObject
page_url_user_1 = someUrl for user1's login page
page_url_user_2 = someUrl for user2's login page
text_field(:user_1, name: 'username')
text_field(:pass_1, name: 'password')
button(:submit, css: '.submit-btn')
text_field(:user_2, name: 'username')
text_field(:pass_2, name: 'password')
button(:submit, css: '.submit-btn')
def submit_creds(user_1)
self.user_1 = GetCreds fro YAML
self.pass_1 = GetCreds fro YAML
self.submit
end
def navigate_to_Login_page(page_url_user_1)
@browser.navigate.to page_url_user_1
end
end
Теперь На уровне Cucumber у вас есть шаг функции, такой как:
When I navigate to "page_url_user_1" login page
And I login as "User_1"
и на шаге Определение вы можете просто получить что-то вроде:
when(/^I navigate to "([^"]*)" login page do |user_login_url|
on(LoginPage).navigate_to_Login(user_login_url)
end
when(/^I login as a "([^"]*)" do |user_name|
on(LoginPage).submit_creds(user_name)
end
Надеюсь, это поможет вам начать.