Ответ
При тестировании API наиболее частыми являются следующие ошибки HTTP:
-
400 Bad Request — некорректный синтаксис запроса. Например, невалидный JSON или отсутствие обязательных полей.
POST /api/users Content-Type: application/json {"name": "John" // Ошибка: пропущена закрывающая фигурная скобка -
401 Unauthorized — проблемы с аутентификацией: неверный, истекший или отсутствующий токен.
-
403 Forbidden — у аутентифицированного пользователя нет прав на доступ к запрашиваемому ресурсу.
-
404 Not Found — запрашиваемый ресурс или эндпоинт не существует.
GET /api/non-existent-resource -
500 Internal Server Error — необработанное исключение на стороне сервера.
-
429 Too Many Requests — клиент превысил лимит запросов (rate limiting).
-
Ошибки валидации данных — например, передача строки вместо числа в обязательном числовом поле.
{ "quantity": "five" // Ожидается тип integer } -
Проблемы с заголовками (Headers) — отсутствие или неверное значение
Content-Type.POST /api/data Content-Type: text/plain // Сервер ожидает application/json {"key": "value"}
Для эффективного тестирования важно покрывать эти сценарии как позитивными, так и негативными тестами.
Ответ 18+ 🔞
А, слушай, вот это реально полезная хуйня, которую каждый тестировщик должен в печёнках иметь! Сейчас разжую, как это всё выглядит в боевых условиях, чтобы ты не наступал на те же грабли, что и все мы, блядь.
Вот смотри, когда ты долбишь по какому-нибудь API, то 90% всей ебалы сводится к восьми классическим пиздецам. Запоминай, как «Отче наш», а то будешь потом как дурак в логах копаться.
1. 400 Bad Request — это когда ты такой умный отправляешь серверу какую-то ахинею, а он тебе: «Чувак, ты совсем, блядь, охренел?». Типа, JSON кривой, запчасть от запроса потерял или отправил хуйню вместо данных.
POST /api/users
Content-Type: application/json
{"name": "John" // Ошибка: пропущена закрывающая фигурная скобка
Вот тут, видишь? Скобку забыл. Сервер смотрит на это и думает: «Ну и мудень, ёпта».
2. 401 Unauthorized — классика жанра! Твой токен умер, сдох, истёк, или ты его вообще забыл прицепить. Сервер глядит на пустоту и говорит: «А ты кто такой, сука? Иди лесом».
3. 403 Forbidden — а вот это поинтереснее. Ты вроде залогинился, токен твой живенький, но тебе лезть в этот шкафчик нельзя. Как будто ты дворник, а пытаешься в кабинет к гендиру. «Не-не-не, дружок, это тебе не по чину, блядь».
4. 404 Not Found — самый частый пиздец. Ты опечатался в адресе, или фича уже сломана, или её никогда и не было.
GET /api/non-existent-resource
Сервер такой: «Иди нахуй с твоим ресурсом, я про такую хуйню первый раз слышу».
5. 500 Internal Server Error — это уже не твоя вина, а пиздец на той стороне. У них там код упал, исключение не поймали, база легла. В общем, «ой, всё». Сиди и жди, пока админы отпляшут с бубном.
6. 429 Too Many Requests — ага, попался, скорострел! Слишком часто долбишь, решил, что ты DDoS-бот. Лимитер накрыл тебя медным тазом. «Успокойся, блядь, подожди немного».
7. Ошибки валидации данных — моя любимая, ебать! Ты в поле quantity (количество), которое ждёт цифру, пишешь "five".
{
"quantity": "five" // Ожидается тип integer
}
Сервер в ауте: «Пять? Это типа строка "five"? Да иди ты нахуй, я жду циферку!». И правильно делает.
8. Проблемы с заголовками (Headers) — а это для особо одарённых. Ты шлёшь JSON, а в заголовке пишешь, что это простой текст.
POST /api/data
Content-Type: text/plain // Сервер ожидает application/json
{"key": "value"}
Сервер парсит это как текст, получает пиздюлину и отвечает тебе той же монетой. «Я ждал JSON, а ты мне какую-то хуйню прислал!».
Вот и весь базовый набор, блядь. Суть в чём: ты должен эти все сценарии намеренно ломать. Не только «солнечный путь» тестить, где всё работает, но и специально слать кривые JSON'ы, битые токены и запросы не туда. Тогда и найдёшь всю ту дрянь, которая прячется в углах. Удачи, не проёбывайся!