docs: added comments to code and created README.md
This commit is contained in:
77
README.md
Normal file
77
README.md
Normal 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, описывает
|
||||||
|
основные сценарии тестирования, структуру проекта и шаги для запуска автотестов. Вы можете его адаптировать под
|
||||||
|
свои нужды или дополнить дополнительной информацией.
|
||||||
@@ -94,11 +94,13 @@ public class PetStoreTests {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Тест 4: POST /pet для создания питомца с невалидными данными (без поля "name").
|
* Тест 4: POST /pet для создания питомца с невалидными данными (без поля "name").
|
||||||
* Ожидается, что API вернёт ошибку (400 или 405).
|
* Ожидается, что API вернёт ошибку (400 или 405). Почему-то сервис отдает ответ 200
|
||||||
|
* я решил оставить данный тест. Показать что вся цепочка тестов не останавливается и
|
||||||
|
* продолжает работать дальше
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
@Order(4)
|
@Order(4)
|
||||||
@DisplayName("4. Test: Create pet missing 'name' field")
|
@DisplayName("4. Test: Fail to create pet without 'name' field")
|
||||||
public void testCreatePetMissingName() {
|
public void testCreatePetMissingName() {
|
||||||
int petId = (int) (System.currentTimeMillis() % Integer.MAX_VALUE);
|
int petId = (int) (System.currentTimeMillis() % Integer.MAX_VALUE);
|
||||||
String requestBody = "{\n" +
|
String requestBody = "{\n" +
|
||||||
|
|||||||
Reference in New Issue
Block a user