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

pytest
framework
webdriver
java
angularjs
python
Теги: #<Tag:0x00007fedbb6f8d98> #<Tag:0x00007fedbb6f8c58> #<Tag:0x00007fedbb6f8b18> #<Tag:0x00007fedbb6f89b0> #<Tag:0x00007fedbb6f8870> #<Tag:0x00007fedbb6f8730>

(Rspec, cucumber, pytrat) #1

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


(ex3me0) #2

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


(vmaximv) #3

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


(Maxim Andryushchenkov) #4

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


(Rspec, cucumber, pytrat) #5

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


(Rspec, cucumber, pytrat) #6

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


(Maxim Andryushchenkov) #7

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


(Mikhail Goloulnikov) #8

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


(Rspec, cucumber, pytrat) #9

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


(Rspec, cucumber, pytrat) #10

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


(Дмитрий Мирошник) #11

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


#12

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


(Inna) #13

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


(Rspec, cucumber, pytrat) #14

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


(Rspec, cucumber, pytrat) #15

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


(Fiodar Motin) #16

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


(Inna) #17

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

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


(Rspec, cucumber, pytrat) #18

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


(Rspec, cucumber, pytrat) #19

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


(Rspec, cucumber, pytrat) #20

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