# OTUS Homework 5: Stub & API Testing (API-helpers) В этом проекте реализован stub-сервер на WireMock, API-helpers для HTTP/SOAP и автотесты контрактов/схем, плюс UI-проверка stub frontend через Cucumber. ## Что реализовано - Stub endpoints на WireMock: - `/user/get/{id}` - получение оценки пользователя - `/cource/get/all` - получение списка курсов - `/user/get/all` - получение списка пользователей - Контракты и схемы: - контрактные тесты для users/courses/score - JSON schema тесты для users/courses/score - API-helpers: - `HttpHelper` - `SoapHelper` - Дополнительно (optional): - `SqlHelper` - `MqHelper` - Stub frontend: - endpoint `/frontend` - Cucumber-сценарий проверки frontend - Selenoid support: - запуск UI-тестов через `-Dbrowser=selenoid` ## Что проверяется в Cucumber - Для homework_5 в раннер подключен только `features/stub_frontend.feature`. - `features/catalog.feature` и `CatalogSteps` сохранены в проекте, но в текущий раннер HW5 не входят. ## Команды запуска Основной прогон (API + stub + helpers): ```bash mvn test ``` Только ключевые тесты homework_5: ```bash mvn "-Dtest=HttpHelperTest,SoapHelperTest,SqlHelperTest,MqHelperTest,StubContractTest,StubSchemaTest" test ``` UI Cucumber (stub frontend): ```bash mvn -Pui-tests test ``` UI Cucumber через Selenoid: ```bash mvn -Pui-tests "-Dbrowser=selenoid" "-Dselenoid.url=http://localhost:4444/wd/hub" test ``` Полная проверка качества: ```bash mvn verify ``` ## Docker/Selenoid Если UI-тесты через Selenoid не нужны, этот раздел можно пропустить. Предварительно: - Установить Docker Desktop. - Убедиться, что Docker запущен. Поднять инфраструктуру: ```bash docker compose up -d ``` Проверка, что Selenoid поднялся: - Selenoid API: `http://localhost:4444/wd/hub` - Selenoid UI: `http://localhost:8081` После этого можно запускать UI-тесты через Selenoid: ```bash mvn -Pui-tests "-Dbrowser=selenoid" "-Dselenoid.url=http://localhost:4444/wd/hub" test ``` Или выполнить полный пайплайн одной командой (поднимет Docker/Selenoid и запустит все проверки): ```bash powershell -ExecutionPolicy Bypass -File .\scripts\run-full-pipeline.ps1 ```