По запросу от моей подписчицы из нельзяграма
(подписаться) разместила пост про "Особенности тестирования с брокерами сообщений по моему опыту".
Хочу поделиться и здесь, а также добавляйте свои пункты, делитесь своим опытом при проверке интеграционного взаимодействия сервисов через брокеры сообщений. С каким инструментом работаете или работали?
Немного теории: брокеры сообщений, в основном, состоят из Producer или Publisher (поставщик сообщений), очередь сообщений и Consumer или Subscriber (получатель сообщений), еще есть topic (топик (тема) - это
логическая единица, которая объединяет сообщения по некоторому критерию).Вот я работала с инструментом Tibco, где я подписывалась на различные топики и вычитывала сообщения после конкретной проверки.
Очередь сообщений -
это как почтовый ящик, где хранятся сообщения, отправленные продюсером. В зависимости от брокера сообщений, сообщения могут удаляться после прочтения, а могут не удаляться.
В основном, я работала
Tibco EMS, немного
Kafka, c
Redis и
RabbitMQ не работала
Вот для меня как раз основное тестирование проводилось через топики, опишу пункты, что я проверяла и делала через топики.🔅- отправка, то есть проверка корректности отправки сообщений в топики брокера
🔅- получение необходимых сообщений, проверка на отсутствие дублирующих сообщений
🔅- проверка содержания полученных сообщений, которые соответствует ожидаемым данным или формату
🔅- обработка нескольких сообщений, различных типов сообщений, как JSON, XML
🔅- вычитка сообщений
🔅- загрузка своих сообщений в топик c валидным и невалидным форматом, и как приложение правильно обрабатывала ошибки, возникающие при отправке или получении сообщений
🔅- проверка взаимодействия приложения с другими сервисами через топики
🔅- оценка времени, требуемое для доставки сообщений от отправителя к получателю, чтобы убедиться, что оно соответствует ожиданиям, как раз я ожидала, через сколько времени, появятся сообщения после выполняемого действия
🔅- проверка, что сообщения доставляются в том же порядке, в котором они были отправлены
Нагрузочное тестирование я не проверяла, все на уровне функциональных проверок, когда мне нужно было получить данное сообщение и проверить его содержание.
@protestinginfo