895bea43d2e36143c45d5e359a3daed204377214
OTUS Selenium Homework 1
Цель проекта
Автоматизировать 3 UI-сценария на https://otus.ru с использованием Selenium WebDriver 4+, JUnit 5, Guice DI, listeners, Stream API, Jsoup и обязательных проверок качества (Checkstyle + SpotBugs).
Стек технологий
- Java 21
- Maven
- Selenium
4.38.0 - WebDriverManager
6.3.3 - JUnit 5
- Guice
- Jsoup
- Checkstyle
- SpotBugs
Реализованные сценарии
-
Поиск курса по имени.
- Открытие каталога
https://otus.ru/catalog/courses - Поиск курса по имени через Stream API
- Клик по плитке курса
- Проверка заголовка открытого курса
- Открытие каталога
-
Самые ранние/поздние курсы по дате старта.
- Открытие каталога
https://otus.ru/catalog/courses - Поиск ранних и поздних курсов через Stream API +
reduce - При совпадении дат проверяются все курсы с этой датой
- Проверка названия и даты старта на странице курса через Jsoup
- Открытие каталога
-
Случайная категория с главной страницы.
- Открытие
https://otus.ru - Открытие меню «Обучение»
- Выбор случайной категории
- Проверка, что открыта корректная категория
- Открытие
Архитектура
- 2-уровневый тест-дизайн:
tests+page objects - DI через Guice для тестов и страниц
- JUnit 5 Extension (
GuiceExtension), без базового класса-теста - Фабрика драйвера:
DriverFactory(интерфейс)ChromeDriverFactory(реализация)WebDriverProvider(жизненный цикл драйвера + декоратор listener)
- Подсветка через listener:
- Подсветка ставится в
beforeClick - Снимается в
afterClick - Стиль элемента возвращается в исходное состояние
- Подсветка ставится в
Структура проекта
src/main/java/ru/kovbasa/config— DI-конфигурацияsrc/main/java/ru/kovbasa/driver— фабрика и провайдер WebDriversrc/main/java/ru/kovbasa/listeners— listener подсветкиsrc/main/java/ru/kovbasa/pages— Page Object классыsrc/main/java/ru/kovbasa/elements— типизированные UI-элементыsrc/test/java/ru/kovbasa/config— JUnit extension для DIsrc/test/java/ru/kovbasa/tests— автотесты
Требования к окружению
- Установлен JDK 21 (доступен в
PATH) - Установлен Google Chrome
- Установлен Maven 3.9+
- Есть доступ в интернет и к
otus.ru(тесты запускаются на живом сайте)
Запуск
1. Запуск только тестов
mvn test
2. Полная проверка (тесты + Checkstyle + SpotBugs)
mvn verify
3. Запуск отдельного тестового класса
mvn "-Dtest=ru.kovbasa.tests.CourseSearchTest" test
Параметры запуска
Пробрасываются через Maven Surefire:
base.url(по умолчаниюhttps://otus.ru)course.name(по умолчаниюPython Developer)
Пример переопределения:
mvn "-Dcourse.name=Python Developer" test
Quality Gates
- Checkstyle и SpotBugs выполняется в фазе
verify
Примечания
- Тесты зависят от текущей верстки/контента
otus.ru.
Description
Languages
Java
100%