Передача списка значений в схему сценария Cucumber

У меня есть сценарий для проверки имен 100 сотрудников. QueryString вернет их в формате xml. Все, что я хочу сделать, это проверить все имена сотрудников в утверждении утверждения, как указано ниже. Вместо того, чтобы добавлять каждое имя в пример схемы сценария, можно ли отправить список из 100 имен сотрудников в качестве входных данных, чтобы я мог выполнять их итерацию в java и легко проверять в условии утверждения. Пожалуйста посоветуй.

Scenario Outline: When the User queries for employee information, the correct records are returned
    Given the webservice is running
    When the User queries for employee information "<QueryString>"
    Then the User receives correct data "<Name>"

Examples:
|QueryString|Name|
|Some localhost url|Peter|
|Some localhost url|Sam|
.
.

@Then("^the User receives correct data\"([^\"]*)\"$")
    public void the_user_receives_correct_data(String arg1) throws Throwable {
        queryResultPage = selenium.getPageSource();
        assertTrue(queryResultPage.contains(arg1));
    }

person Techie    schedule 19.07.2013    source источник
comment
Вы можете иметь имена в текстовом файле, читать из текстового файла и генерировать список. Используйте список в своих определениях шага. В этом случае в вашем файле функций не будет таблицы со списком имен.   -  person LINGS    schedule 19.07.2013
comment
Спасибо за идею. Кажется, это работает для моего сценария. Я создал список имен и попытался разместить свой файл, как показано ниже: |Некоторый URL-адрес локального хоста|@src/test/resources/InputFile.txt| Cucumber считает это текстом, а не файлом.   -  person Techie    schedule 19.07.2013


Ответы (2)


поэтому я отвечу здесь на комментарий LINGS. Что вы можете сделать, так это использовать эти имена файлов в своем определении шага для загрузки файлов в свой код. Насколько мне известно, Cucumber не поддерживает прямую загрузку файлов. я использую что-то вроде этого, чтобы найти полные пути ресурсов для моих имен файлов относительного пути:

public static String getAbsoluteResourcePath(String resourcePath) {

    if (SystemUtils.IS_OS_WINDOWS) {
      return Utils.class.getResource(resourcePath).getPath().substring(1).replace("/", File.separator);
    } else {
      return Utils.class.getResource(resourcePath).getPath().replace("/", File.separator);
    }
}

Тогда resourcePath должен быть вашим относительным путем к файлу.

person Dude    schedule 02.04.2015

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

Если вы используете огурец версии 5+, вы можете использовать qaf-cucumber, который дать вам все функции qaf с огурцом. Для более ранней версии вы можете запустить существующую файлы функций с помощью QAF runner.

person user861594    schedule 22.12.2019