powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование микросервисов на Spring Boot
20 сообщений из 20, страница 1 из 1
Тестирование микросервисов на Spring Boot
    #39719197
springy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, plz, как в один тест завязать несколько микросервисов.
Исходные данные:
1) Есть несколько микросервисов на Spring Boot оформленные на maven.
2) По бизнес-логике сервисы завязаны на друг-друге(дергают друг-друга)
3) Отдельно протестировать (написать интеграционные тесты) отдельный микросервис не проблема.
4) Можно написать заглушки для имитации других сервисов, такой вариант я в простых ситуациях использую. Но тут слишком много завязано.
5) Хотелось бы вариант, когда указываешь, какие сервисы поднимать, какие aplication.yml подсовывать. И запуск тестов после подъема всех сервисов.

Подскажите куда можно посмотреть?
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719220
сезонатор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
springyПодскажите куда можно посмотреть?docker-compose
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719238
springy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
docker вещь неплохая.
Можно написать скрипт, который перед тестом будет собирать image, подсовывать туда jar, прописывать порты и где-то поднимать контейнер с этим добром.
Проблема в том, что это банк, нет даже локального администратора и поставить виртуалку нет возможности.
Можно попробовать покляньчить доступ к серверу, где можно развернуть контейнер с докером, но это малоперспективно.

Хотелось бы попробовать обойтись явой и какими-нибудь библиотеками.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719240
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
springyнет даже локального администраторатогда им нужен монолит))))
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719243
aeugen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, в свое время, хотел разобраться с цитрусом , но так времени и не хватило....
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719244
сезонатор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
springyХотелось бы попробовать обойтись явой и какими-нибудь библиотеками. https://habr.com/company/jugru/blog/343298/
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719260
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сезонаторspringyПодскажите куда можно посмотреть?docker-composeесть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719292
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как раз сейчас сталкиваюсь с аналогичной проблемой. как эту трихамудь отлаживать целиком - непонятно. да, думаю, наверное и не надо. для этих целей есть монолит.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719340
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловсезонаторпропущено...
docker-composeесть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency.
у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTкак их адекватно развернуть без докера?не мельчить при микро)
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719376
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTу тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно.Вообще проблемы нет никакой, и не нужно преклоняться перед докером, единственный его профит в обсуждаемом вопросе - это то, что в сервисе мы можем захардкодить эндпойнты как service_name:default_port, а изоляцию портов и разрешение имен отдать на откуп докеру (пусть контейнеры с --link запускает), однако:
никто не мешает генерировать конфиги сервисов через maven resources plugin и раскидывать конфиги через maven dependency plugin

это может быть конечно сюрпризом, но tcp-портов с одним и тем же номером на машине аж 16 миллионов, так что даже здесь мудрить особо-то и не нужно:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
[user@localhost ~]$ nc -l 127.0.0.1 9000
^Z
[1]+  Stopped                 nc -l 127.0.0.1 9000
[user@localhost ~]$ nc -l 127.0.0.2 9000
^Z
[2]+  Stopped                 nc -l 127.0.0.2 9000
[user@localhost ~]$ nc -l 127.0.0.3 9000
^Z
[3]+  Stopped                 nc -l 127.0.0.3 9000
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719407
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хахаха. да. лол. а ведь прав на 143% ))
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719514
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с докером просто еще что удобно тебе какие то там всякие разные конфигурации стандартных инструментов проще держать в нем нежели каждый раз конфигурировать локально что то выдумывать или сочинять.

типа вот у меня проект, там пайплайн из кучи сервисов, помимо этого для них надо тут кафку там касандру здесь постгрес там монгу с того края редис и прочую требшатину, и всё это ты такой значит сидишь и на своем локальном хосте поднимаешь и дружишь. чем проще в докере докер-композ блаблабла ямл ап и вперёд. где угодно как угодно и на чем угодно.

впрочем, тут конечно же вопрос предпочтения и кому как удобно.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719551
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,

мне откровенно не нравится базовая концепция того, что контейнер нужно настоятельно рекомендуется запускать с --rm и, соответственно, никакие данные в нем не держать, как только начинаешь нарушать эту концепцию ("там всякие разные конфигурации стандартных инструментов"), то сразу всплывают всякого рода грабли, а именно:
- среда в контейнере не особо полноценная: помимо того что туда инструментарий нужный не ставят еще умудряются запихивать порезанный alpine linux - так что в большинстве случаев приходится самому все собирать, последний трешак, который наблюдал: в официальным образе Oracle EE не включена partitioning option - хотите включить? собирайте образ сами, ибо $ORACLE_HOME тоже порезанный
- тема про volumes понятна, но выглядит несколько неэстетично: контейнеры где-то сами по себе, данные сами по себе, а потом пойди и угадай что от чего и нужно оно вообще или нет - с виртуальными машинами порядка больше (ровно как и в первой претензии)
- сетевой стэк сделан неудобно для рядового пользователя (хотите чтобы контейнеры были доступны по сети без порт маппинга? добро пожаловать в ад), а где-то даже и глючно (вот оно вставляет в iptables правила, основанные на connection tracking, а потом удивляешься почему долгоживущие коннекты начинают рваться)
- управление ресурсами тоже так себе, т.е. контейнер-то мы можем ограничить по памяти и CPU, однако софтина, которая в нем крутится видит все ресурсы хоста, из-за чего принимает неверные решения для себя, ну самый простой пример - java, там умолчательный размер кучи и количество потоков GC определяются на основе хоста, поэтому приходится перенастраивать всегда
- что еще удивляет: оно почему-то внутри себя overlayfs умеет, а снаружи нет, вот условно хочу в докере mvn запускать и чтобы оно не тупило постоянно на скачивании артефактов, что делать? нужно хостовый ~/.m2 подключать, а что делать если я еще не хочу чтобы оно в хостовый ~/.m2 гадило? контейнер переделывать и постоянно в нем ~/.m2 обновлять.

По вполне объективным причинам оказалось гораздо удобнее купить нормальный десктоп и гонять в нем vmware, чем постоянно бороться с неудобствами докера. Меж тем:
- существование докера в продакшене - вполне нормальная концепция, однако при условии что для этого продакшена мы в итоге собираем готовые образы, а не так, что сборка и тестирование живет само по себе без докера, а в продакшн какие-то умельцы что-то там закатывают в докер
- использование докера в CI/CD тоже нормальная концепция (особенно если мы хотит чтобы злодеи нам какой-нить rm -rf / не закоммитили), но это не значит что вот нужно все бросать и начинать делать сборки в докере: сборка должна и без докера правильно работать
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719563
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
А есть контейнер или докер чтобы внутри оракле и поставить на дебиан хостинг?
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719634
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTАндрей Панфиловпропущено...
есть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency.
у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно.

Если это спринг бут то обычным скриптом по разным портам.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719725
сезонатор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergunkaandreykaTпропущено...

у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно.

Если это спринг бут то обычным скриптом по разным портам.Как быть, если одному из сервисов нужен redis и postgresql?
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39719967
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что? ) значит поставишь редис или постгрес на свой хост.
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39720356
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTи что? ) значит поставишь редис или постгрес на свой хост.

Можно еще попросить доброго гнома чтоб обслужил Никто не мешает юзать редис и постгрес на тестовом хосте и таскать через порт оттуда. Я собственно держу у себя на локальной машине редис, RabbitMQ, Kafka, Posgres, MySql, Oracle, Cassandra, MongoDB. Обычно механизм простой вытаскиваешь image, а сейчас еще проще docker и запускаешь по мере необходимости либо в виртуальном боксе либо в докере.

Я даже один из первых кто писанулся и поставил на Мак Cloud Foundry

https://vyatkins.wordpress.com/2015/02/13/how-to-deploy-cloud-foundry-on-your-local-machine/

Задача беспорно повышенного геморроя, но реально того стоит если хочется просто все вбубенить для счастиливой жизни добрых гномом и лесных эльфов
...
Рейтинг: 0 / 0
Тестирование микросервисов на Spring Boot
    #39720366
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая штука есть https://github.com/testcontainers/testcontainers-java отлично решает вопросы интеграционного тестирования
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование микросервисов на Spring Boot
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]