10 причин выбрать Python для автоматизации | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
iOS Developer. Professional Kotlin Backend Developer Flutter Mobile Developer Symfony Framework C++ Developer. Basic Unity Game Developer. Basic Java Developer. Professional
-35%
Highload Architect Unity Game Developer. Professional React.js Developer Специализация Java-разработчик
-25%
Алгоритмы и структуры данных
-16%
Scala-разработчик C# Developer. Professional
-23%
Разработчик голосовых ассистентов и чат-ботов Team Lead Архитектура и шаблоны проектирования NoSQL Web-разработчик на Python Golang Developer. Professional PostgreSQL Vue.js разработчик Супер-практикум по использованию и настройке GIT Разработчик IoT Подготовка к сертификации Oracle Java Programmer (OCAJP) Программист С HTML/CSS
Инфраструктура
Инфраструктурная платформа на основе Kubernetes Microservice Architecture Базы данных Highload Architect Reverse-Engineering. Professional
-8%
Network engineer. Basic Administrator Linux.Basic MongoDB Infrastructure as a code MS SQL Server Developer Cloud Solution Architecture Мониторинг и логирование: Zabbix, Prometheus, ELK Супер-практикум по использованию и настройке GIT Разработчик IoT Экcпресс-курс «ELK» Супер-интенсив "Tarantool" Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Экспресс-курс «Введение в непрерывную поставку на базе Docker»
Корпоративные курсы
Безопасность веб-приложений Экосистема Hadoop, Spark, Hive Пентест. Практика тестирования на проникновение Node.js Developer Java QA Engineer. Basic
-18%
Reverse-Engineering. Professional
-8%
DevOps практики и инструменты NoSQL Reverse-Engineering. Basic Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Game QA Engineer Супер - интенсив по Kubernetes Дизайн сетей ЦОД Экспресс-курс «IaC Ansible» Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс "Версионирование и командная работа с помощью Git" Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

10 причин выбрать Python для автоматизации

QA_Deep_16.7_site-5020-1ee3de.png

Python – один из лучших языков для автоматизации тестирования. Именно так заявил Dan Callahan в докладе на PyCon 2018. И привёл 10 причин, почему при автоматизации тестирования лучше выбирать «Пайтон». Давайте с ними ознакомимся.

Причина 1: Дзэн Python

Дзэн Python в PEP20 – прекрасное руководство для тест-автоматизации. Тесты описывают тестируемую функциональность, поэтому они должны быть читабельны и наглядны. Лучше несколько простых шагов, чем один сложный. Код тестов — естественный мост между шагами тестов и программными вызовами, а выразительная элегантность Python подходит для этого как нельзя лучше. В общем, вы всегда можете ознакомиться с Дзэн Python самостоятельно, набрав в интерпретаторе import this.

Причина 2: Pytest

Pytest – хороший тест-фреймворк, доступный сейчас не только на Python. Он помогает справляться с любыми функциональными тестами. Тест-кейсы с его помощью пишутся просто, как функции, и могут принимать параметризированные входные данные. Если вы избегаете глобальных переменных, побочные эффекты отсутствуют. Базовые утверждения (assertions) имеют автоматический самоанализ, тесты можно фильтровать в процессе выполнения.

Есть ряд плагинов, дополнительно расширяющих возможности Pytest. Можно запускать тесты параллельно, задействовать сценарии Gherkin, интегрироваться с другими фреймворками: Django, Flask. Можно уверенно сказать, что Pytest – лучшее, что есть на сегодня.

Причина 3: программные пакеты

У Python есть богатая библиотека полезных пакетов, предназначенных для тестирования: — pytest, — unittest, — paramiko, — requests, — doctest, — Selenium WebDriver, — tox, — logging, — Splinter, — Hypothesis, и другие.

Это готовые ингредиенты для ваших рецептов автоматизации. И никакого велосипеда изобретать не надо.

Причина 4: мультипарадигма

Python и функционален, и объектно-ориентирован. Он даёт возможность решать, что лучше подойдет для ваших задач – функции или классы. Это полезно, ведь исключаются побочные эффекты распределённых функций, а простой синтаксис функций делает их предельно понятными. К тому же, Pytest использует функции для кейсов, а не запихивает их в классы, как JUnit.

Причина 5: типизируйте, как хотите

Встроенная в Python динамическая типизация хорошо подходит для тест-автоматизации, ведь основная часть функциональных тестов выше юнит-уровня не требует повышенного внимания к типам. Но если вам потребуются статичные типы — не беда, есть mypy, Pyre, MonkeyType.

Причина 6: IDE

Хорошая поддержка IDE упрощает использование языка и фреймворков. Если говорить о тестировании на Python, у нас есть JetBrains PyCharm. Среда поддерживает визуальное тестирование с unittest, pytest и doctest сразу «из коробки», а профессиональная версия имеет поддержку фреймворков веб-разработки и BDD (к примеру, behave, pytest-bdd, lettuce). Если же хотите что-то полегче, есть среда Visual Studio Code которая сегодня очень популярна и поддерживают много полезного: сниппеты, дебаг, окружения, отладку, работу с терминалом командной строки прямо в окне и т. п. Также отлично работают Atom, PyDev, Sublime и Notepad++.

Причина 7: командная строка

Python и командная строка – это брак, заключённый на небесах. Весь процесс автотестирования может управляться посредством командной строки, что не может не радовать. Pipenv позволяет управлять окружениями и пакетами. В любом тест-фреймворке можно запустить консоль для поиска и запуска тестов. Не нужно сначала создавать тестовый код, ведь Python – интерпретируемый язык, что тоже упрощает запуск. Богатая поддержка командной строки делает простым управление тестированием и вручную, и посредством инструментов либо билд-скриптов.

Вишенка на торте — модули автоматизации, которые можно вызывать непосредственно из интерпретатора Python REPL и даже (что ещё лучше) сразу из блокнота Jupyter.

Причина 8: лёгкость входа

Python дружелюбен к новичкам, причём не столь важно, делаете ли вы первые шаги в программировании или имеете богатый опыт. Это плюс Python как языка автоматизации, ведь тесты можно и нужно создавать просто и быстро. Тратить время — непозволительная роскошь, особенно когда на руках новые фичи, которые срочно нужно проверить.

Причина 9: возможность масштабирования

Несмотря на низкий порог входа, Python — не игрушка. Он способен решать промышленные задачи, а разработка может масштабироваться за счёт значимого синтаксиса, хорошей структуры, модульности и богатой экосистемы инструментов и пакетов. Нельзя не упомянуть и гибкость командной строки — она позволит вам встроиться в любой процесс либо инструмент.

Причина 10: популярность

Python – очень популярный язык программирования. Он регулярно выходит в топ на TIOBE, Stack Overflow, GitHub. Его выбирают веб-разработчики, инженеры инфраструктур, тест-автоматизаторы, дата-аналитики. Профессиональное сообщество Python также помогает продвигать язык. Разработчиков очень много, поэтому и с онлайн-поддержкой проблем не будет. Да и в ближайшем обозримом будущем этот язык никуда не денется.

Выводы

При выборе языков автоматизации вы можете отдать предпочтение Java, C# и Ruby, что тоже неплохие варианты. Но Python… Python — это Python, единственный и неповторимый. Впрочем, вы можете убедиться в этом сами, посмотрев сравнение разных языков для автоматизации:

1-20219-35ea1d.jpg

Статья подготовлена специально для OTUS по материалам «Why Python is great for test automation» и «The best programming language for test automation».

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

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

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

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