Тестирование UI web приложения. Нужен совет

Привет автоматы)
У меня к вам вопрос на тему тестирования.
Сейчас пришел в новую фирму, тут надо поднимать автомацию с нуля. Так как то, что есть сейчас с натяжкой можно назвать автомацией. Вы будете смеяться, но тут написали автомацию на php с поддержкой selenium IDE. То есть используют экстешн и скрипты, чтобы гонять автомацию.
Сама программа- это огромная веб платформа для создания рекламы, можно сказать один большой setup. С кучей менюшек и submenu.
Раньше я писал фреймворк на руби и веб драйвер, cucumber, rspec.
Но тут не хочу писать на руби, так как язык медленно умирает.
Вот мучаюсь в муках выбора фреймворка.
Frontend работает на angular+react, backend-java.
Так как программисты хотят мне помогать, то напрашивается java фреймворк, junit или NG. Но я джавы не знаю. Еще немного писал на pytest, но больше api testing.
Кто может посоветовать?

Пишите на том, что умеете “правильно готовить”, разницы вообще нет на чем стартовать, хоть на sh-скриптах, главное чтобы удовлетворяло запрошенным критериям.
Ruby умирает, да ладно, сам то руби об этом в курсе? “Писать на pytest” это как, пгастите? Программисты оформили тестирование на php, значит напрашивается java?

Пишите на том, что больше вовлечет команду в автоматизацию.

5 лайков

Вот его я вам и советую, так как сразу приучите себя в автоматизации не писать лишнего кода. И меньше порог вхождения в питон

Дело в том, что в автомации я один, а программистам все равно на чем я буду писать, они совсем не против выучить еще 1 язык программирования

Pytest тоже рассматриваю)
Но я не видел, как выглядит ui фреймворк в питоне

Вам нужно всего лишь разложить по нужным папкам конфиги, вебдрайверы (если будете их таскать с фреймворком), папку для результатов тестов (скрины от падения, логи тестов, лог драйвера), сами тесты и папку с общими методами для всех файлов, всякие DB клиенты, SSH обертки и тд. Структура проекта - вещь сугубо индивидуальная, она приходит с опытом. Еще, если будете использовать PageObject или что-то наподобии его - уложите все классы в отдельную папку тоже. Будет удобнее

Возьмите Robot Framework, подходящиe библиотеки для работы с web ui (selenium library) и запросами (request library) и всё готово.

1 лайк

Нет, спасибо. С ним я уже намучался на предыдущем месте. Были проблемы с refresh cash, return to snapshot, которые нельзя было решить, так как это был баг робота

Да, буду использовать page objects. Посмотрим, спасибо за совет

На Ruby очень неплохо в плане сторонних модулей, расширяющих базовую функциональность. Та же capybara, rSpec, pageObject и иже с ними. Из плюсов: бери и пользуйся. Из минусов: если попадается что-нить, выходящее за функциональность используемых модулей - то либо дописываешь модуль сам, либо берёшь другой модуль, либо юзаешь костыль. Ещё из минусов - крайняя неторопливость тестов.
На питоне будут похожие расклады, разве что сторонних модулей поменьше и часть придётся-таки реализовывать руками, собрать out-of-the-box тестовый фреймворк тупо на готовых модулях не получится. Ну и нетороплив тоже.
Джава / C# поинтереснее в плане скорости, но, заюзав тот же Selenide + JUnit или TestNG, готовый тестовый фреймворк уж точно не получишь. Многое придётся дописывать руками. Ну и после скриптовых языков, переход на типизированный ЯП будет тем ещё адом поначалу, потом привыкнете.
В общем, вот такие пироги. Выбор за Вами :slight_smile:

Если хотите на Java, то можете пройти курс Selenium WebDriver + Java на udemy.com. Я так и сделал. Прошел за 2 недели и сейчас пишу на Java тесты. До этого опыта ни в Java, ни в автоматизации не было.

1 лайк

Я в копании тоже настраивала автоматизацию с нуля .
Выбрала для этого java + Selenium WebDriver + testNG + Maven. Почему testNG - он очень гибкий и есть аннотации, которые помогают очень и даже при интеграции с CI.
Также использую различные библиотеки , котрые можно скачать на сайте Selenium.
Конечно каждый тестировщик выбирает сам для себя с чем ему работать, но столько еще всего придется дописывать самому своими ручками… ))
P.S. Если использовать Java язык , то лучше писать тесты в Intellij IDEA , там потом в структуре проекта нужно будет загрузить все библиотеки и настроить модули проекта. А также не забудьте правильно построить Dom модель проекта - от этого зависит будет “ругаться” само окружение или нет. В интернете есть советы какая эта структура должна быть в мавен проекте.

2 лайка

А что такое DOM проекта? Что вы имеете ввиду?

Я тоже об этом думаю

Скорее всего человек имел ввиду pom))

Ссори, что ввела в заблуждение может кого-то, конечно этот термин скорее применяется для html страничек, но у нас так называют структуру проекта))) DOM - структура проекта (дерево проекта). Я еще помню на многих курсах преподаватели применяли этот термин для обозначения структуры проекта…

Вот ссылка, ранее тут уже это обсуждалось - Как правильно создать проект с тестами в Intellij idea с использованием maven, java, selenium, testng - #19 от пользователя MOSTOR

1 лайк

ааа, я так и понял)
благодарю за ссылку

а каким фреймворк вы используете?

кому интересно, вот посмотрел ролик батла TestNG vs Junit5. В принципе супер такой разницы не заметил, кроме конечно потоковой запуски тестов