Ответ
HTTP-коды состояния сгруппированы в пять классов, определяемых первой цифрой кода:
| Класс | Описание | Примеры |
|---|---|---|
| 1xx (Информационные) | Сервер получил запрос и продолжает обработку. | 100 Continue, 101 Switching Protocols |
| 2xx (Успешные) | Запрос был успешно получен, понят и обработан. | 200 OK, 201 Created, 204 No Content |
| 3xx (Перенаправления) | Для завершения запроса требуется дополнительное действие (обычно — переход по другому URI). | 301 Moved Permanently, 302 Found, 304 Not Modified |
| 4xx (Ошибки клиента) | Запрос содержит ошибку или не может быть выполнен сервером из-за действий клиента. | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
| 5xx (Ошибки сервера) | Сервер не смог выполнить заведомо корректный запрос. | 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable |
Почему это важно для тестирования: Анализ кода ответа — первичный способ определения успешности или характера сбоя API-запроса.
Пример проверки в автотесте (Python + pytest):
import requests
def test_get_user_success():
response = requests.get("https://api.example.com/users/1")
# Проверяем, что запрос успешен (код 2xx)
assert response.status_code == 200
# Или проверяем конкретный код
assert response.status_code == requests.codes.ok # то же, что и 200
def test_get_user_not_found():
response = requests.get("https://api.example.com/users/99999")
# Проверяем, что ресурс не найден
assert response.status_code == 404