Tikrinti mikropaslaugas tampa vis svarbiau, nes daugelis naujų programų kuriamos naudojant „Microservices“ architektūrą.
Kad galėtume sužinoti, kaip išbandyti mikroservisus, pirmiausia turime suprasti, kokie jie yra.
„Mikroservisas“ apibrėžiamas kaip architektūros stilius, požiūris į vienos programos kaip paslaugų rinkinio kūrimą. Kiekvieną paslaugą apibūdina jos savybės, iš kurių kai kurios yra:
Mikropaslaugų architektūros stilius apima atskirų programų, galinčių veikti kartu kaip mažų paslaugų rinkinį, kūrimą, kiekvienas veikia atskirai ir bendrauja su lengvais mechanizmais, tokiais kaip HTTP išteklių API. Šioms paslaugoms reikalingas minimalus centralizuotas valdymas, naudojamos skirtingos duomenų saugojimo technologijos ir jos gali būti parašytos skirtingomis programavimo kalbomis. Šios paslaugos, pagrįstos verslo galimybėmis, taip pat gali būti įdiegtos savarankiškai mašinomis, palaikančiomis visiškai automatizuotą diegimą.
Mikroservikų charakteristikos:
Pavyzdys:
Jei „Uber“ būtų pastatytas su SOA, jų paslaugos galėtų būti:
Jei „Uber“ būtų kuriamas naudojant mikropaslaugas, jų API galėtų būti panašesni į:
Daugiau API, mažesni atsakomybės rinkiniai.
Vieneto testai naudoja mažas programinės įrangos dalis, pvz., Funkciją programoje, kad nustatytų, ar jie sukuria norimą išvestį, atsižvelgiant į žinomų įvesties rinkinį.
Verta paminėti, kad vien vieneto testavimas nesuteikia garantijų apie sistemos elgseną. Mums reikia kitų tipų mikropaslaugų testavimo.
Kai mes atliksime visų funkcijų vienetinį testavimą mikroservise, tada turėtume atskirai išbandyti pačią mikroservistą.
Paprastai programą sudarytų daugybė mikropaslaugų, todėl norėdami išbandyti atskirai, turime tyčiotis iš kitų mikropaslaugų.
Komponentiniai testai taip pat patikrins mikroserviso sąveiką su jos priklausomybėmis, tokiomis kaip duomenų bazė, kaip vieną vienetą.
Patikrinę kiekvienos mikroserviso funkcionalumą, turime išbandyti tarpžinybinį ryšį. Integravimo testas patikrina komponentų ryšio kelius ir sąveiką, kad būtų galima nustatyti sąsajos defektus
Tarnybiniai skambučiai turi būti atliekami integruojant išorines paslaugas, kurios turėtų apimti klaidų ir sėkmės atvejus, taigi integracijos testavimas patvirtina, kad sistema veikia sklandžiai ir kad priklausomybės tarp paslaugų yra numatytos.
Sutarties testai patikrina sąveiką išorės paslaugos ribose, teigdami, kad ji atitinka sutartį, kurios tikisi vartojanti paslauga.
Tokio tipo bandymai turėtų kiekvieną paslaugą laikyti juodąja dėže, o visos paslaugos turi būti iškviestos savarankiškai ir jų atsakymai turi būti patikrinti.
„Sutartis“ yra tai, kaip paslaugos skambutis (kai tikimasi konkretaus rezultato ar produkcijos, susijusios su tam tikromis sąnaudomis) nurodomas vartotojo sutarties testavime. Kiekvienas vartotojas laikui bėgant turi gauti tuos pačius paslaugos rezultatus, net jei paslauga keičiasi. Turėtų būti lanksčiai pridėti daugiau funkcijų, kaip reikalaujama vėliau Atsakymuose. Tačiau šie papildymai neturi sugadinti paslaugos funkcionalumo.
„End-to-end“ testų vaidmuo yra įsitikinti, kad viskas susisieja ir nėra aukšto lygio nesutarimų tarp mikro paslaugų.
„End-to-end“ testai patikrina, ar sistema atitinka išorinius reikalavimus ir pasiekia savo tikslus, išbandydami visą sistemą nuo galo iki galo.
Testai taip pat patikrina, ar visas procesas ir vartotojų srautai veikia tinkamai, įskaitant visas paslaugų ir DB integracijas. Nuodugniai patikrinus operacijas, turinčias įtakos kelioms paslaugoms, užtikrinama, kad sistema veiktų kartu ir atitiktų visus reikalavimus.
Paimkime mikropaslaugą Į tai priklauso nuo dviejų kitų paslaugų B & C . Jums reikia sukurti izoliuotą aplinką, kurioje yra Į , B ir C yra gerai apibrėžta ir gali būti pakartotinai nustatyta.
Pavyzdžiui, būsena / saugojimas B ir C turėtų būti iš anksto inicializuota. Po to jūs tiesiog paleisite testų rinkinį, bandantį mikroserviso API Į naudojant įprastą REST / WebService testavimo įrankių rinkinį, pvz. MUILAS arba Čakramas arba paprasta „xUnit“ alternatyva jūsų programavimo kalbai.
Pasityčiokite iš visų lygiaverčių paslaugų, kurių API priklauso nuo „restito“ naudojimo. Kitos alternatyvos yra poilsio vairuotojas, „WireMock“ ir „Mochito“.
Akivaizdus iššūkis yra pasityčiojimas iš trečiųjų šalių API, kai atliekami integruoti mikropaslaugų testai. Galite naudoti bet kurį iš aukščiau paminėtų pasityčiojimo įrankių, tiesiog traktuokite maketus kaip mūsų bandymo įrenginio dalį ir įsitikinkite, kad esate atnaujinti naujus API leidimus.