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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

Откуда:
Сообщений: 1883
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
Сообщений: 6111
mayton
Привет.

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

неужели он тебя переубедил против того тчо микросервис это 2-4 строчки и всё?
9 апр 19, 09:58    [21856757]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Java Ответить