Конвейер тестирования Docker/Kafka с запуском по данным
Задача
Существующее сложное многоконтейнерное приложение обменивалось данными через Apache Kafka, но не имело автоматического способа подавать на него реалистичный трафик, сохранять результаты и запускать на них тесты. Сбор, хранение и запуск тестов выполнялись отдельными ручными шагами.
Решение
В существующее приложение Docker Compose добавили контейнер сбора данных и запуска тестов и контейнер PostgreSQL. Для захвата трафика разработали Telnet-клиенты; коллектор разбирал входящие данные, отправлял их в PostgreSQL через Apache Kafka и запускал набор тестов, когда данных накапливалось достаточно. Параллельно с конвейером разрабатывался и поддерживался клиент REST API по OpenAPI/Swagger на протяжении всей разработки продукта.
Результат
Сбор, хранение и запуск тестов стали одним автоматизированным потоком: тесты идут по свежим реалистичным данным без ручной подготовки, а результаты сохраняются в PostgreSQL для анализа.
Автор статьи: Андрей Олегович