2.5 KiB
2.5 KiB
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-plugin3.6.0) - SpotBugs (
spotbugs-maven-plugin4.9.8.2)
Реализованные сценарии
-
POST /pet+GET /pet/{id}:- создание питомца;
- повторное чтение по id;
- проверка, что вернулся именно созданный объект.
-
GET /pet/{id}:- проверка схемы ответа через Json Schema Validator.
-
Негативные сценарии:
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— сервисы APIsrc/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