Прелести Pytest: Pytest-BDD | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Подготовка к сертификации Oracle Java Programmer (OCAJP) C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework Unity Game Developer. Basic JavaScript Developer. Professional Android Developer. Basic JavaScript Developer. Basic Java Developer. Professional Highload Architect Reverse-Engineering. Professional Java Developer. Basic PHP Developer. Professional Алгоритмы и структуры данных Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Экспресс-курс «Введение в непрерывную поставку на базе Docker» Базы данных Reverse-Engineering. Professional Administrator Linux. Professional Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Прелести 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 комментариев
Для комментирования необходимо авторизоваться