Какие данные необходимо предусмотреть при разработке REST-сервиса с нуля?

«Какие данные необходимо предусмотреть при разработке REST-сервиса с нуля?» — вопрос из категории API тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При планировании тестирования нового REST-сервиса я фокусируюсь на данных, необходимых для валидации всех сценариев. Вот что я готовлю:

  1. Тестовые модели данных (DTO/Entities): Определяю структуры для позитивных и негативных случаев.

    // Пример модели пользователя для тестов
    {
      "id": 1,
      "name": "John Doe",
      "email": "john.doe@example.com",
      "status": "ACTIVE"
    }
  2. Наборы тестовых данных: Создаю коллекции для различных проверок (валидные, невалидные, граничные значения).

    // Набор для тестирования создания пользователя
    [
      {"name": "Valid Name", "email": "valid@email.com"},
      {"name": "", "email": "valid@email.com"}, // Невалидное имя
      {"name": "A", "email": "not-an-email"} // Невалидный email
    ]
  3. Ожидаемые ответы и ошибки: Описываю структуры успешных ответов и всех возможных ошибок API.

    // Ожидаемая структура ошибки 400
    {
      "timestamp": "2023-10-05T12:00:00Z",
      "status": 400,
      "error": "Bad Request",
      "message": "Email must be a valid email address",
      "path": "/api/v1/users"
    }
  4. Конфигурационные данные для тестов: Подготавливаю переменные окружения (базовые URL, учетные данные, таймауты) для разных сред (dev, staging, prod).

  5. Данные для проверки нефункциональных требований: Данные для нагрузочного тестирования (объемы запросов, данные для проверки пагинации, сортировки).

    // Пример ответа с пагинацией для тестирования
    {
      "content": [ ... ],
      "page": 0,
      "size": 20,
      "totalElements": 150,
      "totalPages": 8
    }
  6. Эталонные данные (Reference Data): Данные, которые должны всегда присутствовать в системе (справочники, константы) для проверки согласованности.

Основная цель — иметь изолированные, воспроизводимые и полные наборы данных, покрывающие все кейсы из тест-плана API.