Я в автоматизации всего полгода, на работе пишу автотесты на Java, используя Selenium, Java и PageObject.
Из разных источников слышал, что многие хвалят Python именно в области тестирования. Я его почти не знаю, только основы. Накинуть небольшой тест на авторизацию получилось. Дальше не углублялся.
Хотелось бы спросить знающих людей: есть ли в тестировании какие то преимущества у Python перед Java?
Или может просто существуют серьезные отличия. Хочу знать исключительно для себя.
Другими словами – язык программирования это лишь приложение преобразующее ваши идеи в последовательность электрических сигналов для процессора. И именно это они все и делают. Полезнее выучить как работает ваша технология, чем написать те же самые поверхностные тесты на новом языке программирования.
Питон лучше для вхождения в автоматизацию своей простотой. Потому на нем проще начинать изучать автоматизацию. Если вы уже работаете с Джавой - смысла переходить нету.
Да я же не утверждаю что какой-то язык лучше, это не холивар. Я спросил конкретно про возможно имеющиеся преимущества Питона над Джавой именно в разработке и запуске автотестов
Ну я бы все же выделил простоту питона перед java и скорость написания кода и отладки. P.S.: Python не нужно собирать ещё к тому же) P.P.S.: Python мультипарадигменный ЯП но это плюс только если вы не любите ООП
И снова тех стек. Питон получит больше проблем при работе с многопоточностью, которые можно обойти используя Win32Api напрямую в винде, и че-то подобное в никсах. А кросплатформенность у джавы выше, потому как она спецом для этого задумывалась, да и шустрее питона, серверная производительность всё же лучше ей дается.
Но снова таки, недостатки обеих обходятся при достаточно глубоком знании каждого языка и системы на которых они используются.
Парадигма или ООП здесь роли не играет. Это чисто привычка в написании кода, она нарабатывается. Всё что я пишу и я через cmd могу сделать, но ковыряться дольше придется.
Вобщем питон не проще джавы, он проще джавы для вас
Про производительность я и не спорю Но все же питон для изучения по мне так будет проще. Да у питона есть проблемы с многопоточностью, но вероятность с ними столкнуться при написании автотестов - крайне мала Опять же если использовать функциональный подход, проблем с многопоточностью будет гораздо меньше.
Давно, уже пришел к мнению, что самым главным фактором при выборе ЯП, является вкус и пристрастия выбирающего. С чем человеку комфортно и приятно работать, то и надо выбирать:)
И снова вопрос в том что проще для вас. Допустим вы выучили питон и пришли тестировать десктоп приложение. И вас окунают в мир дескрипторов, хэндлов, потоков, указателей, драйверов, сигналов и т.д. А всё это ведь дается достаточно легко даже при среднем знании С\С++, но для питона это ад.
Либо приходите вы тестировать серверные приложения и вам начинают втироать про апплеты, сервлеты, сериализации, упаковки, вары и джары, бубны с конфигурациями ЕЕ версий на сервере. Питониста это снова повергает в ад.
Хотите совет - знать надо все языки в достаточной степени, чтобы написать всё что вам нужно с помощью документации. Как тестировщик вы столкнетесь со всем. Я писал на bash, batch, autoit, QTP, jscript, js, java, C++, python, ruby, pascal, step 7. И это всё по работе, а не для себя. Придя на проэкт вы подстраиваетесь под него, а не проэкт под вас. И любой проэкт даст вам время подняться и стать на ноги. Вы выучите немного основ языка. Но вот что учится действительно долго, это как работает окружение в котором всё это выполняется: ОС, браузер, контроллер, драйвер.
Ну так я про это ничего и не говорил. И я не пропагандирую только за Python (прекрасно использую groovy, js, go, c# и иногда java) @AlexSud спросил какие могут быть преимущества Python перед Java в области тестирования, я и ответил.
Перешел с Джавы на Питон(не по своей воле): имея уже готовые идеи в реализации фреймворка, который я писал на Джаве 2-3 месяца, я смог все очень легко переписать на питоне за 2-3 недели. Язык намного проще, гибче, и понятнее. Все проблемы решаются намного быстрее. Остался доволен и я и боссссс…
П.С. Если бы не заставили - не перешел бы. Если у Вас есть время заниматься переходом на другой язык, а не написание тестов, например, то конечно переходите, мож чего нового узнаете
Большое спасибо всем за ответы и дискуссию.
На работе нет необходимости писать на Питоне, более того, на нем у нас вообще никто ничего не пишет.
Просто слышал, что для автоматизации он удобнее в применении, хотя на практике и по вакансиям основа - это Java. Многие также сейчас переходят на .NET
Если уже есть готовое решение на Java + Selenium + Pageobject, то экспериментировать с Python большого смысла наверное нет, разве что прикрутить какие-то “смежные” инструменты, работающие и с Java и с Python.
Python, как по мне, хорош для простых решений и “прототипирования”, когда хочешь быстро пробовать, менять, перезапускать свое решение. Поскольку он не требует компиляции, перезапуски получаются очень быстро, и за счет легкости языка, отсутствия строгой типизации — мороки меньше, имхо.
Всё верно кроме лямбд. Они сейчас везде есть, даже в питоне. И джава их получила позже всех остальных. Ну и ещё один минус джавы - доступ к нейтив коду из неё = взрыв мозга.
Дополнительный минус для меня - с самого универа не мог понять - зачем нужна джава если есть С++? Да, кто-то скажет write onсe run everywhere, но С++ позволяет сделать то же при правильном подходе, правда сложнее но зато намного производительнее. Но С++ против Джава это вечный холивар, которому почти столько же лет сколько и мне