| 
 | 
| 
 
Как тестировать микросервисы? 
 | 
|||
|---|---|---|---|
| 
 #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&fpage=29&tid=2121377]:  | 
    0ms | 
get settings:  | 
    7ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    42ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    66ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 12ms | 
| total: | 159ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...