Skip to content

LakeenkoI/kinash-ui-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

UI Автотесты для интернет-магазина Kinash.ru

  сайт Kinash.ru

Этот проект представляет собой масштабируемую и гибко настраиваемую систему автотестирования пользовательского интерфейса интернет-магазина, разработанную с акцентом на читаемость, поддержку и расширяемость. Проект демонстрирует глубокую интеграцию с современным стеком инструментов автоматизации и подходит как для локального запуска, так и для CI/CD окружений.


🚀 Возможности проекта

  • ✅ Поддержка локального и удалённого запуска (через Selenoid)
  • ✅ Гибкий выбор браузеров: Chrome, Firefox
  • ✅ Настраиваемая параллельность тестов через Jenkins/Gradle
  • ✅ Полная интеграция с Allure (видео, логи, скриншоты)
  • ✅ Расширенное логирование через Selenide Custom Listener
  • ✅ Обработка нестандартных ошибок через кастомные исключения
  • ✅ Детальный tag-based запуск групп тестов (Smoke, Regression, Cart, и др.)
  • ✅ Отчётливое разделение слоёв: Pages, Components, Config, Extensions, Helpers

🧠 Особенности проекта

  • 🔧 TestWatcher (JUnit Extension): автоматическое прикрепление всех артефактов к отчету при падении.
  • 📂 Owner + env-переменные: гибкое управление окружениями.
  • 🔭 Selenide Logger: каждый шаг пишется в Allure + stdout (для отладки).
  • Custom Exceptions: подробные сообщения об ошибках с URL, действием и локатором.

Реализованы проверки:

UI

  • Проверка отображения главной страницы (лого, футер, заголовок)
  • Поиск по товарам с использованием параметризованных тестов
  • Фильтрация товаров по бренду в категории
  • Добавление товара в корзину
  • Очистка корзины
  • Проверка характеристик и отзывов в карточке товара

Используемые технологии и инструменты


IntelliJ IDEA

Java

Gradle

JUnit5

Selenide

Selenoid

Jenkins

Github

Allure Report

🏗️ Архитектура проекта

src
└── test
    ├── java
    │   ├── config            # Конфигурация WebDriver, env, OWNER
    │   ├── data              # Enums и тестовые данные
    │   ├── exceptions        # Кастомные исключения (например, ElementNotFound)
    │   ├── extensions        # JUnit TestWatcher для attach'ей на fail
    │   ├── helpers           # Скриншоты, видео, консоль и source -> Allure
    │   ├── listeners         # Кастомный Selenide listener с Allure-интеграцией
    │   ├── pages             # PageObject + Fluent API
    │   │   └── components    # Подкомпоненты и шапки, меню, и т.п.
    │   └── tests             # Тестовые сценарии
    │       ├── regress       # Регрессионные тесты
    │       └── smoke         # Smoke-сценарии
    └── resources
        └── properties        # Настройки окружений: local / remote

Команды для запуска из терминала

Локально должны быть заданы параметры в remote.properties

Запуск всех тестов на удалённом сервере:

gradle clean test -Denv=remote

Запуск всех тестов в браузере FireFox с разрешением экрана 1920x1080:

gradle clean test -Dbrowser=firefox -DbrowserSize=1920x1080

Запуск тестов с включением параллельного выполнения и выбором 4-х потоков:

gradle clean cart_tests -DparallelRun=true -Dthreads=4

Собрать Allure отчет:

allure serve build/allure-results

Параметры с помощью которых можно запустить сборку в Jenkins:

Сборка Jenkins-параметры-1


📊 Allure отчет

Каждое падение сопровождается:

  • Скриншотом
  • HTML Source страницы
  • Консольными логами браузера
  • Видео (если isRemote=true и Selenoid)

Доска с аналитикой тестирования

Allure Overview


Пример автоматизированного тест кейса

Allure Behaviors


Видео прохождение тестов из Selenoid

  • Добавление товара в корзину и дальнейшая ее очистка cecc45885c9d83c248ce0c005f115492

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages