Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

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 комментариев
Для комментирования необходимо авторизоваться