Выбирал бы тестовые случаи, основываясь на следующем:
Успешное обновление:
Неуспешное обновление (негативные тесты):
text/plain вместо application/json).Граничные условия:
Пример структуры тестовых случаев:
| Кейс | Описание | Ожидаемый результат |
|---|---|---|
| Успешное обновление | Обновление всех полей с корректными значениями. | 200 OK / 204 No Content (зависит от API) |
| Несуществующий ID | Попытка обновить ресурс с ID, который не существует. | 404 Not Found |
| Невалидный формат данных | Попытка обновить поле типа число строкой. | 400 Bad Request |
| Отсутствие обязательного поля | Отсутствие в теле запроса поля, помеченного как обязательное. | 400 Bad Request |
| Недостаток прав | Попытка обновить ресурс пользователем без необходимых прав. | 403 Forbidden |
Для автоматизации использовал бы фреймворки типа RestAssured (Java), Requests (Python) или Supertest (Node.js) и инструменты для генерации тестовых данных.