Основы тестирования на Python: введение |
12.02.2021 00:00 |
Автор: Энди Найт (Andy Knight) Python – потрясающий язык программирования. Его любят и новички, и эксперты, и он регулярно оценивается как язык с самым высоким спросом. На конференции PyData Carolinas 2016 Джош Хоус, старший менеджер управления данными в MaxPoint, описал Python примерно так: Python – магический инструмент, который позволяет легко решать самые сложные мировые проблемы. Я впервые столкнулся с Python в старшей школе более десяти лет назад, но начал по-настоящему пользоваться им и полюбил только недавно, используя его для тест-автоматизации. Эта серия статей научит вас тестировать на Python. Эта вводная статья даст вам базовые ориентиры, а каждая последующая подробно разберет один из фреймворков Python. Почему надо тестировать именно на Python? Как упоминалось в другой статье, "Лучший язык программирования для автоматизации", Python внятен, элегантен и читабелен – это именно то, что нужно для превращения тест-кейсов в тест-скрипты. Его хорошо поддерживаемые тест-пакеты отлично управляются и с белым, и с черным ящиком. Он также дружит с командной строкой. Инженеры, никогда не использовавшие Python, обычно быстро ему обучаются. Примеры ниже иллюстрируют способы использования Python для тест-автоматизации:
Помните, Python можно использовать для любого черноящичного тестирования, даже если ваш продукт не написан на Python! Версия PythonВыбор правильной версии Python – непростое решение. Для более подробной информации прочитайте статью "Какую версию Python использовать". Краткое содержание:
В этой серии статей, если не указано иное, используется CPython 3. Выбор фреймворкаФреймворков Python так много, что выбор кажется устрашающим – только посмотрите на Python wiki, The Hitchhiker’s Guide to Python и pythontesting.net. Несмотря на избыток вариантов, надо учитывать несколько важных моментов.
Следующие статьи серии детально расскажут о разных фреймворках, чтобы вы уверенно выбрали наилучший для ваших нужд вариант. Виртуальные окруженияВиртуальное окружение (VE) – это локальная инсталляция Python с определенным набором пакетов. Инструменты вроде venv (Python 3.3+), virtualenv (Python 2 и 3), и Conda (Python 2 и 3; для дата-инженеров) помогают легко создать виртуальные окружения из командной строки. Pipenv идет дальше, комбинируя управление VE с простым, но мощным управлением пакетами. Создание как минимум одного отдельного VE для каждого проекта Python – как правило, хорошая практика. VE очень полезны для автоматизации, потому что: Они позволяют инженерам одновременно поддерживать несколько Python-окружений.
Они позволяют пользователям локально устанавливать пакеты Python, не меняя глобальные установки.
Они могут импортировать и экспортировать списки пакетов для легкого восстановления. VE особенно ценны при непрерывной интеграции и деплое, потому что легко обеспечивают согласованность Python. К примеру, задача в Jenkins может создать виртуальное окружение, установить в него зависимости из PyPI, прогнать тесты Python, и безопасно самоуничтожиться. Как только продукт готов к деплою, можно воспользоваться той же самой конфигурацией VE. Рекомендованные IDEЛюбая серьезная автоматизация требует не менее серьезной IDE. Мой фаворит - JetBrains PyCharm. Мне очень нравится его изящный интерфейс и интуитивная суть, и он сразу поддерживает несколько тест-фреймворков Python. PyCharm можно скачать как отдельную IDE или как плагин к JetBrains IntelliJ IDEA. Community Edition бесплатна и удовлетворяет большинство потребностей автоматизации, а Professional Edition требует лицензии. PyDev – хорошая альтернатива для предпочитающих Eclipse. Eric подойдет пуристам – это Python-IDE, написанная на Python. У всех трех есть фреймворк плагинов, но PyCharm и PyDev выигрывают по популярности и поддержке. Есть также классическая IDLE, но ее использование сейчас не рекомендуется из-за багов и наличия более удачных вариантов. Легкие текстовые редакторы позволят просто и быстро вносить небольшие правки. Из недавних фаворитов - Visual Studio Code. Notepad++ всегда выигрывает для Windows. Atom – более новый кросс-платформенный редактор от GitHub, набирающий популярность. Конечно, UNIX-платформы обычно предоставляют vim или emacs. Обзор фреймворков Если эта серия статей для вас, установите IDE, настройте виртуальное окружение, и поехали! Следующие статьи расскажут о популярных тест-фреймворках Python. Каждую из них можно использовать в качестве стартовой информации или быстрой справки. Пожалуйста, обратитесь к официальной документации фреймворка для подробной информации – нет смысла дублировать ее здесь. |