|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
Подскажите, plz, как в один тест завязать несколько микросервисов. Исходные данные: 1) Есть несколько микросервисов на Spring Boot оформленные на maven. 2) По бизнес-логике сервисы завязаны на друг-друге(дергают друг-друга) 3) Отдельно протестировать (написать интеграционные тесты) отдельный микросервис не проблема. 4) Можно написать заглушки для имитации других сервисов, такой вариант я в простых ситуациях использую. Но тут слишком много завязано. 5) Хотелось бы вариант, когда указываешь, какие сервисы поднимать, какие aplication.yml подсовывать. И запуск тестов после подъема всех сервисов. Подскажите куда можно посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 09:22 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
springyПодскажите куда можно посмотреть?docker-compose ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:02 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
docker вещь неплохая. Можно написать скрипт, который перед тестом будет собирать image, подсовывать туда jar, прописывать порты и где-то поднимать контейнер с этим добром. Проблема в том, что это банк, нет даже локального администратора и поставить виртуалку нет возможности. Можно попробовать покляньчить доступ к серверу, где можно развернуть контейнер с докером, но это малоперспективно. Хотелось бы попробовать обойтись явой и какими-нибудь библиотеками. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:21 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
springyнет даже локального администраторатогда им нужен монолит)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:25 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
Я, в свое время, хотел разобраться с цитрусом , но так времени и не хватило.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:28 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
springyХотелось бы попробовать обойтись явой и какими-нибудь библиотеками. https://habr.com/company/jugru/blog/343298/ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:28 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
сезонаторspringyПодскажите куда можно посмотреть?docker-composeесть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 10:51 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
как раз сейчас сталкиваюсь с аналогичной проблемой. как эту трихамудь отлаживать целиком - непонятно. да, думаю, наверное и не надо. для этих целей есть монолит. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 12:15 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфиловсезонаторпропущено... docker-composeесть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency. у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 13:13 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
andreykaTкак их адекватно развернуть без докера?не мельчить при микро) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 13:37 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
andreykaTу тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно.Вообще проблемы нет никакой, и не нужно преклоняться перед докером, единственный его профит в обсуждаемом вопросе - это то, что в сервисе мы можем захардкодить эндпойнты как service_name:default_port, а изоляцию портов и разрешение имен отдать на откуп докеру (пусть контейнеры с --link запускает), однако: никто не мешает генерировать конфиги сервисов через maven resources plugin и раскидывать конфиги через maven dependency plugin это может быть конечно сюрпризом, но tcp-портов с одним и тем же номером на машине аж 16 миллионов, так что даже здесь мудрить особо-то и не нужно: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 13:58 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
хахаха. да. лол. а ведь прав на 143% )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 14:42 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
с докером просто еще что удобно тебе какие то там всякие разные конфигурации стандартных инструментов проще держать в нем нежели каждый раз конфигурировать локально что то выдумывать или сочинять. типа вот у меня проект, там пайплайн из кучи сервисов, помимо этого для них надо тут кафку там касандру здесь постгрес там монгу с того края редис и прочую требшатину, и всё это ты такой значит сидишь и на своем локальном хосте поднимаешь и дружишь. чем проще в докере докер-композ блаблабла ямл ап и вперёд. где угодно как угодно и на чем угодно. впрочем, тут конечно же вопрос предпочтения и кому как удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 17:22 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
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 / не закоммитили), но это не значит что вот нужно все бросать и начинать делать сборки в докере: сборка должна и без докера правильно работать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 18:38 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфилов, А есть контейнер или докер чтобы внутри оракле и поставить на дебиан хостинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 19:19 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
andreykaTАндрей Панфиловпропущено... есть мнение, что докером нужно пользоваться только когда уже совсем невмоготу (на например в CI запускать пару десятков сборок одновременно), а изначально сам ЖЦ мэйвена должен работать прозрачно без каких-либо костылей в виде докера, в противном случае поддерживать комбайны крайне затруднительно (накрапать нетленку-то не сложно, а вот когда другому разработчику придется отладиться у себя, вот тогда наступает грусть и печаль). В целом для генерации конфигов и рассовывания их куда нужно вполне достаточно двух плагинов: maven resources и maven dependency. у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно. Если это спринг бут то обычным скриптом по разным портам. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2018, 04:19 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
SergunkaandreykaTпропущено... у тебя с десяток микросервисов. как их адекватно развернуть без докера? ну.. можно не спорю. но несколько неудобно. Если это спринг бут то обычным скриптом по разным портам.Как быть, если одному из сервисов нужен redis и postgresql? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2018, 10:10 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
и что? ) значит поставишь редис или постгрес на свой хост. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2018, 14:14 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
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/ Задача беспорно повышенного геморроя, но реально того стоит если хочется просто все вбубенить для счастиливой жизни добрых гномом и лесных эльфов ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 20:53 |
|
Тестирование микросервисов на Spring Boot
|
|||
---|---|---|---|
#18+
Вот такая штука есть https://github.com/testcontainers/testcontainers-java отлично решает вопросы интеграционного тестирования ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 22:44 |
|
|
start [/forum/topic.php?fid=59&msg=39719240&tid=2121703]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 494ms |
0 / 0 |