Перейти к содержимому

Фотография

Python или java?

python java selenium планирование

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


Отправлено 31 января 2014 - 12:02

Какой язык выбрать для написания автотестов: Python или java?

 

Специфика ситуации коротко: продукт и разработчики на питоне, автотесты и инфраструктура на яве.

 

Подробно:
Аргументы за python:
- Мои программисты пишут на python - и в случае выбора этого языка готовы помочь
- Мой продукт написан на python
- Мне полезно изучить python
- У меня сложилось мнение, что python предпочтительней в случае небольших проектов и высокой скорости разработки

Аргументы за java:
- Существующая инфраструктура тестирования (CI, selenium grid итпх) и ее автотестеры используют java.
- На java есть откуда копипастить куда обращаться за решениями по кодированию именно автотестов (пользуясь случаем, передаю привет)
- Я уже писал автотесты на java
- WebDriver первыми выпускает обновления для java и вообще лучше работает с этим языком (тут я могу и ошибаться)
- Лично мне больше нравится java (а тут я могу и передумать)

Аргументы отсортированы по весу, первыми - самые значимые.

 

Стратегически правильным считаю выбор питона, так как программисты совместно со мной будут владеть кодом, помогать, в перспективе - самостоятельно чинить и даже писать тесты. В случае java они этого делать точно не будут.

В противовес: java может быть не пожеланием, а требованием инфраструктуры автотестирования. Создавать собственную (да еще параллельно с существующей), с серверами, гридом и прочим - глупо, долго, геморно.

Мое слово - не последнее, но кино будет именно моим, хотелось бы запастись аргументами.


  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 31 января 2014 - 12:15

Существующая инфраструктура тестирования (CI, selenium grid итпх) и ее автотестеры используют java.

Ну собссно это и является, ИМХО, определяющим фактором.

 

 

Ни одного реально значимого аргумента за Python не увидел.

 

Будут ли программисты что-то делать с селениумовым кодом? Да вряд ли.


  • 0

#3 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


Отправлено 31 января 2014 - 12:32

 

Существующая инфраструктура тестирования (CI, selenium grid итпх) и ее автотестеры используют java.

Ну собссно это и является, ИМХО, определяющим фактором.

 

 

Ни одного реально значимого аргумента за Python не увидел.

 

Будут ли программисты что-то делать с селениумовым кодом? Да вряд ли.

 

 

Инфраструктура использует java, но запуск тестирующей системы, написанной на python - вполне возможен.webDriver...

Мои программисты - будут править код тестов. Мало того, я буду стремиться (это достижимо, проверял), чтоб только они занимались поддержкой тестов.


  • 0

#4 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 31 января 2014 - 13:09

Ну тут как ни крутись, получаются «велосипед и костыли».

Другой вопрос, как это все будет решено.

Если в долгосрочной перспективе все будет на Python, то сейчас тесты надо на нем — и тогда инфраструктура на него переводится с java.

Если на Python один проект, а будут ли программисты потом это все поддерживать — хз, то можно и Java оставить, не?


  • 0

#5 neman

neman

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Антон


Отправлено 31 января 2014 - 15:12

Трудно что-то посоветовать, много неизвестных факторов (насколько крутая инфраструктура уже есть, насколько сложный проект). Могу только поделиться собственными впечатлениями. Правда сразу скажу, что писал на руби, не на питоне. Но они очень похожи по синтаксису, идеологии и экосистеме, ruby пожалуй более редкий язык, т.е. всё более хардкорно  :smile:

 

Опыт - два года автотесты на джаве (с абсолютного нуля, вся инфраструктура включая CI), затем год на Ruby. Тут чуть получше: был некоторый код, написанный профессиональными тестировщиками :crazy: .

 

Плюсы, которые я для себя отметил:

 

  + Можно писать ОЧЕНЬ красивые тесты - практически английский текст. Синтаксис способствует.

  + То что один язык - профит огромный в техническом плане (наладил кой-какую интеграцию с тестируемым приложением). 

  + С точки зрения "бэкенда" можно весьма просто делать клёвые вещи, сильно меньше служебного кода. Честно говоря, немного воротит смотреть на джаву после этого. Но тут чистая вкусовщина, за подробностями можно обратиться к любому холивару Java vs Python. 

 + WebDriver норм. За всё время пришлось портировать только одну новую и редкую фичу. Пользоваться можно, в общем. Хотя и не без глюков.

 + Скорость разработки выше, количества кода меньше.

 

Минусы:

 

  - С точки зрения ревью и поддержки разработчиками - профит вышел минимальный.

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

  - Меньше коммьюнити со всеми вытекающими. 

 

PS: В теории серверная часть селениумовской инфраструктуры независима от языка клиентских тестов, нет? Если есть селениум сервер, обращаться к нему можно с чего угодно, API то у него один. К CI, если повезет, найдется соответствующий плагин для Python... Короче говоря, ты уверен что придется инфраструктуру так уж решительно переделывать?


  • 1

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 02 февраля 2014 - 18:31

Есть также компромиссные варианты:

 

-- если нравится питон как язык, но хочется иметь инфраструктуру на Java -- посмотрите на jython

-- если нравится Java, но всё-таки хочется изучить новый язык, желательно "более скриптовый" и с элементами функционального программирования -- есть путь groovy -> scala (и для фанатов дальше -> phantom)


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium



Темы с аналогичным тегами python, java, selenium, планирование

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных