На Ruby очень неплохо в плане сторонних модулей, расширяющих базовую функциональность. Та же capybara, rSpec, pageObject и иже с ними. Из плюсов: бери и пользуйся. Из минусов: если попадается что-нить, выходящее за функциональность используемых модулей - то либо дописываешь модуль сам, либо берёшь другой модуль, либо юзаешь костыль. Ещё из минусов - крайняя неторопливость тестов.
На питоне будут похожие расклады, разве что сторонних модулей поменьше и часть придётся-таки реализовывать руками, собрать out-of-the-box тестовый фреймворк тупо на готовых модулях не получится. Ну и нетороплив тоже.
Джава / C# поинтереснее в плане скорости, но, заюзав тот же Selenide + JUnit или TestNG, готовый тестовый фреймворк уж точно не получишь. Многое придётся дописывать руками. Ну и после скриптовых языков, переход на типизированный ЯП будет тем ещё адом поначалу, потом привыкнете.
В общем, вот такие пироги. Выбор за Вами
Если хотите на Java, то можете пройти курс Selenium WebDriver + Java на udemy.com. Я так и сделал. Прошел за 2 недели и сейчас пишу на Java тесты. До этого опыта ни в Java, ни в автоматизации не было.
Я в копании тоже настраивала автоматизацию с нуля .
Выбрала для этого java + Selenium WebDriver + testNG + Maven. Почему testNG - он очень гибкий и есть аннотации, которые помогают очень и даже при интеграции с CI.
Также использую различные библиотеки , котрые можно скачать на сайте Selenium.
Конечно каждый тестировщик выбирает сам для себя с чем ему работать, но столько еще всего придется дописывать самому своими ручками… ))
P.S. Если использовать Java язык , то лучше писать тесты в Intellij IDEA , там потом в структуре проекта нужно будет загрузить все библиотеки и настроить модули проекта. А также не забудьте правильно построить Dom модель проекта - от этого зависит будет “ругаться” само окружение или нет. В интернете есть советы какая эта структура должна быть в мавен проекте.
А что такое DOM проекта? Что вы имеете ввиду?
Я тоже об этом думаю
Скорее всего человек имел ввиду pom))
Ссори, что ввела в заблуждение может кого-то, конечно этот термин скорее применяется для html страничек, но у нас так называют структуру проекта))) DOM - структура проекта (дерево проекта). Я еще помню на многих курсах преподаватели применяли этот термин для обозначения структуры проекта…
Вот ссылка, ранее тут уже это обсуждалось - Как правильно создать проект с тестами в Intellij idea с использованием maven, java, selenium, testng - #19 от пользователя MOSTOR
ааа, я так и понял)
благодарю за ссылку
а каким фреймворк вы используете?
кому интересно, вот посмотрел ролик батла TestNG vs Junit5. В принципе супер такой разницы не заметил, кроме конечно потоковой запуски тестов
Переходить на Java после Ruby как-то прямо странно, учитывая то, что ограничений у вас никаких нет.
Притом, что раз у вас есть опыт то вы можете быстро поднять окружение и начать писать я бы не тратил время, руководство, я думаю, будет радоваться если вы им раньше сможете предоставить результаты.
Просто вот учитывая то, что у меня есть опыт и на Ruby и на Java то начав писать на Джаве вы вначале будете невероятно удивляться почему там все реализуется так сложно, в отличие от Рубей.
Ну и если вы не будете юзать что-то типа Selenide то прийдется писать очень много кода, который будет казаться избыточным ну и будет нехватать синтаксического сахара Руби.
Из плюсов Java, которые я для себя нашел, возможность использования автодополнения при вызове переменных (элементов) из Page Object-ов)
Ну а там конечно решайте сами
Поясните, пожалуйста, на примере, что имели в виду? О каком автодополнении речь?
OMG, ну и плюс))
Ну вот так) Правда, кроме этого не вижу ни одного плюса.
Любопытно было бы узнать о таковых в вашем случае, если они имеются)
Если не ошибаюсь у вас тоже есть опыт автоматизации на руби.
Ну типа я хочу вызвать элемент находящийся на определенной странице - page_object. - вот здесь после точнки Java IDE мне предложит на выбор все переменные находящиеся внутри класса PageObject в джаве я могу это сделать.
В Ruby же нет.
Для меня это в разы ускоряло скорость написания тестов на джаве, на рубях же приходится банально копипастить переменные.
Я забыл написать, что насколько я помню эта проблема существует только в Rubymine IDE и связана толи с Capybara framework, толи с динамической типизацией, в блокното-подобных редакторах такой вызов возможен.
имхо, тут вообще не в языке дело а в конкретной IDE, пайчарм и рубимайн умеют подсказывать все что можно, если вы не видите подсказок - вы не указали явно экземпляр класса. Бывает такое что пайчарм например не видит методы для фикстуры пайтеста, которая возвращает страницу как стенд. Ну да, пайчарм и не сможет уследить за всеми магиями фреймворков, иначе бы он жрал всю оперативу на мониторинг
Да, я знаю и я написал об этом выше:
“проблема существует только в Rubymine IDE и связана толи с Capybara framework, толи с динамической типизацией, в блокното-подобных редакторах такой вызов возможен”
Ну и вот один из ответов на Stackoverflow https://stackoverflow.com/questions/24571398/code-complete-siteprisms-elements-in-rubymine
Ну и хотелось бы услышать все же ваше мнение о плюсах и минусах.
Согласен. Джаву надо брать, раз бэк, т. е. бизнес-логика на java. Получится разработчиков привлечь к автоматизации и сделать очень качественный и полезный фреймворк. Можно будет юзать готовые доменные классы и методы у себя в тестах. Заодно научитесь нормальному ООП без синтаксического сахара. Тем более для джава куча библиотек, которые лишний код могут “прятать”. Например Lombok, Jackson. И Больше всего готовых инструментов автоматизации на Java.
Спасибо всем ответившим.
В общем решили работать в Java+TestNG на фрейморке Спринга. В общем переход с руби на джава дается совсем не так легко, как я думал.
- Пишите свой собственный экзекьютор
- Переходите на Scala, потом спасибо скажите
- Откажитесь от JUnit-оподобной фигни. Гиркин код (от огурца) - это максимум.