tgoop.com/notes_about_QA/234
Last Update:
Тестирование очередей
Интересно, сталкивались ли вы когда-то с тестирование брокеров сообщений? Если нет, то пора немного познакомиться с этим зверем.
Очереди сообщений (Message Queue) — это форма асинхронной коммуникации между сервисами (подробности тут).
Грубо говоря, это просто место, куда сервер сбрасывает какую-то информацию, а другой сервер ее забирает, когда у него появилось время. И в этом и есть архитектурная прелесть брокера: не нужно ждать, пока другой ответит (по сравнению, например, с прямым запросом к серверу). Поподробнее можно почитать тут и тут.
В сообщениях могут содержаться запросы, ответы, ошибки и иные данные, передаваемые между программными компонентами.
Компонент, называемый производителем Producer, добавляет сообщение в очередь, где оно будет храниться, пока другой компонент, называемый потребителем Consumer, не извлечет сообщение и не выполнит с ним необходимую операцию.
В зависимости от используемого инструмента, принцип работы брокера будет немного отличаться. Но главная суть для нас неизменна: нам нужно протестировать взаимодействие сервера с этим зверем.
Что можно протестировать:
1️⃣Отдает ли наш сервис нужное сообщение в нужную очередь: слушаем очередь, в которую пишет наш сервер → проверяем сообщение (и атрибуты)
❗️Лучше создать отдельного слушателя (group), чтобы не играть в гонки с другим слушателем (в случае, например, если у нас кафка, которая передвигает offset прочитанных сообщений)
2️⃣Забирает ли сообщение наш сервер из нужной очереди: записываем в очередь сообщение и проверяем, что какое-то действие/логирование/запись в БД произошло.
Это про тестирование именно взаимодействия сервера и брокера.
А что можно протестировать в самом брокере (если смотреть это со стороны ее настройки, например):
🟢 доступ к очереди
🟢 название очереди
🟢 права доступа
Полезные ссылки:
Немного о: RabbitMQ, Kafka, Redis, Memcached, NuxtJS, MongoDB, PostgreSQL (про архитектуру и особенности)
Чем различаются Kafka и RabbitMQ: простыми словами
Подробно про Apache Kafka
Про гарантию доставки сообщения (тут, возможно, будет сложно и непонятно)
#микросервисы
BY Заметки о QA
Share with your friend now:
tgoop.com/notes_about_QA/234