docs: added comments to code and created README.md

This commit is contained in:
2025-05-16 02:51:43 +03:00
parent ea0c2c9f7e
commit 5842dad2be
2 changed files with 81 additions and 2 deletions

77
README.md Normal file
View File

@@ -0,0 +1,77 @@
# Автотесты для Petstore API
Этот проект содержит набор автотестов для [Swagger Petstore API](https://petstore.swagger.io/v2) с использованием библиотек **Rest-assured** и **JUnit 5**. Проект оформлен как Maven-проект с поддержкой JDK 24.
## Структура проекта
```plaintext
hw3/
├── pom.xml # Maven-конфигурация
├── README.md # Readme файл
└── src
└── test
└── java
└── ru
└── otus
└── petstore
└── PetStoreTests.java # Автотесты
```
## Обзор
**Rest-assured** — это библиотека для тестирования REST API, предоставляющая удобный DSL (domain-specific language)
для формирования HTTP-запросов, их отправки и проверки ответов. В данном проекте с её помощью отправляются GET и POST
запросы к Petstore API, а также производятся проверки кодов ответа и содержимого JSON.
### Реализованные сценарии тестирования
1. **Тест: Поиск питомцев со статусом "available"**
Отправляется GET-запрос на `/pet/findByStatus` с параметром `status=available`.
**Ожидаемый результат:** HTTP 200 и у всех питомцев в ответе значение поля `status` равно `"available"`.
2. **Тест: Поиск питомцев по несуществующему статусу**
Отправляется GET-запрос с параметром `status=invalidStatus`.
**Ожидаемый результат:** HTTP 200 и пустой массив в ответе.
3. **Тест: Успешное создание питомца**
Отправляется POST-запрос с корректными данными для создания питомца.
**Ожидаемый результат:** HTTP 200 и возвращаемое поле `name` совпадает с переданным значением.
4. **Тест: Ошибка при создании питомца без поля "name"**
Отправляется POST-запрос, в котором отсутствует обязательное поле `name`.
**Ожидаемый результат:** API возвращает ошибку (код 400 или 405).
5. **Тест: Ошибка при передаче некорректного JSON**
Отправляется POST-запрос с ошибочным JSON (без закрывающей фигурной скобки).
**Ожидаемый результат:** API возвращает ошибку (код 400 или 405).
## Как запустить тесты
1. **Клонируйте репозиторий:**
```bash
git clone https://git.kovbasa.ru/otus-autotests/hw3.git
2. **Перейдите в папку проекта:**
```bash
cd hw3
3. **Запустите тесты командой:**
```bash
mvn test
После выполнения тестов в консоли вы увидите нумерованные сообщения с результатами (например, "1. Test: Find pets by
'available' status - Passed").
## Зависимости
- **Rest-assured**: 4.5.1
- **JUnit Jupiter (API & Engine)**: 5.9.1
## Лицензия
Проект предназначен для образовательных целей.
```
---
Этот файл **README.md** даёт краткое описание проекта, объясняет суть реализации тестов с Rest-assured, описывает
основные сценарии тестирования, структуру проекта и шаги для запуска автотестов. Вы можете его адаптировать под
свои нужды или дополнить дополнительной информацией.

View File

@@ -94,11 +94,13 @@ public class PetStoreTests {
/**
* Тест 4: POST /pet для создания питомца с невалидными данными (без поля "name").
* Ожидается, что API вернёт ошибку (400 или 405).
* Ожидается, что API вернёт ошибку (400 или 405). Почему-то сервис отдает ответ 200
* я решил оставить данный тест. Показать что вся цепочка тестов не останавливается и
* продолжает работать дальше
*/
@Test
@Order(4)
@DisplayName("4. Test: Create pet missing 'name' field")
@DisplayName("4. Test: Fail to create pet without 'name' field")
public void testCreatePetMissingName() {
int petId = (int) (System.currentTimeMillis() % Integer.MAX_VALUE);
String requestBody = "{\n" +