Рубрики
Без рубрики

Лучшие Фреймворки Тестирования Python В 2020 Году Для Автоматизации Selenium

Трудно выбрать правильную платформу тестирования Python в 2020 году для ваших потребностей в тестировании автоматизации selenium. Прочитайте сейчас, чтобы найти подходящую платформу автоматизации Python

Автор оригинала: Aditya Dwivedi.

Python является самым быстрорастущим языком программирования в 2019 году, согласно опросу Developer, проведенному StackOverflow . Он даже обошел Java в общем рейтинге и занял 2-е место как самый любимый язык только после Rust. Одной из нескольких причин популярности Python является обширная поддержка фреймворков автоматизации тестирования. Большинство популярных фреймворков Python совместимы с Selenium test automation framework и используются для автоматизации тестирования браузеров и кросс-браузерного тестирования.

GIF-Python Testing Framework 2020

С увеличением числа платформ тестирования Python в 2020 году возникает необходимость выбрать идеальную платформу автоматизации тестирования Selenium, соответствующую вашим требованиям. Помимо unittest (или PyUnit), который является платформой тестирования Python по умолчанию в 2020 году, есть еще много фреймворков python на выбор.

Вот лучшие платформы тестирования Python в 2020 году для реализации ваших потребностей в автоматизации тестирования Selenium.

1. ПиТест

Pytest-Платформа тестирования Python 2020

PyTest-это платформа тестирования Python с открытым исходным кодом, которая в основном используется для модульного тестирования. Эта конкретная платформа тестирования Python в 2020 году является масштабируемой, поскольку она полезна для написания простых тестов автоматизации, а также сложных функциональных тестов для приложений и библиотек. С PyTest легко начать работу. Он совместим с Python 3.5+ и PyPy 3.

Наборы тестов, написанные с использованием PyTest, более компактны, так как не требуется много шаблонного кода и нет необходимости включать тесты в большие тестовые классы. В отличие от стандартной платформы тестирования Python 2020, которая предписывает тестам начинаться с test_ (или заканчиваться _test), в PyTest нет фиксированной номенклатуры тестовых случаев. Это связано с тем, что PyTest имеет встроенные функции, которые поддерживают автоматическое обнаружение тестовых модулей и функций.

Нет необходимости запоминать имена self.assert* из-за введения полезной функции перезаписи assert, которая помогает предоставить подробную информацию о неудачных операторах assert.

Официальный сайт PyTesthttps://www.pytest.org/

PyTest на GitHubhttps://github.com/pytest-dev/pytest/

Вот подробная информация о проекте PyTest:

проект pytest

Каковы Предварительные Условия?

Самое лучшее в PyTest, платформе тестирования Python, заключается в том, что она включает в себя плавную кривую обучения. Легко начать работу с PyTest, особенно если у вас есть предварительные рабочие знания о любых существующих фреймворках тестирования Python.

Вам просто понадобится среда разработки Python IDE для разработки и менеджер пакетов Python для установки PyTest.

Плюсы PyTest

Существует ряд преимуществ фреймворка PyTest, основные из которых приведены ниже:

  • Он совместим с другими фреймворками тестирования Python, такими как unittest (или PyUnit).
  • Наряду с простыми тестами, PyTest также может использоваться для создания сложных функциональных тестовых случаев.
  • Для переноса существующих реализаций с использованием других фреймворков тестирования Python на PyTest требуется меньше усилий.
  • PyTest можно использовать для проектов, которые практикуют TDD (Test Driven Development), а также для проектов с открытым исходным кодом.
  • PyTest играет важную роль в создании эффективных тестовых случаев (и наборов тестов), поскольку он поддерживает параметризацию. Используя параметризацию, тестовые случаи могут выполняться с различными входными конфигурациями, что приводит к минимальному повторению кода.
  • Тесты с использованием PyTest легко понять, так как существует очень мало шаблонного кода.
  • Он поддерживает приспособления и классы, благодаря которым общие тестовые объекты доступны в течение жизненного цикла модуля/класса/функции/сеанса.
  • PyTest является расширяемым, и платформа тестирования Python уже имеет богатую архитектуру плагинов. В настоящее время существует 315+ внешних плагинов с PyTest.
  • Он поддерживает параллельное выполнение тестов с помощью плагина pytest-xdist.
  • Утверждения в PyTest предоставляют подробную информацию о сценариях сбоев.

Минусы PyTest как платформы тестирования Python

PyTest не совместим с другими фреймворками тестирования Selenium Python, поскольку он использует свои собственные специальные процедуры для разработки. Переписывание полного кода-единственный способ перенести существующую реализацию с помощью PyTest в какую-либо другую платформу тестирования Python.

Является Ли PyTest Лучшей Платформой Для Тестирования Python Для Вас?

Вы можете выбрать PyTest вместо стандартного фреймворка Selenium Python, т. Е. модульный тест, если вы разрабатываете сложные функциональные тесты. Приспособления, классы, а также параметризация могут быть чрезвычайно удобны для разработки тестов автоматизации.

2. Ведите себя прилично

Поведение - Python Testing Framework 2020

Behavior является одним из широко используемых фреймворков тестирования Selenium Python для тестирования BDD (Business Driven Development). Behavior использует язык корнишонов для разработки сценариев и файлов функций. Поскольку Gherkin использует простой читаемый язык для разработки тестовых примеров, тесты также могут быть созданы для нетехнического персонала в команде, что позволяет разрабатывать бизнес-ориентированную разработку.

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

Поскольку Behavior является фреймворком BDD, он принципиально отличается от других фреймворков тестирования Selenium Python, таких как unittest (или PyUnit), PyTest и т. Д. Последняя версия Behavior-1.2.7.dev1

Официальный сайт – https://behave.readthedocs.io/en/latest/

Вести себя на GitHub – https://github.com/behave/behave

Вот подробная информация о структуре поведения:

структура поведения

Каковы Предварительные Условия?

Для установки Behavior требуется Python выше 2.7.14. Предыдущий опыт работы с любым из инструментов BDD может быть полезен для начала работы с платформой Behavior.

Плюсы Поведения

Вот преимущества использования платформы Behavior для автоматизации тестирования Selenium:

  • Это легко сделать, если у команды есть предыдущий опыт работы с любой существующей платформой BDD, такой как SpecFlow, Cucumber и т. Д.
  • Наличие функций окружающей среды, настроек конфигурации, приспособлений и т.д. обеспечивает простую настройку и очистку.
  • Поведение поддерживается с помощью PyCharm (Professional Edition) .
  • Он поддерживает интеграцию с другими веб-фреймворками, такими как Django и Flask .
  • Он имеет отличную документацию по поддержке и учебные пособия, которые могут быть полезны для начала работы с платформой behavior.
  • Проще добавлять новые тестовые случаи, поскольку тесты состоят из различных этапов сценария, результатов сценария, файлов функций и многого другого.
  • Помимо технических специалистов, нетехнические участники также могут играть жизненно важную роль в разработке тестового случая (или тестового сценария).

Минусы Поведения

Ниже приведены некоторые из основных недостатков использования платформы behavior в автоматизации тестирования Selenium:

  • Он не поддерживается в PyCharm (Community Edition) .
  • Очень трудно поделиться сценарными шагами (*_steps.py) между различными файлами функций (*.feature) в Behavior.
  • Нет встроенной поддержки параллельного выполнения тестов, что является одним из основных требований для автоматического тестирования браузера . Обходные пути для параллельного выполнения тестов требуют установки дополнительного программного обеспечения, как упоминалось в популярных дискуссионных потоках здесь и здесь .
  • Поведение может использоваться только для тестирования черного ящика.
  • Плагин behavior-parallel , который облегчал параллельное выполнение тестов с behavior, теперь устарел.

Является Ли Behavior Лучшей Платформой Для Тестирования Python Для Вас?

Платформа Behavior подходит для веб-тестирования, так как тестовые сценарии могут быть разработаны с использованием простого английского языка. С другой стороны, поведение не идеально подходит для интеграционного тестирования, так как многословие может привести к ненужным осложнениям тестовых сценариев.

Многие разработчики предпочитают pytest-bdd , библиотеку BDD для pytest.runner, поскольку она использует хорошие функции, доступные в pytest, поэтому подходит для тестирования BDD.

3. Робот

Robot Python Testing Framework 2020

Robot-это еще одна широко используемая платформа тестирования Python, которая используется для автоматизации тестирования Selenium, RPA (Роботизированная автоматизация процессов) и ATDD (Разработка на основе приемочных тестов). Это открытая и расширяемая платформа тестирования Python с открытым исходным кодом. Он может быть легко интегрирован с любым другим инструментом, благодаря чему идеально подходит для создания гибких решений для автоматизации тестирования.

Платформа тестирования Python не зависит от операционной системы и приложений, т. е. одна и та же реализация совместима на разных платформах, а именно – Windows, Linux и macOS. Синтаксис фреймворка робота легко понять, поскольку он использует читаемые человеком ключевые слова. Возможности Robot framework могут быть расширены библиотеками, которые реализованы в Selenium с Python . Он имеет богатую экосистему, состоящую из библиотек и инструментов, разработанных как отдельные проекты.

Официальный сайт роботаhttps://robotframework.org/

Робот на GitHubhttps://github.com/robotframework/robotframework

Вот подробная информация о фреймворке робота:

каркас робота

Каковы Предварительные Условия?

Robot Framework можно использовать, если у вас установлена версия Python 2.7.14 или выше. Команда Python Package Manager (pip) используется для установки платформы тестирования Python.

Плюсы каркаса робота

Вот преимущества использования фреймворка робота для автоматизации тестирования Selenium:

  • Для написания тестовых случаев с использованием платформы Robot не требуются знания программирования.
  • Поскольку платформа тестирования Python не зависит от платформы и приложения, при выполнении кода с одной платформы на другую не требуется никаких усилий по переносу.
  • Его можно использовать для автоматизации тестирования селена на основе BDD, ATDD и ключевых слов.
  • Легко начать работу с фреймворком робота, так как синтаксис тестовых данных может быть легко использован.
  • Robot framework имеет богатую библиотечную экосистему, например Appium для мобильной автоматизации, библиотеку баз данных для тестирования БД и т. Д. для тестирования различных приложений.
  • Он имеет хороший встроенный механизм отчетности, так как журнал HTML генерируется после каждой сборки.

Минусы робота

Ниже приведены некоторые из основных минусов использования фреймворка робота:

  • Встроенная поддержка параллельного выполнения тестов отсутствует.
  • Создание настраиваемых HTML-отчетов-непростая задача.

Является Ли Робот Лучшей Платформой Для Тестирования Python Для Вас?

Благодаря богатому набору библиотек и простому синтаксису, Robot framework проще в использовании по сравнению с PyUnit (или модульным тестом) и PyTest. Вы должны выбрать Robot framework, если мы ищем идеальную платформу автоматизации Python для ATDD.

4. PyUnit (или unittest)

Pyunit-Платформа тестирования Python

PyUnit (также называемый модульным тестом) – это платформа тестирования Python по умолчанию, которая является частью стандартной библиотеки Python. Фреймворк тестирования Python вдохновлен фреймворком JUnit. Это часть модуля unittest , который поставляется с момента выпуска версии Python 2.1.

Поскольку модульный тест Python testing framework доступен из коробки, многие разработчики, которые начинают работу с Selenium test automation, предпочитают unittest framework. Тестовые случаи следуют определенной номенклатуре, где тесты либо начинаются с test_, либо заканчиваются _test.

Тестовый случай-это базовый класс, содержащий методы утверждения, процедуры настройки и демонтажа. Количество тестовых случаев может быть сгруппировано вместе, чтобы сформировать класс TestSuite и создать настраиваемые бегуны тестов.

Каковы Предварительные Условия?

Поскольку платформа PyUnit доступна из коробки с платформой тестирования Python, она не требует установки какого-либо дополнительного пакета.

Плюсы PyUnit (или unittest)

Вот некоторые из преимуществ фреймворка PyUnit:

  • Поскольку PyUnit является производным от фреймворка xUnit и имеет явное сходство с фреймворком xUnit, начинающим разработчикам в Python также легко начать работу с unittest framework.
  • Установка дополнительного пакета не требуется.
  • Тестовые сценарии могут выполняться независимо друг от друга или группироваться в набор тестов. Процесс выполнения прост, так как тесты могут быть выполнены только путем упоминания их имен на терминале.
  • Вывод выполнения по умолчанию является кратким и простым для понимания. Эта платформа тестирования Python также имеет ряд параметров командной строки, которые помогают обеспечить более детальный вывод.
  • Создание отчета о тестировании происходит очень быстро и занимает всего несколько миллисекунд.

Минусы PyUnit (или unittest)

Вот некоторые из основных недостатков структуры PyUnit:

  • Именование тестовых случаев по – прежнему основано на соглашении об именовании camelCase, используемом в Java.
  • Для реализации теста используется большое количество шаблонного кода.
  • Нет никаких условий для вывода цвета.

Является Ли PyUnit Лучшей Платформой Автоматизации Python Для Вас?

Модуль sPy (или модульный тест) – это платформа тестирования Selenium Python по умолчанию, поставляемая вместе с Python, большинство разработчиков начинают автоматизацию тестирования с Python journey с PyUnit. Слишком много шаблонного кода и поддержка слишком большого количества абстракций является серьезным препятствием при использовании платформы тестирования Python для больших проектов.

5. Салат-латук

Lettuce Python Testing Framework 2020

Lettuce-это платформа тестирования Python, которая облегчает тестирование BDD. Он черпает свое вдохновение из огурца (который был разработан для Рубина). Названия выпусков салата вдохновлены зеленым веществом. Последняя версия салата-0.2.23 и называется Криптонитом.

Эта конкретная платформа тестирования Python с открытым исходным кодом размещена на GitHub. Как уже упоминалось на их официальном сайте, салат был разработан, чтобы сделать тестирование легким и забавным.

Официальный сайт салатаhttp://lettuce.it/

Салат на GitHubhttps://github.com/gabrielfalcao/lettuce

Вот подробная информация о структуре салата:

каркас из салата

Каковы Предварительные Условия?

Салат можно установить с помощью менеджера пакетов Python (pip). Обязательным условием является Python 2.7.14 (или выше).

Плюсы салата

Вот некоторые из преимуществ структуры салата:

  • Как и другие платформы тестирования Python, такие как Behavior, которые облегчают BDD, Lettuce также использует язык огурцов для создания сценариев и файлов функций. Начать работу с салатом легко, если у вас есть опыт работы с любым инструментом тестирования BDD.
  • Помимо разработчиков и другого технического персонала, другие заинтересованные стороны проекта, а именно маркетологи, менеджеры проектов и т.д., Также могут играть важную роль в процессе тестирования.
  • Легко добавлять новые тестовые случаи, так как первичные обновления требуются в файлах функций и файлах сценариев.

Минусы салата

Вот некоторые из основных недостатков структуры салата:

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

Является Ли Салат Лучшим Фреймворком Автоматизации Python Для Вас?

Салат делает весь процесс автоматизации тестирования Selenium масштабируемым, читаемым и простым. Лучшая часть использования инструмента BDD, такого как салат, заключается в том, что нетехнические люди также могут участвовать в процессе создания тестов, поскольку тесты основаны на бизнес-требованиях. Разработчики и тестировщики Python имеют большую склонность к pytest-bdd, поскольку он имеет большинство функций, поддерживаемых другими инструментами BDD.

6. Нос 2

Nose2 Python Testing Framework 2020

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

Все эти дополнительные функции делают тестирование с помощью PyUnit простым и легким. Экосистема плагинов узла 2 добавляет поддержку декораторов, приспособлений, параметризованного тестирования, модулей, классов и обнаружения тестов. Таковым в Nose 2 является DSL (Доменный язык) для написания тестов с дорогими вложенными функциями, также называемыми функциональными тестами. Более подробная информация о таких в разделе 2 доступна на официальном сайте таких .

Официальный сайт Nose2https://docs.nose2.io/en/latest/

Nose2 на GitHubhttps://github.com/nose-devs/nose2

Вот подробная информация о платформе модульного тестирования Nose 2, python:

носовой каркас

Каковы Предварительные Условия?

Нос 2 зависит только от модуля unittest, который поставляется вместе с библиотекой Python. Нос 2 можно установить с помощью менеджера пакетов Python (pip).

Плюсы носа 2

Вот некоторые из преимуществ платформы тестирования python Nose 2:

  • Его легко установить и начать работу с Nose2, поскольку он расширяет существующую платформу модульного тестирования.
  • С такими функциями, как обнаружение тестов, светильники, параметризованное тестирование и т. Д., nose2 делает unittest столь же полезным, как и PyTest.
  • Сценарии, написанные в узле 2, поддерживают ряд параметров командной строки и обширную конфигурацию с помощью конфигурационных файлов.
  • Используя плагин mp в Nose2 , тесты могут выполняться параллельно с несколькими процессами. Это ускоряет выполнение теста в случае, если ваши тесты сильно связаны с вводом-выводом или процессором.
  • Узел 2 имеет большое количество плагинов , которые могут помочь ускорить процесс автоматизации тестирования Selenium.

Минусы носа 2

Вот некоторые из незначительных недостатков платформы тестирования python Nose 2:

  • Документация узла 2 не так обширна, как фреймворк PyTest.
  • Амортизация nose framework , которая поддерживалась на Python 2.4 (и выше), может стать потенциальным демпфером для разработчиков, которые хотят использовать Nose2 в своих проектах.

Является Ли Nose 2 Лучшей Платформой Для Тестирования Python Для Вас?

Если члены вашей команды используют фреймворк unittest и не намерены переключаться на какой-либо другой фреймворк (например, Lettuce, Behavior, PyTest и т. Д.), Стоит попробовать Nose2, поскольку он является расширением unittest.

Поскольку Noise 2 также поддерживает распараллеленное тестирование, его можно использовать для автоматизированного тестирования браузеров, когда тестовые сценарии выполняются в различных комбинациях браузеров и платформ.

7. Свидетельствуйте

Платформа тестирования Python 2020

Testify-еще одна популярная платформа тестирования Python в 2020 году, которая рассматривается как замена unittest и nose framework. Поскольку фреймворк моделируется после модульного теста, тесты, написанные для модульного теста, потребуют минимальных корректировок для работы с ним.

Он может использоваться для выполнения автоматизированного тестирования блоков, интеграции и систем. Последняя версия Testify-0.11.0. Он имеет расширяемую систему плагинов, которая обеспечивает полезную функциональность в области отчетности. Как и фреймворк Nose 2, Testify также обеспечивает расширенное обнаружение тестов и методы настройки и демонтажа на уровне классов, которые выполняются один раз для всего набора методов тестирования.

Официальный сайтhttps://pypi.org/project/testify/

Свидетельствуйте на GitHubhttps://github.com/Yelp/Testify

Вот подробная информация о структуре дачи показаний:

рамки для дачи показаний

Каковы Предварительные Условия?

Основное преимущество структуры Testify заключается в том, что она включает в себя плавную кривую обучения, поскольку она основана на существующей структуре unittest. Установка довольно проста, так как для нее требуется только менеджер пакетов Python.

Плюсы дачи показаний

Вот некоторые из преимуществ платформы Testify:

  • С ним легко начать работу, так как он основан на unittest framework.
  • Фреймворк имеет расширяемую экосистему плагинов.
  • В нем есть дополнительные утилиты тестирования, которые помогают в интеграции, профилировании и покрытии кода.
  • Как и фреймворк Nose 2, Testify также поставляется с улучшенным обнаружением тестов, что делает поиск тестов очень легким.
  • Он имеет подход, основанный на декораторе, для методов крепления.

Минусы дачи показаний

Вот некоторые из незначительных недостатков этой структуры:

  • У Testify также есть та же проблема, что и у Noise 2, документация не настолько обширна, что может стать препятствием, если вы только начинаете работу с платформой Testify.
  • Параллельное тестирование с помощью Testify может стать препятствием, как указано в паре онлайн-дискуссионных форумов .

Является Ли Это Лучшей Платформой Для Тестирования Python Для Вас?

Как и Nose 2, если ваша команда ищет фреймворк для тестирования Python, построенный поверх модульного теста, то стоит попробовать его. Поскольку добиться распараллеливания тестирования с помощью Testify немного сложно, он может не подходить для таких сценариев, как автоматическое тестирование браузера.

Завершая его

Выходные данные Python Testing Framework 2020

В этой статье мы рассмотрели некоторые из популярных фреймворков тестирования Python, которые можно использовать с Selenium. Каждая из этих структур имеет свою долю преимуществ и недостатков. Если вы намерены включить нетехнические элементы в процесс создания теста, вам следует попробовать инструменты BDD, такие как Behavior или Lettuce. Подводя итог, можно сказать, что выбор правильной платформы тестирования Python зависит исключительно от требований проекта и компетенций, доступных в команде.

Какой именно фреймворк тестирования Python вы используете? Поделитесь своим опытом в разделе комментариев. Кроме того, пожалуйста, не стесняйтесь поделиться этой статьей со своими друзьями, ретвитнув нас в Twitter. Счастливого Тестирования