t.me/atinfo_chat Telegram группа по автоматизации тестирования

Где инициализировать браузер в Cucumber-тестах

cucumber
Теги: #<Tag:0x00007f21e3343e90>

(Алексей Павлов) #1

Добрый день.

в Cucumber (в отличие от Junit) можно задать теги-хуки @Before или @After только единожды
Т.е. если в Junit такие теги выполняются в каждом классе с тестами, то в Cucumber их надо задать в отдельном классе с хуками только один раз и не нужно задавать в классах с реализацией шагов (например есть N кол-во классов со степами-тестами Cucumber)
В связи с этим у меня вопрос - а где тогда реализовывать запуск вебдрайвера и инициализацию Page object-страниц?
Если реализовывать его в хуках, непонятно как использовать драйвер и инициализированные page objects в тестах Given/When/Then в классах с шагами.

Какое типовое решение?


(Михаил Братухин) #2

Вообще, @Before может быть несколько: https://cucumber.io/docs/cucumber/api/#before
Вот тут есть отличная статья про огурец на хабре: Руководство: Cucumber + Java там в конце описан пример как с помощью тегов можно запускать хуки для разных сценариев и управлять порядком их исполнения.

Есть же куча примеров в сети про PO типа такого:
https://www.toolsqa.com/selenium-cucumber-framework/page-object-design-pattern-with-selenium-pagefactory-in-cucumber/ (не реклама) и там ещё у них куча статей по теме рядышком. Такие же похожие статьи есть также в изобилии в интернете и находятся любыми поисковиками за 5 минут.