Прелести Pytest: Pytest-BDD | OTUS

Прелести Pytest: Pytest-BDD

Говоря о возможностях Pytest, нельзя не вспомнить про Pytest-BDD, представляющий собой, по сути, полноценный инструмент автоматизации тестирования. Pytest-BDD — это вариация таких популярных фреймворков, как Cucumber либо Behave, однако Pytest-BDD сам по себе, поэтому его иногда называют Python Cucumber.

200x200_images_stories_library_bdd_1-1801-f4a205.jpg

Вообще, BDD является довольно популярным подходом, который распространен среди различных команд, как опытных, так и тех, кто впервые работает с автоматизацией тестирования. Ключевая особенность BDD заключается в создании так называемых фича-файлов. При этом используется специальный синтаксис, Gherkin. Этот синтаксис дает возможность описывать фичи в следующем формате:

Screenshot_1-1801-05fa4d.png Screenshot_2-1801-2ce693.png

Далее превращаем это в компьютерный код с последующим выполнением.

Такие «фича-файлы» могут создавать любые члены команды. Таким образом новые фичи документируются посредством запуска тест-кода, что упрощает тестовую коммуникацию.

Но давайте посмотрим, как это работает с Pytest-BDD. Начнем с фича-файла, созданного по синтаксису Gherkin. Не будем далеко уходить от темы интернет-магазина и назовем нашу фичу store_login.feature. Она станет описывать, каким образом функционируют 2 специфических потока авторизации: невалидный и валидный:

Screenshot_3-1801-46ce6a.png Screenshot_4-1801-00fc78.png

Давайте учтем, что это, по сути, описательные сценарии. Идея заключается в том, что фичи могут создаваться не напрямую разработчиками тестов, а посредством коммуникации с дизайнерами, продактами и прочими заинтересованными членами команды.

Давайте глянем на внедрение наших шагов. Теперь тест-разработчик может создать файл test_store_login.py приблизительно следующего содержания:

1-1801-0ecd66.png

Это показывает нам, как именно мы можем использовать BDD и шаги, описанные Gherkin, продолжая в то же время использовать известные Pytest-конструкции (фикстуры, добавление test_ к файлам для исполнения). При необходимости код можно доработать, к примеру, задействовав паттерн Page Object либо совместив шаги, но наша задача — подчеркнуть BDD-аспект данного сценария.

Чтобы выполнить тест, можно вызвать pytest test_store_login.py, в результате чего мы увидим результат. Кроме того, Pytest-BDD сгенерирует полезные отчеты в стиле Cucumber, что произойдет в дополнение к стандартной Pytest-отчетности. Также в шагах Gherkin доступны регулярные выражения и замещения.

Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто