Особенности тестирования HTTP PUT-запросов для обновления ресурсов
Краткий ответ
Тестирование PUT-запроса направлено на проверку корректного обновления существующего ресурса, правильного статус-кода (обычно 200 или 204) и сохранения изменений. Важно также проверить валидацию входных данных и уровень доступа пользователя.
Развёрнуто
Краткий ответ
Тестирование PUT-запроса заключается в проверке успешного обновления ресурса на сервере, корректного возвращаемого статус-кода и сохранения изменений в базе данных. Необходимо убедиться, что сервер корректно обрабатывает как валидные, так и некорректные запросы с учетом авторизации.
Как это работает
HTTP-метод PUT используется для замены или обновления ресурса по указанному URI. При тестировании PUT важно:
- Проверить, что отправляемые данные полностью заменяют текущий ресурс.
- Убедиться, что сервер возвращает правильный статус-код:
200 OKпри успешном обновлении с телом ответа или204 No Content, если тело отсутствует. - Проверить сохранение изменений в базе данных или системе хранения.
- Тестировать обработку ошибок: например, при отправке некорректных данных или отсутствии прав доступа.
Пример статусов:
| Статус-код | Значение |
|---|---|
| 200 | Ресурс успешно обновлён |
| 204 | Обновление прошло без тела |
| 400 | Некорректные данные |
| 401/403 | Ошибка авторизации |
Пример
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer token123
{
"name": "Иван Иванов",
"email": "ivan@example.com"
}
В ответ сервер должен вернуть:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 123,
"name": "Иван Иванов",
"email": "ivan@example.com"
}
Это означает, что ресурс пользователя с ID 123 был успешно обновлён.
Что важно знать на собеседовании
- PUT полностью заменяет ресурс, в отличие от PATCH, который обновляет частично.
- Статус-коды 200 и 204 — наиболее частые успешные ответы для PUT.
- Обязательна проверка обработки ошибок: валидация данных, права доступа.
- Проверять сохранение данных на уровне базы или хранилища.
- Тестировать idempotency — повторный PUT-запрос с одинаковыми данными не должен вызывать ошибок.
Тема: HTTP, REST и API | Уровень: middle