HTTP, REST, gRPC и WebSocket для QA

Протокол влияет на то, как наблюдать и воспроизводить проблему. HTTP/REST удобен для запросов и ответов, gRPC часто требует работы с proto-контрактами, WebSocket добавляет постоянное соединение, сообщения и события во времени.

Что важно понять

  • Для HTTP: методы, статусы, заголовки, кеш, redirects, CORS.
  • Для REST: ресурсы, идемпотентность, пагинация, фильтры, версионирование.
  • Для gRPC: proto-схемы, status codes, metadata, streaming.
  • Для WebSocket: соединение, reconnect, порядок сообщений, heartbeat, auth expiry.

Рабочий порядок

  1. Определите, какой протокол используется и чем его удобно наблюдать.
  2. Соберите минимальный запрос или сообщение для воспроизведения.
  3. Проверьте ошибочные состояния: timeout, disconnect, invalid payload, expired token.
  4. Фиксируйте raw-запросы и события, чтобы разработчик не гадал.

Что отдавать команде

  • Примеры запросов или сообщений.
  • Логи соединения, correlation id, timestamps.
  • Список протокольных ошибок и ожидаемых реакций.

Частые провалы

  • Одинаково тестировать request/response и real-time соединение.
  • Не проверять reconnect и истечение авторизации.
  • Не фиксировать порядок событий при асинхронной проблеме.

Практика

Проверьте чат: отправка сообщения, reconnect после потери сети, дубли, порядок сообщений, истечение token во время открытого соединения.