#selenium #automation #cucumber #gherkin
#selenium #автоматизация #cucumber #корнишон
Вопрос:
Вот мой файл тестовой функции с одним сценарием
Feature: My test feature
Scenario Outline: I want user to be logged into MyPage
When user goes to MyPage
And user fills "<test_login>" login field
And user fills "<test_password>" password field
And user clicks Login button
Then user should be logged in
Examples:
|test_login|test_password|
|login1234|password1234|
Я хотел бы изменить мой раздел Examples: на что-то вроде этого
Examples:
src/test/resources/datatables/logind_data.table
Я хочу использовать путь к файлу, который содержит таблицу данных, но я получаю сообщение об ошибке Cucumber gherkins builder.
error_modal
Возможно ли использовать внешние ресурсы в «Примерах:»?
Ответ №1:
В настоящее время это невозможно. Мы обсуждаем, как реализовать is в этом выпуске. Не стесняйтесь присоединиться к разговору там.
Ответ №2:
Cucumber сейчас не поддерживает никаких внешних файлов. Это невозможно. Однако вы можете попробовать использовать файл свойств в коде cucumber и инициализировать его. Но опять же, вы не можете сохранить все данные в файле свойств
Ответ №3:
Лучший способ для такого рода вещей — написать лучшие сценарии, которые абстрагируются от деталей.
Но прежде всего вам нужно ответить на несколько вопросов.
Зачем вам нужно проверять, что множество разных пользователей могут входить в систему? Какую выгоду вы получаете от тестирования дополнительных пользователей?
Предполагая, что у вас действительно есть веская причина для тестирования группы пользователей, вы могли бы написать что-то вроде
Scenario: Foo users can sign in
Given Foo users are registered
When Foo users sign in
Then Foo users should have signed in
И поместите все подробности о том, как вы это делаете, в свои определения шагов. Это позволит вам делать такие вещи, как
Given 'Foo users are registered' do
@foo_users = load_foo_users(path: src/test/resources/datatables/logind_data.table)
@foo_users.each do |user|
register_user(user: user)
end
end
Вы можете обойти пользователей на шаге when и записать результаты в другом глобальном. А затем изучите результаты на шаге Then.
Здесь используется пара общих методов
- нажмите «как» в стеке тестов (features, step_defs, helper_methods, код приложения)
- используйте глобальные переменные для обмена данными между этапами
- используйте абстрактный простой язык в сценариях
- присваивает конструкциям имена и ссылается на них по имени в сценариях. Не определяйте их содержимое.