Как вы тестируете POST-запросы в API?

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

Ответ

Тестирование POST-запросов — ключевая часть проверки API, так как они отвечают за создание ресурсов. Подход включает:

1. Проверка позитивных сценариев:

  • Успешное создание ресурса с валидными данными (код ответа 201 Created или 200 OK).
  • Проверка, что все переданные поля корректно сохранены в ответе или БД.

2. Проверка негативных сценариев и валидации:

  • Отправка неполных данных (проверка 400 Bad Request).
  • Отправка невалидных данных (некорректный email, отрицательный возраст).
  • Проверка уникальности (дублирующиеся логины).
  • Проверка авторизации (401 Unauthorized, 403 Forbidden).

3. Инструменты и примеры:

  • cURL:
    curl -X POST https://api.example.com/users 
    -H "Content-Type: application/json" 
    -H "Authorization: Bearer <token>" 
    -d '{"name": "John", "email": "john@example.com"}'
  • Python (requests):
    import requests
    payload = {"username": "test_user", "password": "Secret123"}
    response = requests.post("https://api.example.com/auth/login", json=payload)
    assert response.status_code == 200
    assert "access_token" in response.json()

    Почему: Тщательное тестирование POST-запросов предотвращает создание некорректных данных в системе, что является критичным для целостности приложения.