Комплексное решение для автоматизированного тестирования формы регистрации на demoqa.com/automation-practice-form, включающее:
- Полный цикл тестирования всех элементов формы
- Интеграция с CI/CD для автозапуска тестов и публикации отчетов
- Гибкую архитектуру на основе Page Object Model
Технические особенности:
- Автоматический запуск тестов при событиях Git (push/PR)
- Использование Selenium WebDriver для эмуляции действий пользователя
- Генерация отчетов в Allure с детализацией каждого шага
- Генерация случайных данных для проверки валидации формы
- Полное заполнение формы + проверка данных в модальном окне
- Заполнение только обязательных полей + проверка пустых значений
- Закрытие модального окна после отправки формы
- Валидация всех полей:
- Текстовые поля (ФИО, email, адрес)
- Радиокнопки (пол)
- Датапикер (день/месяц/год)
- Выпадающие списки (предметы, штат/город)
- Чекбоксы (хобби)
- Загрузка файла
Технологии:
Инструменты:
automation-practice-form/
├── src/
│ └── test/
│ ├── java/
│ │ ├── data/ # Генерация и хранение тестовых данных
│ │ ├── pages/ # Page Object для формы и модального окона
│ │ └── tests/ # Тестовые сценарии
│ └── resources/images/ # Тестовые изображения для загрузки
├── build.gradle # Зависимости для Selenium, JUnit, Allure, Java Faker
└── README.md
- Клонируйте и откройте проект в IDEA:
git clone https://github.com/levvolkov/automation-practice-form.git
- Запустите автотесты:
./gradlew clean test
- Генерация просмотр отчета
allure serve allure-results
⚠️ Примечание: По умолчанию тесты запускаются в headless-режиме (без открытия браузера). Если вы хотите видеть, как выполняются тесты в реальном окне браузера, закомментируйте или удалите строку:options.addArguments("--headless=new");Пример настройки в классе FormTest:
@BeforeAll static void setupClass() { WebDriverManager.chromedriver().setup(); ChromeOptions options = new ChromeOptions(); // options.addArguments("--headless=new"); // Отключить для визуального режима options.addArguments("--disable-gpu"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); driver = new ChromeDriver(options); }