Для какого функционала следует создавать API тест-кейсы?

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

Ответ

API тест-кейсы создаются для проверки бизнес-логики, интеграций и контрактов на уровне сервиса. Основные цели:

  1. Функциональность и корректность:
    • Проверка HTTP-методов (GET, POST, PUT, DELETE).
    • Валидация статус-кодов (200, 201, 400, 404, 500).
    • Проверка структуры и данных в теле ответа (JSON/XML-схема).
  2. Обработка ошибок и граничные значения:
    • Запросы с невалидными или отсутствующими параметрами.
    • Проверка авторизации и прав доступа (токены, API-ключи).
    • Тестирование лимитов (rate limiting).
  3. Интеграции и состояния:
    • Создание, чтение, обновление и удаление сущностей (CRUD).
    • Проверка согласованности данных между связанными API.
  4. Нефункциональные требования:
    • Производительность (время ответа, нагрузочное тестирование).
    • Безопасность (базовые проверки на инъекции, экспозицию данных).

Пример кода (Python, pytest + requests):

import requests

def test_create_item_returns_201():
    """Тест на успешное создание ресурса."""
    url = "https://api.example.com/items"
    payload = {"name": "New Item", "price": 100}
    headers = {"Authorization": "Bearer token123"}

    response = requests.post(url, json=payload, headers=headers)

    assert response.status_code == 201
    assert response.json()["id"] is not None
    assert response.json()["name"] == payload["name"]

API-тестирование эффективно выявляет дефекты на ранних стадиях, до тестирования UI.