Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Привет.

Топик возник в виде логического продожления нашего спора здесь
https://www.sql.ru/forum/1311165/testirovanie-chto-imenno-testirovat-kak-opredelit-seredinu

У меня возникла мысль что тестить их вобщем-то не стоит.

Вобщем вот как-то так.

Прошу ваши каменты.
8 апр 19, 19:01    [21856407]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5634
mayton
У меня возникла мысль что тестить их вобщем-то не стоит.

- возможность независимого тестирования сервисов считается одним из преимуществ SOA-архитектуры (и микросервисов в частности)
8 апр 19, 19:19    [21856420]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
mayton,

Это если четкий ярлык на сервисе: "микросервис".
Размыто всё). Как при REST.
8 апр 19, 19:26    [21856431]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Ну... пока прозвучали дежурные фразы. О том что Волга впадает
в Каспийское море и зимой люди топят печки
. Как у Чехова.
8 апр 19, 20:14    [21856456]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
love_bach
Member

Откуда:
Сообщений: 496
я пока что пришел к несколько иному заключению: тестить их нужно, но не всегда это целесообразно - придется поднимать какой-то кусок инфраструктуры. это может быть соизмеримо с поднятием всей инфраструктуры на стенде и комплексным тестированием
8 апр 19, 20:52    [21856476]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
Хорошо давайте по второму кругу. Как это делается в нашей конторе по правилам.

Микросервисы тестятся так же как и любой другой сервис.

Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так.

Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube.

Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол.
8 апр 19, 21:14    [21856489]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1009
Sergunka
Хорошо давайте по второму кругу. Как это делается в нашей конторе по правилам.

Микросервисы тестятся так же как и любой другой сервис.

Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так.

Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube.

Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол.


А вот у меня на работе сколько бы люди не тестировали и сколько бы тестов не писали программисты все равно вылазят баги и бывает что сервисы не работают/отключаются и т.д. Так что хз на самом деле...

P.S это сделали еще до моего прихода.
8 апр 19, 21:28    [21856490]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
Tsyklop,

Какие технологии такие и зарплаты
8 апр 19, 21:37    [21856499]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1009
Sergunka, та ЗП норм)
8 апр 19, 22:23    [21856535]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Sergunka, очевидно речь идет об end-to-end?
8 апр 19, 22:23    [21856536]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
mayton
Sergunka, очевидно речь идет об end-to-end?


Да, конечно. Понятно, что не Unit tests.
8 апр 19, 22:45    [21856551]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Ну.. это тестирует полный цикл работы приложения. Уже с поднятием в средах и в докерах.
А мой вопрос вобщем-то касался тестов которые проверяют корректность "в процессе" разработки.
8 апр 19, 22:48    [21856552]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Tsyklop
Sergunka
Хорошо давайте по второму кругу. Как это делается в нашей конторе по правилам.

Микросервисы тестятся так же как и любой другой сервис.

Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так.

Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube.

Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол.


А вот у меня на работе сколько бы люди не тестировали и сколько бы тестов не писали программисты все равно вылазят баги и бывает что сервисы не работают/отключаются и т.д. Так что хз на самом деле...

P.S это сделали еще до моего прихода.

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

тесты не обязаны избавить от багов. они обязаны тебе дать понять что твой код работает в определенных (тобою) условиях так как ты хочешь. и всё.

насчет задира к фразе микросервисы их определению и т.п.

мое имхо - тестировать не надо только геттеры и сеттеры (если в них ничего нету кроме чтения и присваивания) остальное тестить надо.

если в твоем микросервисе нихера нету ни логики ни кода (тут кто то пишет их из 3х строчек) -- то прости, нафиа вообще ты этот мусор пишешь? где 98% это бойлерплейт и 2% это вывод в логи.
8 апр 19, 23:00    [21856555]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6219
mayton
Привет.

Топик возник в виде логического продожления нашего спора здесь
https://www.sql.ru/forum/1311165/testirovanie-chto-imenno-testirovat-kak-opredelit-seredinu

У меня возникла мысль что тестить их вобщем-то не стоит.

Вобщем вот как-то так.

Прошу ваши каменты.
ясен пень стоит. фулл набором юниттестов.

но это одна из самых ублюдочных технологий последних хайпов, так что жрите не подавитесь =)
8 апр 19, 23:29    [21856557]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Самая ублюдочная это серверлесс облачная херня
8 апр 19, 23:44    [21856560]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Wow-wow! Коллеги. Придержите коней! Чтож вы на старте спалились!
9 апр 19, 00:14    [21856569]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
mayton
Ну.. это тестирует полный цикл работы приложения. Уже с поднятием в средах и в докерах.
А мой вопрос вобщем-то касался тестов которые проверяют корректность "в процессе" разработки.


А в чем отличие? В разработке там сложности, что каждый понимает как работает фича по-своему так что без покрытия тестами если этот момент упустить в начале то будет очень бо-бо в конце. Потом рефакторинг который делается практически каждый день при разработке без покрытия фиг сделаешь я уж не говорю во время баг фиксинга.

Обычно зарядил в ветку на гите и CI подхватил и проверил билд. Если какой косяк в тестах CI тут же разослал на емейлы. Можно и до комита в ветку самому проверить на локальном кластере если умеешь это делать. Здесь процентов 70% не умеют... но чаще всего это индусы из вновь прибывших... их учить влом, но если попросят, то учу... из христианского млосердия
9 апр 19, 01:18    [21856594]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Давайте вернемся в самое начало. В родительский топик.
В основу микросервисов (в реализации REST) положен принцип
доступа к т.н. ресурсам. Тоесть правильно организованный
REST-сервис просто предоставляет доступ к репозитарию
с ограниченной семантикой операций. Взять. Положить.
Найти все. Обновить.

Вопрос. В свете вышесказанного мной. Имеет ли смысл
тестировать логику такого REST-сервиса в отрыве от
приложения в целом?
9 апр 19, 01:28    [21856596]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
mayton
Давайте вернемся в самое начало. В родительский топик.
В основу микросервисов (в реализации REST) положен принцип
доступа к т.н. ресурсам. Тоесть правильно организованный
REST-сервис просто предоставляет доступ к репозитарию
с ограниченной семантикой операций. Взять. Положить.
Найти все. Обновить.

Вопрос. В свете вышесказанного мной. Имеет ли смысл
тестировать логику такого REST-сервиса в отрыве от
приложения в целом?


Это вопрос к дизайну наших микросервисов, а не к тестированию. Дизайн должен идти от принципов SOLID.

На самом деле Вы не должны все сводить к трех уровней модели т.е.

1 фронт
2 бизнес логика
3 хранилище

В реальной жизни все сложнее к примеру чаще всего у нас бежит брокер сообщений типо кафки или rabbitMQ и там в общем-то в качестве хранилища выступает очередь или топики как таковые.

Плюс из брокера сообщений может что-то подсасывать в UI и какая-то быстрая аналитика тут же присобачится и тп.

На самом деле закодить весь это зоопарк несложно, сложно понять как это задизайнить, чтоб все работало и собирать проект из микросервисов было удобно на будущее. Чтоб залил свои микросервисы в образы докера и заброооонззззоооовввееллл
9 апр 19, 02:12    [21856601]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Sergunka
Member

Откуда:
Сообщений: 1855
Видио в тему

https://dms.licdn.com/playback/C5105AQE9ONX0RJ5aZA/eddabc8fc50f4d1d8b41bd47ec30dc7d/feedshare-mp4_3300-captions-thumbnails/1507940147251-drlcss?e=1554865200&v=beta&t=gyGzNhsBqDSMBg5SLvH4QyWpbLxSPXvN4Aoj1lNo8Mc
9 апр 19, 05:46    [21856625]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
забыл ник
Member

Откуда:
Сообщений: 2831
Чем микросервис отличается от обычного приложения? К чему тогда вопрос нужно ли его тестировать? Естественно надо, в разумных для проекта пределах, кому то достаточно 500 раз в дебагере вон запустить, ну и ок если работает.
Если вопрос о том как нужно ли тестировать взаимодействие сервисов - то ответ нет, для локальной разработки это не нужно, если вам нужно то у вас говносервисы а не микро. Однако иметь энд ту энд тесткейсы тоже полезно, если они приносят пользу, а не вред, когда на поддержку этих тестов тратится чуть ли не половина времени.
Насчёт тестов в целом - после перехода на скалу, стал писать их в разы меньше, потому что большая часть их ушла тупо компилятору. Strong type system compilator check это лучший юнит тест.
9 апр 19, 06:43    [21856637]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Уж слишком широкий вопрос.
Причем теоретический.
Во первых, в микросервисах есть БЛ. Куда же она делась?
Ведь микросервисы это не ресурсы. Например микросервис:
ЗарегестрироватьЗаявку()
Да. В нём 3-5 строк всего, но и БЛ есть.
...
Во вторых, в больших компаниях и тестирование большое - свой DSL, свои тестировщики. Весь набор типов тестов. Тесты вне проектов и в проектах.
Тесты пишут не программисты.
В маленьких или хайп компаниях это лишняя трата денег.
Это как водопадный метод разразработки сменило экстремальное программирование. Естественный отбор)).
В третьих, при микросервисах добавились тесты чисто для них самих.
Например, устойчивость ПО к падению/перезагрузке сервиса.
Все же работвет асинхронно.
Попробуй смени версию микросервиса:
ОтделКадров.СписокСотрулников()
чтобы предприятие не встало.
9 апр 19, 07:42    [21856654]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
mayton
Давайте вернемся в самое начало. В родительский топик.
В основу микросервисов (в реализации REST) положен принцип
доступа к т.н. ресурсам. Тоесть правильно организованный
REST-сервис просто предоставляет доступ к репозитарию
с ограниченной семантикой операций. Взять. Положить.
Найти все. Обновить.

Вопрос. В свете вышесказанного мной. Имеет ли смысл
тестировать логику такого REST-сервиса в отрыве от
приложения в целом?


нет такой основы. Что за? Откуда ты это черпаешь? Причем опять! Основа микросервиса - это выделенная бизнес единица...она может вообще без реста реализована, на каком нить json-rpc или gRPC или через mq.
Это архитектура rest`а подразумевает, что все есть ресурс, причем совершенно необязательно, что это какая-то статика.
9 апр 19, 08:15    [21856680]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин,
+1
9 апр 19, 09:56    [21856753]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Petro123
Озверин,
+1

неужели он тебя переубедил против того тчо микросервис это 2-4 строчки и всё?
9 апр 19, 09:58    [21856757]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
Petro123
Озверин,
+1

неужели он тебя переубедил против того тчо микросервис это 2-4 строчки и всё?
ты глубже копай. Где в его ПОСЛЕДНЕМ сообщении что нужно 500 строк?
9 апр 19, 10:00    [21856761]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Озверин
mayton
Давайте вернемся в самое начало. В родительский топик.
В основу микросервисов (в реализации REST) положен принцип
доступа к т.н. ресурсам. Тоесть правильно организованный
REST-сервис просто предоставляет доступ к репозитарию
с ограниченной семантикой операций. Взять. Положить.
Найти все. Обновить.

Вопрос. В свете вышесказанного мной. Имеет ли смысл
тестировать логику такого REST-сервиса в отрыве от
приложения в целом?


нет такой основы. Что за? Откуда ты это черпаешь? Причем опять! Основа микросервиса - это выделенная бизнес единица...она может вообще без реста реализована, на каком нить json-rpc или gRPC или через mq.
Это архитектура rest`а подразумевает, что все есть ресурс, причем совершенно необязательно, что это какая-то статика.

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

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

ну а что там потестировать - всегда найдется.
9 апр 19, 10:01    [21856762]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT,
Мои слова 3-5 строк это выделенная минимальная атомарная единица работы.
Есть при этом как плюсы так и минусы (геморрой)
9 апр 19, 10:03    [21856766]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Petro123
Уж слишком широкий вопрос.
Причем теоретический.
Во первых, в микросервисах есть БЛ. Куда же она делась?
Ведь микросервисы это не ресурсы. Например микросервис:
ЗарегестрироватьЗаявку()
Да. В нём 3-5 строк всего, но и БЛ есть.
...
Во вторых, в больших компаниях и тестирование большое - свой DSL, свои тестировщики. Весь набор типов тестов. Тесты вне проектов и в проектах.
Тесты пишут не программисты.
В маленьких или хайп компаниях это лишняя трата денег.

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

а вообще это было бы забавно что вот я говнокод накидал который тестами обложить в принципе не возможно потому что он говно а следом за мной мальчик-юнит-тестировщик с криками гоугоу гоу их обкладывает моками и тестами )) хехех. а я при этом ему объясняю как оно должно работать и что я от этих сервисов и методов ожидаю.
9 апр 19, 10:05    [21856770]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
кстати да, откуда такое мнение что рест прям только со статикой.
есть обратная сторона.
При рест БЛ в ангуляре на клиенте. Что тогда на бэке остается?
9 апр 19, 10:05    [21856771]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
какие тесты? уточняй.
табличку выкладывал
9 апр 19, 10:07    [21856773]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Petro123
andreykaT
кстати да, откуда такое мнение что рест прям только со статикой.
есть обратная сторона.
При рест БЛ в ангуляре на клиенте. Что тогда на бэке остается?

ты ща описал прям 99% всех современных приложений. на беке остается бл, сесурити, авторизация и всё остальное два звена из трех.

забавно ну давай че бэк вообще выбросим будем сразу давать прямой доступ к бд с твоего ангуляра (это возможно) и пусть сами с ней работают. зачем на лишние прослойки?
9 апр 19, 10:08    [21856774]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Petro123
andreykaT
какие тесты? уточняй.
табличку выкладывал

в той таблице написано, что за тесты ответственен программист. или ты еще одну таблицу выкладывал?
9 апр 19, 10:11    [21856779]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT,
Ссыль сюда дай и посмотри
9 апр 19, 10:17    [21856788]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
ты ща описал прям 99% всех современных приложений.
эх, молодость - максимализм. Натягивание совы на глобус))
9 апр 19, 10:18    [21856789]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
забавно ну давай че бэк вообще выбросим
ты про REST впервые услышал?
Вчера трехзвенку разбирали.
))
9 апр 19, 10:20    [21856791]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Озверин
mayton
Давайте вернемся в самое начало. В родительский топик.
В основу микросервисов (в реализации REST) положен принцип
доступа к т.н. ресурсам. Тоесть правильно организованный
REST-сервис просто предоставляет доступ к репозитарию
с ограниченной семантикой операций. Взять. Положить.
Найти все. Обновить.

Вопрос. В свете вышесказанного мной. Имеет ли смысл
тестировать логику такого REST-сервиса в отрыве от
приложения в целом?


нет такой основы. Что за? Откуда ты это черпаешь? Причем опять! Основа микросервиса - это выделенная бизнес единица...она может вообще без реста реализована, на каком нить json-rpc или gRPC или через mq.
Это архитектура rest`а подразумевает, что все есть ресурс, причем совершенно необязательно, что это какая-то статика.

А мы можем тестировать БЛ в отрыве от протокола?
9 апр 19, 10:23    [21856795]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
andreykaT
будем сразу давать прямой доступ к бд с твоего ангуляра (это возможно) и пусть сами с ней работают. зачем на лишние прослойки?


я, конечно, не прямо профессионал ангуляра, но с каких пор на клиенте js можно реализовать доступ к бд?..там же какой-никакой драйвер нужен.
9 апр 19, 10:24    [21856798]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
mayton
Озверин
пропущено...


нет такой основы. Что за? Откуда ты это черпаешь? Причем опять! Основа микросервиса - это выделенная бизнес единица...она может вообще без реста реализована, на каком нить json-rpc или gRPC или через mq.
Это архитектура rest`а подразумевает, что все есть ресурс, причем совершенно необязательно, что это какая-то статика.

А мы можем тестировать БЛ в отрыве от протокола?


если у нас хватило ума выделить бизнес логику в отдельный слой - то да. Наверное, встречный вопрос, с каких пор протокол стал частью бизнес логики? Я понимаю еще в специфичных вещах, где протокол - это бизнес ценность приложения, но в корпоартивном секторе?хм..
9 апр 19, 10:26    [21856804]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин,
Тут вопрос, как выделить БЛ при микросервисах?
Так как я их не поклонник).
Смотрю на них с изумлением))) LOL
Читал что в них БЛ может быть размазана).
9 апр 19, 10:30    [21856809]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Petro123
Озверин,
Тут вопрос, как выделить БЛ при микросервисах?
Так как я их не поклонник).
Смотрю на них с изумлением))) LOL
Читал что в них БЛ может быть размазана).


микросервис - обычное приложение. Там те же слои: dao, service и третий - транспортный(может быть как рест контроллер, так и лиснер для mq. к примеру). Куда выносить бизнес логику - ровно такая же дилемма, как и в обычном приложении - либо это сервис слой + анемичные модели, либо это рич модели, которые вбирают в себя дао и бизнес логику.

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

Рест контроллеры, к примеру, чаще тестируют на то, как он ведет себя при ошибках версионности, проверяют, что на входе стоят нужные валидаторы моделей, проверяют, что при ошибках ответ соответствует схеме и так далее.
9 апр 19, 10:35    [21856822]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Озверин
andreykaT
будем сразу давать прямой доступ к бд с твоего ангуляра (это возможно) и пусть сами с ней работают. зачем на лишние прослойки?


я, конечно, не прямо профессионал ангуляра, но с каких пор на клиенте js можно реализовать доступ к бд?..там же какой-никакой драйвер нужен.

ну типа к бд ж можно по тцп подключиться открытием сокета. на жеесе ж это возможно? ) (честно не в курсе). если нет ну можно сделать минимальный бэк который будет тупо трубой от фронта к базе. и пусть фронты совершенно ни в чем себе не отказывают. даже авторизация аутентификация через бд.
9 апр 19, 10:51    [21856840]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
минимальный бэк который будет тупо
именно. Бэк импотент и делают.
9 апр 19, 10:56    [21856849]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин
микросервис - обычное приложение.

Я и говорю - buzzword.
И весь веб так говорит.
9 апр 19, 10:58    [21856852]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Озверин
mayton
пропущено...

А мы можем тестировать БЛ в отрыве от протокола?


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

Я-же про это тему топика веду. Если исключить end-to-end. То тестировать надо только логику.
9 апр 19, 11:01    [21856855]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
mayton
end-to-end
этому термину вроде пара лет всего).
9 апр 19, 11:12    [21856868]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
andreykaT
Озверин
пропущено...


я, конечно, не прямо профессионал ангуляра, но с каких пор на клиенте js можно реализовать доступ к бд?..там же какой-никакой драйвер нужен.

ну типа к бд ж можно по тцп подключиться открытием сокета. на жеесе ж это возможно? ) (честно не в курсе). если нет ну можно сделать минимальный бэк который будет тупо трубой от фронта к базе. и пусть фронты совершенно ни в чем себе не отказывают. даже авторизация аутентификация через бд.


спринг давно ввел понятие RepositoryRestResource;) Там даже безопасность можно прикрутить.
9 апр 19, 11:14    [21856871]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
andreykaT
Member

Откуда:
Сообщений: 2214
Озверин
andreykaT
пропущено...

ну типа к бд ж можно по тцп подключиться открытием сокета. на жеесе ж это возможно? ) (честно не в курсе). если нет ну можно сделать минимальный бэк который будет тупо трубой от фронта к базе. и пусть фронты совершенно ни в чем себе не отказывают. даже авторизация аутентификация через бд.


спринг давно ввел понятие RepositoryRestResource;) Там даже безопасность можно прикрутить.

да но всё-равно специфика может быть своя у приложения зависимости и т.п. в целом - да.
9 апр 19, 11:59    [21856931]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
Герой дня
Member

Откуда: obmanula.ru
Сообщений: 30534
мы на тестируем так (используем groovy и Spock Framework)


    def "get categories by brand"() throws Exception {
        given:
            final RestDocumentationResultHandler document = this.document.document(
                    requestParameters(param(Parameters.BRAND_ID, "brand.brandId")),
                    pathParameters(param(BASESTORE, "common.baseStore")),
                    responseFields(getListCategoryDtoFD())
            )

            categoryService.getCategoriesByBrand(BRAND_ID_5355970, BASESTORE_A200) >> [CATEGORY_1461428]
        when:
            MockHttpServletResponse response = mockMvc.perform(get(GET_CATEGORIES_BY_BRAND, BASESTORE_A200)
                    .param(Parameters.BRAND_ID, String.valueOf(BRAND_ID_5355970)))
                    .andDo(document)
                    .andReturn()
                    .response
        then:
            response.status == HttpStatus.OK.value()
    }
9 апр 19, 12:08    [21856946]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
alex55555
Member

Откуда:
Сообщений: 2129
mayton
Если исключить end-to-end. То тестировать надо только логику.

А если в исключённой части косяк?

Правильную логику тоже можно криво вставить, дёрнуть и т.д.
9 апр 19, 12:09    [21856948]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
alex55555
mayton
Если исключить end-to-end. То тестировать надо только логику.

А если в исключённой части косяк?

Правильную логику тоже можно криво вставить, дёрнуть и т.д.

Давайте так. Есть бизнес кейсы. Они должны быть на 100% придавлены UI/End-To-End.
По этим - нет вопросов. Их надо тестить.

А есть другое. Есть модульные. Интеграционные. Вы их тестируете по другому обычно.
Они - шире чем бизнес-кейсы и дешевле в стоимости времени. На пирамиде Фаулера
они нарисованы внизу.
9 апр 19, 14:42    [21857209]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
alex55555
Member

Откуда:
Сообщений: 2129
mayton
alex55555
пропущено...

А если в исключённой части косяк?

Правильную логику тоже можно криво вставить, дёрнуть и т.д.

Давайте так. Есть бизнес кейсы. Они должны быть на 100% придавлены UI/End-To-End.
По этим - нет вопросов. Их надо тестить.

А есть другое. Есть модульные. Интеграционные. Вы их тестируете по другому обычно.
Они - шире чем бизнес-кейсы и дешевле в стоимости времени. На пирамиде Фаулера
они нарисованы внизу.

Тогда я не понял, что "исключить" трактуется как "отложить на потом".

Вообще же покрывать надо по максимуму, без выделения геттеров/сеттеров или чего-то ещё. Другое дело, что геттеры неявным образом тестируются в тестах, которые проверяют функционал, использующий геттеры. Точно так же и про вставку логики - если есть уверенность, что сам вызов будет протестирован, тогда вставку тестировать нет необходимости (проверяем только логику). Но если нет уверенности, что все вставки покрыты кейсами для других подзадач, тогда критический баг может оказаться незамеченным. Хотя и здесь можно ещё посмотреть на цену ошибки и сравнить с ценой её вылавливания.
10 апр 19, 13:04    [21858219]     Ответить | Цитировать Сообщить модератору
 Re: Как тестировать микросервисы?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41056
Да. Забудем про геттеры вообще. Если находятся извращенцы которые вкладывают в геттер больше
смысла чем просто вернуть значение свойства - то это конечно надо закрепить. Но с точки зрения
читающего бин это оуе... ть как неочевидно.
10 апр 19, 16:00    [21858496]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Java Ответить