# OTUS Rest-assured Homework 3 ## Цель проекта Автоматизировать API-сценарии для `https://petstore.swagger.io` с использованием Rest-assured, JUnit Jupiter и quality gates (Checkstyle + SpotBugs). ## Стек технологий - Java 21 - Maven - Rest-assured `6.0.0` - JUnit Jupiter `6.0.2` - Jackson Databind `2.21.0` - Commons Codec `1.21.0` - Maven Surefire Plugin `3.5.4` - Maven Compiler Plugin `3.15.0` - Checkstyle (`maven-checkstyle-plugin` `3.6.0`) - SpotBugs (`spotbugs-maven-plugin` `4.9.8.2`) ## Реализованные сценарии 1. `POST /pet` + `GET /pet/{id}`: - создание питомца; - повторное чтение по id; - проверка, что вернулся именно созданный объект. 2. `GET /pet/{id}`: - проверка схемы ответа через Json Schema Validator. 3. Негативные сценарии: - `POST /pet` с malformed JSON возвращает `4xx`; - `GET /pet/{id}` для удаленного/несуществующего id возвращает `404`; - `GET /pet/findByStatus` с невалидным статусом возвращает пустой список. ## Архитектура - 2-уровневый дизайн: - `service` слой (HTTP-вызовы + спецификации); - `tests` слой (сценарии). - Тесты создают сервис напрямую (`new PetService()`), без DI-фреймворка. ## Структура проекта - `src/main/java/ru/otus/petstore/config` — конфигурация - `src/main/java/ru/otus/petstore/model` — модели API (`Pet`, `Category`, `Tag`) - `src/main/java/ru/otus/petstore/service` — сервисы API - `src/test/java/ru/otus/petstore/tests` — автотесты (позитивные и негативные сценарии) - `src/test/java/ru/otus/petstore/util` — фабрика тестовых данных - `src/test/resources/schemas` — JSON schema ## Запуск ### 1. Только тесты ```bash mvn test ``` ### 2. Полная проверка (тесты + Checkstyle + SpotBugs) ```bash mvn verify ``` ## Параметры запуска - `base.uri` (по умолчанию `https://petstore.swagger.io`) - `base.path` (по умолчанию `/v2`) - значения читаются из `System properties` во время выполнения тестов. Пример: ```bash mvn "-Dbase.uri=https://petstore.swagger.io" "-Dbase.path=/v2" test ```