Комментарии 9
Спасибо за статью, интересный код. Но я бы хотела прояснить вопрос с тестированием.
Что конкретно тут тестируется? Соединение с Kafka?
Если я использую Kafka при тестировании на проекте, то я либо получаю сообщения из нее и проверяю из валидность. Или наоборот, я отправляю сообщения в Kafka, чем запускаю работу какой-либо функциональности, которая ее ждет.
Т.е. не соединение с Kafka основная цель тестирования, а сообщения и их валидность.
С уважением, Ирина
Что конкретно тут тестируется? Соединение с Kafka?
Если я использую Kafka при тестировании на проекте, то я либо получаю сообщения из нее и проверяю из валидность. Или наоборот, я отправляю сообщения в Kafka, чем запускаю работу какой-либо функциональности, которая ее ждет.
Т.е. не соединение с Kafka основная цель тестирования, а сообщения и их валидность.
С уважением, Ирина
+2
Очень характерный вопрос (мне кажется, и к предудущему посту автора это же самое относится). Написан какой-то код, его довольно много, но при этом автор вообще не рассказал, что же конкретно он тестирует. В коде ровно один assert. Ну т.е. все что написано — ради одной проверки, не многовато-ли кода ради такого?
Если же это какой-то тестовый фреймворк, который позволит другие тесты писать проще и быстрее — то не следовало бы сначала рассказать, в чем задумка?
А если же речь о том, что интеграция с кафкой производится через промежуточный REST, то об этом тоже в общем ничего не написано. У кафки и так достаточно несложный API, зачем и для чего REST — не очевидно.
Если же это какой-то тестовый фреймворк, который позволит другие тесты писать проще и быстрее — то не следовало бы сначала рассказать, в чем задумка?
А если же речь о том, что интеграция с кафкой производится через промежуточный REST, то об этом тоже в общем ничего не написано. У кафки и так достаточно несложный API, зачем и для чего REST — не очевидно.
+2
Цель — это показать возможность написания тестов, в которых используется не только kafka, но и прикладной код, который работает на другом уровне.
Согласен, что описание примера получилось скомканным (постараюсь добавить больше деталей).
Попробую дополнить. Пусть будет сервис со своим API, внутри сервиса есть обращение, к другим сервисам, к примеру, kafka и взаимодействие с этими сервисами, нетривиальное. Требуется написать для такого сервиса интеграционные тесты.
Согласен, что описание примера получилось скомканным (постараюсь добавить больше деталей).
Попробую дополнить. Пусть будет сервис со своим API, внутри сервиса есть обращение, к другим сервисам, к примеру, kafka и взаимодействие с этими сервисами, нетривиальное. Требуется написать для такого сервиса интеграционные тесты.
0
Интеграцио́нное тести́рование — одна из фаз тестирования ПО, при которой отдельные модули объединяются и тестируются в группе.
Я не совсем понял из статьи, какие модули объединяются для тестирования в группе?
0
Когда сервисы интегрируются при помощи Kafka очень удобно использовать REST API, как универсальный и стандартный способ обмена сообщениями.
Я как-то на первом предложении потерялся. Какая тут связь?
0
Идея простая.
Есть клиенты/сервисы, которые работают с REST API. Их задача — отправить сообщение другим сервисам и дождаться ответа. Для таких сервисов нужно и реализовать подобное решение т.к. работать с kafka они не умеют.
Где это может пригодиться?
К примеру, есть модели машинного обучения, которые работают на базе Spark Streaming. Эти модели по входным данным в виде вектора возвращают результат в виде скаляра. Данные извлекаются из одного topic, а результаты записываются в другой. И есть клиенты, которые должны получать результаты моделей и могут это делать только через REST API. Тогда реализуется такой сервис. С 3-я методами. Отправить запрос на расчет с данными и вернуть ключ запроса. Получить по ключу статус расчета. Получить по ключу результаты расчета.
Конечно, это можно сделать, к примеру, на websocket-х, но это уже за пределами этой статьи.
Есть клиенты/сервисы, которые работают с REST API. Их задача — отправить сообщение другим сервисам и дождаться ответа. Для таких сервисов нужно и реализовать подобное решение т.к. работать с kafka они не умеют.
Где это может пригодиться?
К примеру, есть модели машинного обучения, которые работают на базе Spark Streaming. Эти модели по входным данным в виде вектора возвращают результат в виде скаляра. Данные извлекаются из одного topic, а результаты записываются в другой. И есть клиенты, которые должны получать результаты моделей и могут это делать только через REST API. Тогда реализуется такой сервис. С 3-я методами. Отправить запрос на расчет с данными и вернуть ключ запроса. Получить по ключу статус расчета. Получить по ключу результаты расчета.
Конечно, это можно сделать, к примеру, на websocket-х, но это уже за пределами этой статьи.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Сервисы с Apache Kafka и тестирование