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

Курсы

Программирование
Backend-разработчик на PHP
-9%
Алгоритмы и структуры данных
-9%
Team Lead
-6%
Архитектура и шаблоны проектирования Разработчик IoT
-13%
C# Developer. Professional
-9%
HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework C++ Developer. Professional Java Developer. Basic JavaScript Developer. Professional Базы данных Android Developer. Professional Framework Laravel Cloud Solution Architecture Highload Architect Reverse-Engineering. Professional Vue.js разработчик Agile Project Manager Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Administrator Linux.Basic
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Administrator Linux. Professional
-6%
Дизайн сетей ЦОД
-13%
Разработчик IoT
-13%
Экспресс-курс по управлению миграциями (DBVC)
-10%
Основы Windows Server MS SQL Server Developer Разработчик программных роботов (RPA) на базе UiPath и PIX Microservice Architecture Reverse-Engineering. Professional Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Экспресс-курс «IaC Ansible» Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений Пентест. Практика тестирования на проникновение Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
IT-Recruiter
-15%
Дизайн сетей ЦОД
-13%
Компьютерное зрение
-13%
Enterprise Architect
-6%
Экосистема Hadoop, Spark, Hive
-8%
Экспресс-курс по управлению миграциями (DBVC)
-10%
Основы Windows Server SRE практики и инструменты Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Agile Project Manager Супер-практикум по работе с протоколом BGP Infrastructure as a code in Ansible Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Супер-интенсив Azure Системный аналитик. Advanced
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Pytest-BDD на практике

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

f3lzqmbrjafdpkleta64i55ptle_1-1801-486ef3.png

И вот в этой-то ситуации Pytest-BDD предстает перед нами во всей красе. Так как Pytest-BDD интегрирован в Pytest, появляется возможность: • писать тестовые фреймворки, которые смешивают BDD и обычные Pytest-тесты; • удалять использование BDD в случае рефакторинга в обычные Pytest-тесты.

К примеру, мы желаем убрать BDD-инструментарий, продолжая использовать функциональность Pytest. Как вариант — переписать тест на валидную авторизацию, при этом невалидная будет продолжать применение Pytest-BDD. В результате файл test_store_login.py будет выглядеть приблизительно следующим образом:

Screenshot_1-1801-b0255b.png

После команды pytest test_store_login.py оба теста будут запущены, причем для невалидной авторизации станет доступна дополнительная отчетность Pytest-BDD. Обратите внимание, что не надо манипулировать фича-файлом: его вообще можно убрать либо сохранить — на выполнение тестов автоматизации он не повлияет.

Таким образом, Pytest-BDD – весьма полезный плагин для работы с BDD и «Пайтон», причем он не ограничивает команду применением только BDD-подходов. Это не больше и не меньше «киллер-фича», которой не существует у многих других BDD-фреймворков. Ну и, конечно, это очередная веская причина использовать для автоматизации тестирования Pytest.

И еще несколько плюсов:

  • полная совместимость с pytest, включая его основные плагины;
  • возможность использования всех преимуществ pytest-сообщества;
  • наличие фикстур как прекрасного способа управления контекстом между шагами;
  • тесты можно фильтровать и выполнять вместе с другими pytest-тестами;
  • определениями шагов и хуков вы сможете без проблем делиться посредством conftest.py;
  • табличные данные для data-driven тестов можно обрабатывать лучше;
  • прекрасные туториалы и онлайн- документация;
  • поддержка PyCharm Professional Edition.

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

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

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

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

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