Автоматизация на связке Maven, Selenium, JUnit5, Allure. Javadoc на русском языке - согласно требованиям.
В окружении должна быть установлена (и прописана в PATH) java не ниже 11 версии и добавлена переменная среды JAVA_HOME.
./mvnw verify -DuseBrowserProfile=false
-
Если в окружении Allure не установлен:
./mvnw allure:install ./mvnw allure:serve
-
Если в окружении Allure установлен (2.24.0 и выше):
cd ./target allure serve
При запуске в CI бороться с капчами сложнее, поэтому результат оставляет желать лучшего:
Как ни странно, могло быть и хуже (см. заметку Удаленное противо-captcha-стояние).
Здесь руки не так связаны, поэтому результат соответствующий:
- Открыть браузер и развернуть на весь экран.
- Зайти на https://ya.ru/
- Нажать слева внизу на значок "все сервисы" -> Кликнуть по "Маркет"
- Перейти в Каталог -> Навести курсор на раздел "Ноутбуки и компьютеры"
- Выбрать раздел "Ноутбуки"
- Задать параметр «Цена, Р» от 10000 до 900000 рублей.
- Выбрать производителя "Huawei" и "Lenovo"
- Дождаться результатов поиска.
- Проверить, что на странице отображалось более 12 элементов.
- Проверить что на всех страницах предложения соответствуют фильтру.
- Вернуться на первую страницу с результатами поиска ноутбуков и запомнить первое наименование ноутбука.
- В поисковую строку ввести запомненное значение.
- Нажать кнопку «Найти»
- Проверить, что в результатах поиска есть искомый товар
Java, Junit Jupiter, Selenium, PageObject или PageFactory
- Тест разбит на шаги. Коллега без знаний программирования по аллюр отчету должен понимать что делает тест, какие проверки происходят
- Тест должен быть параметризован
- Необходимо использовать константы через проперти файл
- Все ассерты должны быть переопределены (все проверки, в том числе и "passed", отражены в отчете)
- Трай\кетчи не должны быть использованы для реализации логики
- Если в коде используются циклы, необходимо исключить возможность бесконечного цикла
- Обязательно использовать Джава док для всех методов и переменных. На русском языке
- Недопустимо использования Thread.sleep и Трай\кетчи. За исключением, создания собственных ожиданий (к примеру каждый 5 миллисекунд проверяем что что-то случилось, и так не более 10 секунд.). Лучше обойтись явными\неявными ожиданиями
- Помнить про универсальные методы. Писать код, полезный в других тестах, полезный коллегам.
- XPath не должен содержать индексов, динамических элементов