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. Только тесты

mvn test

2. Полная проверка (тесты + Checkstyle + SpotBugs)

mvn verify

Параметры запуска

  • base.uri (по умолчанию https://petstore.swagger.io)
  • base.path (по умолчанию /v2)
  • значения читаются из System properties во время выполнения тестов.

Пример:

mvn "-Dbase.uri=https://petstore.swagger.io" "-Dbase.path=/v2" test
Description
No description provided
Readme 86 KiB
Languages
Java 100%