vanessa
December 27, 2022

Передача таблицы из основного в экспортный сценарий

Недавно в VA появилась возможность передавать в экспортные сценарии таблицы как параметры. Это позволяет полноценно отделить тестовые данные от описания интерфейса, применив паттерн "Page Object". Писал про него здесь и здесь.

Синтаксис получился достаточно простой.

В основном сценарии "вызываем" экспортный сценарий и под вызовом описываем таблицу со значениями.

В экспортном сценарии таблица может быть описана без подробностей просто строкой '| Таблица |' и больше подробностей не требуется.

Типовой шаг-цикл "И для каждой строки таблицы я выполняю" превращает каждую колонку таблицы в переменную и вызывает вложенные действия для каждой строки таблицы.

При этом нет никаких ограничений по использованию данного механизма в собственных шагах. Таблица полностью передается в процедуру-снипет, как параметр, и ее можно обработать любым способом.

Обращения к переменным в экспортном сценарии происходит через обрамление имени колонки долларами. Если колонка называется 'Имя', то обращение к значению происходит $Имя$.

VA сама определяет какую таблицу куда подставить, но чтобы убедится в корректности подстановки лучше использовать Vanessa Editor, включив опцию "Показывать строки подсценариев". Тогда в основном сценарии будут видны строки экспортного сценария и таблицы основного сценария. На скрине ниже показано отображение таблицы основного сценария в строках экспортного сценария.

Ограничения и особенности данного механизма:

  • таблиц в основном сценарии может быть несколько, но порядок их вызова экспортным сценарием должен строго соответствовать порядку описания в основном сценарии, также в основном сценарии таблицы должны быть разделены пустой строкой
  • в экспортном сценарии не должно других шагов с таблицами Gherkin, например шаг "И в таблице 'Список' я перехожу к строке:" приводит к такому эффекту
экспортный
подставилась таблица
  • шаги обработки строк должны быть "вложены" в шаг-цикл, ниже показано как должен выглядеть сценарий с включенной опцией @tree