|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Привет. Топик возник в виде логического продожления нашего спора здесь https://www.sql.ru/forum/1311165/testirovanie-chto-imenno-testirovat-kak-opredelit-seredinu У меня возникла мысль что тестить их вобщем-то не стоит. Вобщем вот как-то так. Прошу ваши каменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:01 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonУ меня возникла мысль что тестить их вобщем-то не стоит. - возможность независимого тестирования сервисов считается одним из преимуществ SOA-архитектуры (и микросервисов в частности) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:19 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
mayton, Это если четкий ярлык на сервисе: "микросервис". Размыто всё). Как при REST. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:26 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Ну... пока прозвучали дежурные фразы. О том что Волга впадает в Каспийское море и зимой люди топят печки . Как у Чехова. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 20:14 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
я пока что пришел к несколько иному заключению: тестить их нужно, но не всегда это целесообразно - придется поднимать какой-то кусок инфраструктуры. это может быть соизмеримо с поднятием всей инфраструктуры на стенде и комплексным тестированием ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 20:52 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Хорошо давайте по второму кругу. Как это делается в нашей конторе по правилам. Микросервисы тестятся так же как и любой другой сервис. Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так. Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube. Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 21:14 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
SergunkaХорошо давайте по второму кругу. Как это делается в нашей конторе по правилам. Микросервисы тестятся так же как и любой другой сервис. Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так. Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube. Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол. А вот у меня на работе сколько бы люди не тестировали и сколько бы тестов не писали программисты все равно вылазят баги и бывает что сервисы не работают/отключаются и т.д. Так что хз на самом деле... P.S это сделали еще до моего прихода. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 21:28 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Tsyklop, Какие технологии такие и зарплаты ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 21:37 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Sergunka, та ЗП норм) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 22:23 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Sergunka, очевидно речь идет об end-to-end? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 22:23 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonSergunka, очевидно речь идет об end-to-end? Да, конечно. Понятно, что не Unit tests. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 22:45 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Ну.. это тестирует полный цикл работы приложения. Уже с поднятием в средах и в докерах. А мой вопрос вобщем-то касался тестов которые проверяют корректность "в процессе" разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 22:48 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
TsyklopSergunkaХорошо давайте по второму кругу. Как это делается в нашей конторе по правилам. Микросервисы тестятся так же как и любой другой сервис. Сначала пишутся сценарии тестирования т.е. описывается Cucumber в стиле если это то так, если вот это то вот так. Потом ставится микросервис и запускаются сценарии. Все это делается через классический CI/CD c покрытием либо на coverity или sonarqube. Под микросервисом чаще всего понимается сервис полученный через оркестрацию облачных сервисов обычно используется REST или websocket для общения с микросервисом. Так же вполне может быть что-то из экзотики на вроде gRPC протокол. А вот у меня на работе сколько бы люди не тестировали и сколько бы тестов не писали программисты все равно вылазят баги и бывает что сервисы не работают/отключаются и т.д. Так что хз на самом деле... P.S это сделали еще до моего прихода. боб мартин на эту тему хорошо сказал - типа тесты не гарантируют что работает правильно. они гарантируют что работает без ошибок :) (сам тест. это как градусник который показывает температуру себя. а куда ты его засунешь - это уже твое личное дело). тесты не обязаны избавить от багов. они обязаны тебе дать понять что твой код работает в определенных (тобою) условиях так как ты хочешь. и всё. насчет задира к фразе микросервисы их определению и т.п. мое имхо - тестировать не надо только геттеры и сеттеры (если в них ничего нету кроме чтения и присваивания) остальное тестить надо. если в твоем микросервисе нихера нету ни логики ни кода (тут кто то пишет их из 3х строчек) -- то прости, нафиа вообще ты этот мусор пишешь? где 98% это бойлерплейт и 2% это вывод в логи. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 23:00 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonПривет. Топик возник в виде логического продожления нашего спора здесь https://www.sql.ru/forum/1311165/testirovanie-chto-imenno-testirovat-kak-opredelit-seredinu У меня возникла мысль что тестить их вобщем-то не стоит. Вобщем вот как-то так. Прошу ваши каменты.ясен пень стоит. фулл набором юниттестов. но это одна из самых ублюдочных технологий последних хайпов, так что жрите не подавитесь =) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 23:29 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Самая ублюдочная это серверлесс облачная херня ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 23:44 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Wow-wow! Коллеги. Придержите коней! Чтож вы на старте спалились! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 00:14 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonНу.. это тестирует полный цикл работы приложения. Уже с поднятием в средах и в докерах. А мой вопрос вобщем-то касался тестов которые проверяют корректность "в процессе" разработки. А в чем отличие? В разработке там сложности, что каждый понимает как работает фича по-своему так что без покрытия тестами если этот момент упустить в начале то будет очень бо-бо в конце. Потом рефакторинг который делается практически каждый день при разработке без покрытия фиг сделаешь я уж не говорю во время баг фиксинга. Обычно зарядил в ветку на гите и CI подхватил и проверил билд. Если какой косяк в тестах CI тут же разослал на емейлы. Можно и до комита в ветку самому проверить на локальном кластере если умеешь это делать. Здесь процентов 70% не умеют... но чаще всего это индусы из вновь прибывших... их учить влом, но если попросят, то учу... из христианского млосердия ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 01:18 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Давайте вернемся в самое начало. В родительский топик. В основу микросервисов (в реализации REST) положен принцип доступа к т.н. ресурсам. Тоесть правильно организованный REST-сервис просто предоставляет доступ к репозитарию с ограниченной семантикой операций. Взять. Положить. Найти все. Обновить. Вопрос. В свете вышесказанного мной. Имеет ли смысл тестировать логику такого REST-сервиса в отрыве от приложения в целом? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 01:28 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonДавайте вернемся в самое начало. В родительский топик. В основу микросервисов (в реализации REST) положен принцип доступа к т.н. ресурсам. Тоесть правильно организованный REST-сервис просто предоставляет доступ к репозитарию с ограниченной семантикой операций. Взять. Положить. Найти все. Обновить. Вопрос. В свете вышесказанного мной. Имеет ли смысл тестировать логику такого REST-сервиса в отрыве от приложения в целом? Это вопрос к дизайну наших микросервисов, а не к тестированию. Дизайн должен идти от принципов SOLID. На самом деле Вы не должны все сводить к трех уровней модели т.е. 1 фронт 2 бизнес логика 3 хранилище В реальной жизни все сложнее к примеру чаще всего у нас бежит брокер сообщений типо кафки или rabbitMQ и там в общем-то в качестве хранилища выступает очередь или топики как таковые. Плюс из брокера сообщений может что-то подсасывать в UI и какая-то быстрая аналитика тут же присобачится и тп. На самом деле закодить весь это зоопарк несложно, сложно понять как это задизайнить, чтоб все работало и собирать проект из микросервисов было удобно на будущее. Чтоб залил свои микросервисы в образы докера и заброооонззззоооовввееллл ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 02:12 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Чем микросервис отличается от обычного приложения? К чему тогда вопрос нужно ли его тестировать? Естественно надо, в разумных для проекта пределах, кому то достаточно 500 раз в дебагере вон запустить, ну и ок если работает. Если вопрос о том как нужно ли тестировать взаимодействие сервисов - то ответ нет, для локальной разработки это не нужно, если вам нужно то у вас говносервисы а не микро. Однако иметь энд ту энд тесткейсы тоже полезно, если они приносят пользу, а не вред, когда на поддержку этих тестов тратится чуть ли не половина времени. Насчёт тестов в целом - после перехода на скалу, стал писать их в разы меньше, потому что большая часть их ушла тупо компилятору. Strong type system compilator check это лучший юнит тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 06:43 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Уж слишком широкий вопрос. Причем теоретический. Во первых, в микросервисах есть БЛ. Куда же она делась? Ведь микросервисы это не ресурсы. Например микросервис: ЗарегестрироватьЗаявку() Да. В нём 3-5 строк всего, но и БЛ есть. ... Во вторых, в больших компаниях и тестирование большое - свой DSL, свои тестировщики. Весь набор типов тестов. Тесты вне проектов и в проектах. Тесты пишут не программисты. В маленьких или хайп компаниях это лишняя трата денег. Это как водопадный метод разразработки сменило экстремальное программирование. Естественный отбор)). В третьих, при микросервисах добавились тесты чисто для них самих. Например, устойчивость ПО к падению/перезагрузке сервиса. Все же работвет асинхронно. Попробуй смени версию микросервиса: ОтделКадров.СписокСотрулников() чтобы предприятие не встало. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 07:42 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
maytonДавайте вернемся в самое начало. В родительский топик. В основу микросервисов (в реализации REST) положен принцип доступа к т.н. ресурсам. Тоесть правильно организованный REST-сервис просто предоставляет доступ к репозитарию с ограниченной семантикой операций. Взять. Положить. Найти все. Обновить. Вопрос. В свете вышесказанного мной. Имеет ли смысл тестировать логику такого REST-сервиса в отрыве от приложения в целом? нет такой основы. Что за? Откуда ты это черпаешь? Причем опять! Основа микросервиса - это выделенная бизнес единица...она может вообще без реста реализована, на каком нить json-rpc или gRPC или через mq. Это архитектура rest`а подразумевает, что все есть ресурс, причем совершенно необязательно, что это какая-то статика. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 08:15 |
|
Как тестировать микросервисы?
|
|||
---|---|---|---|
#18+
Озверин, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 09:56 |
|
|
start [/forum/topic.php?fid=59&msg=39798509&tid=2121377]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 238ms |
total: | 402ms |
0 / 0 |