Микросервистерди тестирлөө - башталгычтарга колдонмо

Микросервистерди сыноо уламдан-улам актуалдуу болуп баратат, анткени көптөгөн жаңы тиркемелер Микросервис архитектурасынын жардамы менен курулуп жатат.

Микросервистерди кантип текшерип көрүүгө мүмкүнчүлүк берүүдөн мурун, алгач алардын эмне экендигин түшүнүшүбүз керек.



Микросервис деген эмне?

Микросервис архитектуралык стиль, кызмат көрсөтүүлөрдүн пакети катары бирдиктүү тиркемени иштеп чыгуу ыкмасы катары аныкталат. Ар бир кызмат өзүнүн мүнөздөмөлөрү менен аныкталат, алардын айрымдары:


  • Анын жүрүшүндө иштеп жатат.
  • Жеңил механизм менен көп учурда HTTP ресурстук API менен байланышуу.
  • Толугу менен автоматташтырылган техника менен өз алдынча жайгаштырылат.
  • Ар кандай программалоо тилдерин / технологияларын / МБны колдонуу.
  • Ар кандай маалыматтарды сактоо технологияларын колдонуп жатат.

Микросервистин архитектуралык стили ар бири өзүнүн жеке процессинде иштеген жана HTTP булагы API сыяктуу жеңил механизмдер менен байланышкан чакан кызматтардын пакети катары чогуу иштей турган бирден-бир тиркемени иштеп чыгууну камтыйт. Бул кызматтар борборлоштурулган минималдуу башкарууну талап кылат, ар кандай маалыматтарды сактоо технологияларын колдонот жана ар кандай программалоо тилдеринде жазылышы мүмкүн. Ишкердик мүмкүнчүлүктөрдүн айланасында курулган бул кызматтарды толугу менен автоматташтырылган жайылтууну колдогон техника өз алдынча жайгаштыра алат.

Микросервис мүнөздөмөлөрү:


  • Бизнес жөндөмдүүлүгүнүн тегерегинде уюштурулган,
  • Автоматтык жайгаштыруу,
  • Кызмат автобуста эмес, акыркы чекиттерде интеллект,
  • Тилдерди жана маалыматтарды борбордон ажыратылган көзөмөлдөө.


Микросервис SOAдан кандайча айырмаланат

  • Кызматка багытталган архитектура (SOA): компьютердик программанын дизайнындагы архитектуралык үлгү, анда колдонмо компоненттери башка компоненттерге байланыш протоколу аркылуу кызмат көрсөтөт, адатта тармак аркылуу.
  • Микросервис : Татаал колдонмолор тил-агностикалык API колдонуп, бири-бири менен байланышкан чакан, көзкарандысыз процесстерден турган программалык архитектуранын стили

Мисалы:

Эгерде Uber SOA менен курулган болсо, анда алардын кызматтары төмөнкүлөр болушу мүмкүн:

  • GetPaymentsAndDriverInformationAndMappingDataAPI
  • AuthenticateUsersAndDriversAPI

Эгер Uber микросервистер менен курулган болсо, анда алардын API'лери төмөнкүдөй болушу мүмкүн:

  • SubmitPaymentsService
  • GetDriverInfoService
  • GetMappingDataService
  • AuthenticateUserService
  • AuthenticateDriverService

Көбүрөөк APIлер, милдеттердин топтомдору.




Микросервистерди кантип текшерсе болот

Бирдик тесттери

Бирдик тесттери колдонмонун функциясы сыяктуу программалык камсыздоонун кичинекей бөлүктөрүн колдонуп, белгилүү кирүүлөрдүн жыйындысы менен каалаган натыйжаны чыгаргандыгын аныктайт.

Белгилей кетүүчү нерсе, бирдиктүү тестирлөө тутумдун жүрүм-турумуна кепилдик бербейт. Бизге микросервистерди текшерүүнүн башка түрлөрү керек.

Компоненттик тесттер

Микросервистин ичиндеги бардык функцияларды бирдиктүү тестирлөөдөн өткөргөндөн кийин, биз өзүнчө өзүнчө микросервисти сынап көрүшүбүз керек.

Адатта, тиркеме бир катар микросервистерден турмак, андыктан өзүнчө сыноо үчүн, биз башка микросервистерди шылдыңдашыбыз керек.


Компоненттик тесттер ошондой эле микросервистин анын көз карандылыгы менен, мисалы, маалымат базасы сыяктуу өз ара аракеттенишин, бардыгы бир бирдик катары текшерет.

Интеграциялоо тесттери

Ар бир микросервистин иштешин текшерип чыккандан кийин, кызматтар аралык байланышты текшерип көрүшүбүз керек. Интеграциялык тест интерфейстин кемчиликтерин аныктоо үчүн байланыш жолдорун жана компоненттердин ортосундагы өз ара байланышты текшерет

Кызмат чалуулары тышкы кызматтарга интеграциялоо менен жүргүзүлүшү керек, анда ката жана ийгилик учурлары камтылышы керек, андыктан интеграциялык тестирлөө тутумдун үзгүлтүксүз иштеп жаткандыгын жана кызматтардын ортосундагы көз карандылык күткөндөй болгонун тастыктайт.

Контракттык тесттер

Келишим сыноолору тышкы кызматтын чек арасындагы өз ара аракетти керектөө кызматы күткөн келишимге жооп берет деп ырастайт.


Тестирлөөнүн бул түрү ар бир кызматты кара кутуча катары карашы керек жана бардык кызматтар өз алдынча чакырылып, алардын жооптору текшерилиши керек.

'Келишим' - бул колдонуучунун контракттык тестирлөөсү аркылуу кызматтык чалууну (белгилүү бир натыйжалар же натыйжалар күтүлүп жаткан жерде) кандайча аташат. Ар бир керектөөчү кызмат өзгөрсө дагы, убакыттын өтүшү менен кызматтан бирдей натыйжаларды алышы керек. Кийинчерээк Жоопторго талап кылынгандай көбүрөөк функцияларды кошуу үчүн ийкемдүүлүк болушу керек. Бирок, бул толуктоолор кызматтын функциясын бузбашы керек.

Аягынан аягына чейин тесттер

Аягынан аягына чейинки тесттердин ролу - бул баарынын бири-бирине байланыштуу экендигин жана микросервистердин ортосунда жогорку деңгээлдеги келишпестиктердин жоктугун текшерүү.

Аягынан аягына чейин тесттер тутумдун тышкы талаптарга жооп бергендигин жана максатына жеткендигин текшерип, бүткүл тутумду аягынан аягына чейин сынап көрөт.


Тесттер ошондой эле бардык процесс жана колдонуучу агымдары, анын ичинде бардык кызматтар жана МБ интеграциясы туура иштегендигин тастыктайт. Бир нече кызматтарга таасир этүүчү операцияларды кылдаттык менен текшерүү тутумдун бирдиктүү иштешин жана бардык талаптарды канааттандыруусун камсыз кылат.



Микросервистерди тестирлөөнүн мисалы

Микросервисин алалы TO башка эки кызматтан көз каранды Б & C . Сиз абалы турган обочолонгон чөйрөнү орнотушуңуз керек TO , Б жана C жакшы аныкталган жана бир нече жолу орнотулган болушу мүмкүн.

Мисалы, абал / сактоо Б жана C алдын-ала инициалдаштырылышы керек. Андан кийин, сиз жөн гана микросервистин API'лерин тестирлөөнүн топтомун иштетесиз TO кадимки REST / WebService тест куралдарынын топтомун колдонуп, мис. САМЫН же Chakram же программалоо тилиңиз үчүн жөнөкөй xUnit альтернатива.

API restito колдонуудан көз каранды болгон бардык теңдеш кызматтарды шылдыңдоо. Башка альтернатива - эс алуучу, WireMock жана Mochito.

Микросервистерди интеграциялык тестирлөөдө 3-тараптын APIлерин шылдыңдоо / жасалма жол менен чечүү кыйын. Жогоруда айтылган шылдыңдоочу шаймандардын бирин колдонсоңуз болот, жөн гана мазактоолорду биздин сыноо шайманынын бир бөлүгү катары карап, жаңы API чыгарылыштары менен жаңырганыңызды текшерип коюңуз.