Files
hw3/README.md

2.7 KiB
Raw Permalink Blame History

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):

mvn test

Только ключевые тесты homework_5:

mvn "-Dtest=HttpHelperTest,SoapHelperTest,SqlHelperTest,MqHelperTest,StubContractTest,StubSchemaTest" test

UI Cucumber (stub frontend):

mvn -Pui-tests test

UI Cucumber через Selenoid:

mvn -Pui-tests "-Dbrowser=selenoid" "-Dselenoid.url=http://localhost:4444/wd/hub" test

Полная проверка качества:

mvn verify

Docker/Selenoid

Если UI-тесты через Selenoid не нужны, этот раздел можно пропустить.

Предварительно:

  • Установить Docker Desktop.
  • Убедиться, что Docker запущен.

Поднять инфраструктуру:

docker compose up -d

Проверка, что Selenoid поднялся:

  • Selenoid API: http://localhost:4444/wd/hub
  • Selenoid UI: http://localhost:8081

После этого можно запускать UI-тесты через Selenoid:

mvn -Pui-tests "-Dbrowser=selenoid" "-Dselenoid.url=http://localhost:4444/wd/hub" test

Или выполнить полный пайплайн одной командой (поднимет Docker/Selenoid и запустит все проверки):

powershell -ExecutionPolicy Bypass -File .\scripts\run-full-pipeline.ps1