Jbehave как управляемая данными среда тестирования
У меня есть несколько сценариев, написанных на Jbehave
и я хотел бы запустить его для 1000+ данных. Проблема в том, что я не могу перечислить все элементы данных в "Примерах", потому что, во-первых, они не обслуживаются, а во-вторых, я ежедневно получаю этот файл данных из внешней службы.
Есть ли способ написать сценарий, который может взять данные из файла?
2 ответа
Параметры могут быть загружены из внешнего файла,
Подробности с примером здесь: http://jbehave.org/reference/stable/parametrised-scenarios.html
Загрузка параметров из внешнего ресурса
Таблица параметров также может быть загружена из внешнего ресурса, будь то ресурс classpath или URL.
Given a stock of <symbol> and a <threshold>
When the stock is traded at <price>
Then the alert status should be <status>
Examples:
org/jbehave/examples/trader/stories/trades.table
Нам нужно включить синтаксический анализатор для поиска ресурса с соответствующим загрузчиком ресурсов, настроенным с помощью examplesTableFactory:
new MostUsefulConfiguration()
.useStoryParser(new RegexStoryParser(
new ExamplesTableFactory(new LoadFromClasspath(this.getClass())))
)
У меня тоже есть такое же требование, и я думаю, что ниже будет возможным решением.
Реализуйте метод для чтения таблицы Excel и подготовки testData.table перед выполнением запуска сценария, используйте аннотацию @BeforeScenario jbehave в файле java шагов.
перейдите по этой ссылке, чтобы реализовать загрузку данных с внешнего ресурса http://jbehave.org/reference/stable/parametrised-scenarios.html
@BeforeScenario
public void prepareTestData(String excelSheetPath) {
// java code to read given excelSheetPath and prepare a *.table
}