Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Всем привет. Курс стартует в OTUS в этом месяце «Инженер по контролю качества Python» .

В преддверии старта этого курса делимся с вами переводом интересного материала.



Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Почти все основные языки программирования имеют фреймворки для BDD-тестирование , И Питон не исключение.

А ведь их у него несколько! Так как же их сравнить и какой из них лучший? Давайте попробуем разобраться.



вести себя

вести себя один из самых популярных BDD-фреймворков Python. Несмотря на то, что он официально не является участником проекта Огурец , его функциональность очень похожа на фреймворки Cucumber.

Источники:



Логотип



Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Плюсы:

  • Полностью поддерживает язык Gherkin;
  • Функциональность окружения и креплений (крепежа) облегчают монтаж и демонтаж;
  • Есть интеграция с Django и Flask;
  • Популярен среди BDD-питонов;
  • Хорошая документация и руководства;
  • Есть поддержка PyCharm Профессиональная версия .



Минусы:

  • Нет поддержки параллельного выполнения, для этого требуется отдельный фреймворк вести себя параллельно ;
  • «Поведение» — это отдельная структура;
  • Совместное использование шагов между файлами объектов может быть затруднительным.



pytest-bdd

pytest-bdd это плагин для pytest , что позволяет пользователям писать тесты в виде файлов функций Gherkin вместо тестовых функций.

Поскольку он интегрирован в pytest, он может работать с любыми другими плагинами pytest, такими как pytest-html создавать красивые отчеты и pytest-xdist для параллельного тестирования.

Он также использует приспособления pytest для внедрения зависимостей.





Источники:



Логотип



Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Плюсы:

  • Полностью совместим с pytest и его основными плагинами;
  • Вы можете пользоваться всеми преимуществами сообщества pytest;
  • Фикстуры — отличный способ управлять контекстом между шагами;
  • Тесты можно фильтровать и запускать вместе с другими тестами pytest;
  • Определения шагов и перехватчиков можно легко опубликовать с помощью conftest.py;
  • Табличные данные могут быть лучше обработаны для тесты, управляемые данными ;
  • Отличная онлайн-документация и учебные пособия;
  • Есть поддержка PyCharm Профессиональная версия .



Минусы:

  • Модули определения шагов должны иметь явные объявления для файлов функций (через «@scenario» или функцию «scenarios»);
  • План сценария поведения должен обрабатываться по-другому.



редис

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





Источники:



Логотип



Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Плюсы:

  • Расширения языка Gherkin позволяют тестировщикам писать более качественные тесты;
  • Сайт, документация и логотип – все на месте;
  • Файлы функций и определения шагов очень понятны.



Минусы:

  • Это автономный фреймворк с ограниченным количеством расширений;
  • Приверженцам BDD могут не понравиться дополнения к синтаксису Gherkin.


латук

латук — еще один «овощной» BDD-фреймворк Python, известный уже несколько лет. Однако его сайт и код уже давно не обновлялись.





Источники:



Логотип:



Сравнение Фреймворков Bdd Python: Плюсы И Минусы

Плюсы:

  • Простой код;
  • Проверено и хорошо.



Минусы:

  • Не такой богатый функционал, как в других фреймворках;
  • Похоже, что у него нет активной постоянной поддержки.



освежить

освежить один из самых первых фреймворков для BDD-тестирования на Python. Это был плагин для нос .

Однако и Freshen, и Nose больше не поддерживаются, и на их странице документации четко указано использование других фреймворков.





Рекомендации

Ни одна из этих платформ не идеальна, но многие из них имеют существенные преимущества.

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

Опрос разработчиков Python 2018 г.

показал, что pytest также является самой популярной средой тестирования на Python. Несмотря на то, что pytest-bdd выглядит не так безупречно, как ведет себя, я считаю, что некоторые специалисты TLC из сообщества открытого исходного кода смогут это исправить.

И еще несколько рекомендаций:

  • Используйте поведение, если вам нужен надежный, чистый опыт разработки и большое сообщество.

  • Используйте pytest-bdd, если вам нужна интеграция с другими плагинами, которые уже содержат кучу тестов pytest, или если вам нужно параллельное выполнение тестов.

  • Используйте редис, если вам нужен больший программный контроль над тестированием на уровне Gherkin.
  • Не используйте салат и не освежайте его.

Какая ваша любимая платформа для BDD? Пожалуйста, поделитесь в комментариях! Теги: #python #bdd #framework
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-05-10 16:46:18
Баллов опыта: 571
Всего постов на сайте: 1
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.