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.
Рабочий порядок
- Определите, какой протокол используется и чем его удобно наблюдать.
- Соберите минимальный запрос или сообщение для воспроизведения.
- Проверьте ошибочные состояния: timeout, disconnect, invalid payload, expired token.
- Фиксируйте raw-запросы и события, чтобы разработчик не гадал.
Что отдавать команде
- Примеры запросов или сообщений.
- Логи соединения, correlation id, timestamps.
- Список протокольных ошибок и ожидаемых реакций.
Частые провалы
- Одинаково тестировать request/response и real-time соединение.
- Не проверять reconnect и истечение авторизации.
- Не фиксировать порядок событий при асинхронной проблеме.
Практика
Проверьте чат: отправка сообщения, reconnect после потери сети, дубли, порядок сообщений, истечение token во время открытого соединения.