Как проверить, что API возвращает статус-код 400 (Bad Request)?

«Как проверить, что API возвращает статус-код 400 (Bad Request)?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для проверки кода состояния 400 необходимо отправить запрос с заведомо некорректными или неполными данными и убедиться в ответе.

Автоматизированная проверка (Python + requests):

import requests

# 1. Отправка невалидного запроса
url = "https://api.example.com/login"
invalid_payload = {"username": "", "password": ""}  # Пустые поля
response = requests.post(url, json=invalid_payload)

# 2. Проверка статус-кода
assert response.status_code == 400, 
    f"Ожидался статус 400, получен {response.status_code}"

# 3. (Опционально) Проверка тела ответа на наличие сообщения об ошибке
error_message = response.json().get("error")
assert "field is required" in error_message.lower()

Ручная проверка (с помощью инструментов):

  • Postman: Создать запрос с невалидным телом (JSON/XML) и проверить Response Status.
  • cURL:
    curl -X POST https://api.example.com/login 
         -H "Content-Type: application/json" 
         -d '{"user":"test"}' 
         -w "%{http_code}"
    # Ожидаемый вывод: 400

Типичные сценарии для 400: отсутствие обязательных полей, неверный формат данных, нарушение бизнес-правил валидации.