79 lines
2.7 KiB
Markdown
79 lines
2.7 KiB
Markdown
# 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
|
||
```
|