Microservices परीक्षण गर्दै - एक शुरुआत निर्देशक

माईक्रो सर्विसेज टेस्टिंग अधिक र अधिक महत्त्वपूर्ण हुँदै गइरहेको छ किनकि नयाँ अनुप्रयोगहरू मध्ये धेरैले माइक्रो-सर्भिस आर्किटेक्चर प्रयोग गरी निर्माण गरिरहेका छन्।

हामी माइक्रोसेवाइज कसरी टेस्ट गर्ने भनेर हेर्न सक्नु अघि, हामीले पहिले त्यो के हो बुझ्नु आवश्यक छ।



Microservices के हो?

माइक्रोसेभर्सलाई वास्तुगत शैलीको रूपमा परिभाषित गरिएको छ, सेवाहरूको सूटको रूपमा एकल अनुप्रयोग विकास गर्ने दृष्टिकोण। प्रत्येक सेवा यसको विशेषताहरु द्वारा परिभाषित हुन्छ जस मध्ये केहि हुन्:


  • यसको प्रक्रियामा चलिरहेको छ।
  • एक HTTP संसाधन एपीआई को साथ एक हल्का संयन्त्र संग संचार।
  • पूर्ण स्वचालित मेशिनरी द्वारा स्वतन्त्र रूपमा लागू गर्न मिल्ने।
  • बिभिन्न प्रोग्रामिंग भाषाहरू / प्रविधि / DB प्रयोग गर्दै।
  • बिभिन्न डाटा भण्डारण टेक्नोलोजी प्रयोग गर्दैछ।

माइक्रोसर्विस आर्किटेक्चरल शैलीमा एकल अनुप्रयोगहरूको विकास हुन्छ जुन साना सेवाहरूको सूटको रूपमा सँगसँगै काम गर्न सक्दछ, प्रत्येक आफ्नो व्यक्तिगत प्रक्रियामा चल्दै छ र एचटिपी रिसोर्स एपीआई जस्ता हल्का वजनका संयन्त्रहरूसँग सञ्चार गर्दछ। यी सेवाहरूलाई न्यूनतम केन्द्रीयकृत व्यवस्थापन आवश्यक छ, विभिन्न डाटा भण्डारण टेक्नोलोजी प्रयोग गर्नुहोस्, र बिभिन्न प्रोग्रामिंग भाषाहरूमा लेख्न सकिन्छ। यी सेवाहरू, व्यापार क्षमताको वरिपरि निर्मित, पूर्ण रूपमा स्वचालित तैनाती समर्थन गर्ने मेशिनरी द्वारा स्वतन्त्र रूपमा पनि पठाउन सकिन्छ।

Microservices विशेषताहरु:


  • व्यापार क्षमता वरिपरि संगठित,
  • स्वचालित तैनाती,
  • सेवा बसमा भन्दा अन्त्यबिन्दुहरूमा बुद्धिमत्ता,
  • भाषाहरू र डाटाको विकेन्द्रीकृत नियन्त्रण।


कसरी माइक्रोसेवाइसेस SOA भन्दा फरक छन्

  • सेवा उन्मुख वास्तुकला (SOA): कम्प्युटर सफ्टवेयर डिजाइनको एक वास्तुगत ढाँचा जसमा अनुप्रयोग कम्पोनेन्टहरूले संचार प्रोटोकल मार्फत अन्य कम्पोनेन्टहरूलाई सेवाहरू प्रदान गर्दछ, सामान्यतया नेटवर्क मार्फत।
  • Microservices : सफ्टवेयर आर्किटेक्चर शैली जसमा जटिल अनुप्रयोगहरू सानो, स्वतन्त्र प्रक्रियाहरू मिलेर भाषा-अज्ञेष्टिक एपीआई प्रयोग गरेर एक अर्कासँग सञ्चार गर्दै छन्।

उदाहरण:

यदि उबर SOA को साथ निर्माण गरिएको हो भने, तिनीहरूको सेवाहरू हुन सक्छन्:

  • GetPaymentsAndDriverInformationAndMappingDataAPI
  • प्रमाणित प्रयोगकर्ताहरू र एन्ड ड्राईभर्सपीआई

यदि उबर माइक्रोसेवेरिजको साथ निर्माण गरिएको हो भने, उनीहरूको एपीआईहरू अधिक यस्तो हुन सक्छ:

  • सबमिट भुक्तानी सेवा
  • गेटड्राइभरइन्फोसेवा
  • गेटमेपिंगडाटासेवा
  • प्रमाणित प्रयोगकर्ता सेवा
  • प्रमाणित ड्राईभरसेवा

अधिक एपीआई, जिम्मेवारी को सानो सेट।




कसरी माइक्रोसेवाइसेसको परिक्षण गर्ने

एकाई टेस्ट

एकाई परीक्षण सफ्टवेयरको साना टुक्रा व्यायाम गर्दछ जुन अनुप्रयोगमा प्रकार्य हो कि उनीहरूले ज्ञात इनपुटको सेट दिएमा चाहेको आउटपुट उत्पादन गर्छन् कि गर्दैन भनेर निर्धारण गर्न।

यो याद गर्नु उपयुक्त छ कि एकाई परीक्षणले मात्र प्रणालीको व्यवहारको बारेमा ग्यारेन्टी प्रदान गर्दैन। हामीलाई माइक्रोसेवाइसेसको लागि अन्य प्रकारको परीक्षणको आवश्यक पर्दछ।

कम्पोनेन्ट टेस्ट

एकचोटि हामीले एक माइक्रोसर्भिस भित्र सबै प्रकार्यहरूको एकाई परीक्षण गरेका छौं, त्यसो भए हामीले माइक्रोसर्भिसलाई एक्लोटेसनमा परीक्षण गर्नु पर्छ।

सामान्यतया, एप्लिकेसन धेरै संख्यामा माइक्रोसेवेरिसहरू मिलेर बनेको हुन्छ, त्यसैले एक्लोसनमा परीक्षण गर्न हामीले अरू माइक्रोसेवाइसेहरू उपहास गर्नु पर्छ।


कम्पोनेन्ट टेस्टले पनि माइक्रोसर्भिसको अन्तरक्रियाको परीक्षण गर्दछ यसको निर्भरताहरू जस्तै डाटाबेस जस्तै सबै एकाईको रूपमा।

एकीकरण टेस्टहरू

हामीले प्रत्येक माइक्रोसर्भिसको कार्यक्षमता प्रमाणित गरेपछि, त्यसपछि हामीले अन्तर्-सेवा संचारको परीक्षण गर्न आवश्यक पर्दछ। एक एकीकरण परीक्षण इन्टरफेस दोषहरू पत्ता लगाउनको लागि कम्पोनेन्ट मार्गहरू र अन्तर्क्रियाहरू बीचको कुराकानी प्रमाणित गर्दछ

सेवा कलहरू बाह्य सेवाहरूमा एकीकरणको साथ हुनुपर्दछ, जसमा त्रुटि र सफलताका केसहरू समावेश हुनुपर्दछ, यसैले, एकीकरण परीक्षणले प्रमाणित गर्दछ कि प्रणाली एकजुट भएर काम गरिरहेको छ र सेवाहरू बीचको निर्भरताहरू अपेक्षित रूपमा अवस्थित छन्।

करार टेस्ट

अनुबन्ध परीक्षणहरूले बाह्य सेवाको सीमामा अन्तर्क्रियाहरू प्रमाणित गर्दछ कि यसले उपभोक्ता सेवाबाट अपेक्षित अनुबंध पूरा गर्दछ।


यस प्रकारको परीक्षणले प्रत्येक सेवालाई कालो बक्सको रूपमा व्यवहार गर्नुपर्दछ र सबै सेवाहरू स्वतन्त्र रूपमा कल गर्नुपर्दछ र उनीहरूका प्रतिक्रियाहरू प्रमाणित हुनै पर्दछ।

एक 'अनुबन्ध' भनेको कसरी सेवा कल (जहाँ एक विशिष्ट परिणाम वा आउटपुट केहि आगतिको लागि अपेक्षित हुन्छ) उपभोक्ता अनुबन्ध परीक्षणद्वारा सन्दर्भ गरिन्छ। प्रत्येक उपभोक्ताले समयसँगै सेवाबाट उही परिणामहरू प्राप्त गर्नै पर्छ, चाहे सेवा परिवर्तन भए पनि। त्यहाँ प्रतिक्रियाहरु पछि आवश्यक रूपमा अधिक कार्यक्षमता थप्न लचिलोपन हुनुपर्दछ। यद्यपि यी अतिरिक्तहरूले सेवा कार्यक्षमतालाई तोड्नु हुँदैन।

अन्त्य-अन्त-अन्त टेस्टहरू

अन्त-देखि-अन्त परीक्षणहरूको भूमिका भनेको सबै कुरा मिलेर निश्चित गर्नु हो र माइक्रोसर्भेसिसहरू बीच कुनै उच्च-स्तर असहमति छैन।

अन्त्य देखि अन्त परीक्षणहरूले प्रमाणित गर्दछ कि प्रणालीले बाह्य आवश्यकताहरू पूरा गर्दछ र यसको लक्ष्यहरू प्राप्त गर्दछ, सम्पूर्ण प्रणालीको अन्त्यदेखि अन्तसम्म परीक्षण गर्दै।


परीक्षणहरूले यो पनि प्रमाणित गर्दछ कि सम्पूर्ण प्रक्रिया र प्रयोगकर्ता प्रवाह सही रूपमा काम गर्दछन्, सबै सेवा र DB एकीकरण सहित। धेरै सेवाहरूमा असर पुर्‍याउने अपरेशन्सको पूर्ण परीक्षणले यो सुनिश्चित गर्दछ कि प्रणालीले समग्र रूपमा काम गर्दछ र सबै आवश्यकताहरू सन्तुष्ट पार्दछ।



परीक्षण माइक्रो सर्विसेजको उदाहरण

एउटा माइक्रोसेवाइर्स लिनुहोस् TO त्यो दुई अन्य सेवाहरूमा निर्भर गर्दछ B & C । तपाईंले एक अलग वातावरण स्थापना गर्नु पर्छ जहाँको राज्य TO , BC राम्रोसँग परिभाषित छ र बारम्बार सेट अप गर्न सकिन्छ।

उदाहरण को लागी, राज्य / को भंडारण BC पूर्व-आरम्भ हुनु पर्छ। त्यस पछि, तपाईं भर्खरै माइक्रोसर्विसको एपीआई टेस्टिंग परीक्षणहरूको सेट चलाउनुहोस् TO सामान्य REST / WebService परीक्षण उपकरणहरूको सेट प्रयोग गरी, उदाहरणका लागि। SOAP वा चक्रम वा तपाइँको प्रोग्रामिंग भाषा को लागी साधारण xUnit विकल्प।

कुनै पियर सेवाहरू एपीआई पुन: प्रयोगकोमा निर्भर गर्दछ मक गर्नुहोस्। अन्य विकल्पहरूमा आराम ड्राइभर, WireMock, र Mochito समावेश गर्दछ।

यसको स्पष्ट चुनौती भनेको माइक्रोसेरिजको एकीकरण परीक्षण गर्दा तेस्रो पार्टी एपीआईलाई नक्कल गर्ने / नक्कली बनाउने हो। तपाईं माथि उल्लिखित कुनै पनि हाँसोको उपकरण प्रयोग गर्न सक्नुहुनेछ, केवल हाम्रो परीक्षण स्थिरताको भागको रूपमा मकहरू व्यवहार गर्नुहोस् र निश्चित गर्नुहोस् कि तपाईं नयाँ एपीआई विज्ञप्तिको साथ अद्यावधिक हुनुहुन्छ।

रोचक लेख