"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > साइप्रस के साथ माइक्रोसर्विसेज की तैनाती और परीक्षण

साइप्रस के साथ माइक्रोसर्विसेज की तैनाती और परीक्षण

2024-11-03 को प्रकाशित
ब्राउज़ करें:453

Deploying and Testing Microservices with Cypress

परिचय

जैसे-जैसे सॉफ्टवेयर आर्किटेक्चर माइक्रोसर्विसेज की ओर बढ़ता है, कई स्वतंत्र सेवाओं के बीच निर्बाध एकीकरण और कार्यक्षमता सुनिश्चित करना तेजी से महत्वपूर्ण हो जाता है। माइक्रोसर्विसेज का प्रभावी ढंग से परीक्षण करने के लिए एक मजबूत, विश्वसनीय और व्यापक दृष्टिकोण की आवश्यकता होती है। साइप्रस, जो अपनी शक्तिशाली एंड-टू-एंड परीक्षण क्षमताओं के लिए जाना जाता है, माइक्रोसर्विस-ओरिएंटेड आर्किटेक्चर (एमएसए) के संदर्भ में माइक्रोसर्विसेज के परीक्षण के लिए एक बढ़िया विकल्प है।

इस पोस्ट में, हम साइप्रस का उपयोग करके माइक्रोसर्विसेज के परीक्षण की प्रक्रिया का पता लगाएंगे और साइप्रस को आपके

में एकीकृत करने के लिए सर्वोत्तम प्रथाओं को कवर करेंगे।

माइक्रोसर्विसेज परिनियोजन पाइपलाइन।

माइक्रोसर्विसेज क्या हैं?
माइक्रोसर्विसेज एक सॉफ्टवेयर विकास वास्तुशिल्प शैली है जो एक एप्लिकेशन को छोटी, शिथिल रूप से युग्मित और स्वतंत्र रूप से तैनात करने योग्य सेवाओं के संग्रह के रूप में संरचना करती है। प्रत्येक माइक्रोसर्विसेज आम तौर पर एक विशिष्ट व्यावसायिक कार्यक्षमता पर ध्यान केंद्रित करती है और एपीआई या मैसेजिंग कतारों के माध्यम से अन्य माइक्रोसर्विसेज के साथ संचार करती है।

माइक्रोसर्विसेज आर्किटेक्चर को पारंपरिक अखंड अनुप्रयोगों की सीमाओं को पार करने के लिए डिज़ाइन किया गया है:

  • स्केलेबिलिटी
  • लचीलापन
  • सेवाओं का स्वतंत्र विकास और परिनियोजन
  • लचीलापन और दोष अलगाव

हालांकि, सेवाओं की बढ़ती संख्या और प्रभावी एपीआई परीक्षण, सेवा-से-सेवा संचार और एंड-टू-एंड सत्यापन की आवश्यकता के कारण माइक्रोसर्विसेज का परीक्षण मोनोलिथिक अनुप्रयोगों के परीक्षण से अधिक जटिल हो सकता है।

माइक्रोसर्विसेज परीक्षण के लिए सरू क्यों?

साइप्रेस व्यापक रूप से अपनी एंड-टू-एंड परीक्षण क्षमताओं के लिए जाना जाता है, खासकर वेब अनुप्रयोगों में। लेकिन माइक्रोसर्विसेज के परीक्षण के लिए उपयोग किए जाने पर यह महत्वपूर्ण लाभ भी लाता है, खासकर जब एपीआई और यूआई घटक शामिल होते हैं। यहां बताया गया है कि साइप्रस माइक्रोसर्विसेज परीक्षण के लिए एक बढ़िया विकल्प क्यों है:

  1. एंड-टू-एंड परीक्षण: साइप्रस यह परीक्षण करने में उत्कृष्ट है कि विभिन्न माइक्रोसर्विसेज कैसे इंटरैक्ट करते हैं और यह सुनिश्चित करते हैं कि कई सेवाओं में संपूर्ण उपयोगकर्ता प्रवाह, अपेक्षा के अनुरूप काम करता है।
  2. एपीआई परीक्षण: माइक्रोसर्विसेज संचार के लिए एपीआई पर बहुत अधिक निर्भर हैं, और साइप्रस शक्तिशाली एपीआई परीक्षण और सत्यापन का समर्थन करता है।
  3. वास्तविक समय परीक्षण: साइप्रस वास्तविक दुनिया के उपयोगकर्ता इंटरैक्शन का अनुकरण कर सकता है और माइक्रोसर्विसेज की प्रतिक्रियाओं का दावा कर सकता है, जो इसे उपयोगकर्ता-केंद्रित परीक्षण के लिए आदर्श बनाता है।
  4. मॉकिंग और स्टबिंग: साइप्रस बाहरी सेवाओं का मॉक करने की अनुमति देता है, जिससे अलग-अलग माइक्रोसर्विसेज का अलग-अलग परीक्षण करना आसान हो जाता है।

साइप्रस के साथ माइक्रोसर्विसेज की तैनाती और परीक्षण के लिए मुख्य रणनीतियाँ

  1. माइक्रोसर्विस परिनियोजन और पर्यावरण सेटअप इससे पहले कि हम माइक्रोसर्विसेज का परीक्षण कर सकें, हमें एक उचित रूप से तैनात वातावरण की आवश्यकता है। आमतौर पर, माइक्रोसर्विसेज को डॉकर या ऑर्केस्ट्रेटर जैसे कुबेरनेट्स जैसे टूल का उपयोग करके कंटेनरीकृत वातावरण में तैनात किया जाता है। प्रत्येक माइक्रोसर्विस स्वतंत्र रूप से चलती है और परिभाषित एपीआई पर संचार करती है।

सेटअप चरण:

  • डॉकर का उपयोग करके अपनी सेवाओं को कंटेनरीकृत करें। प्रत्येक सेवा की अपनी डॉकर फ़ाइल होनी चाहिए।
  • कंटेनर ऑर्केस्ट्रेशन के लिए कुबेरनेट्स का उपयोग करें, यह सुनिश्चित करते हुए कि प्रत्येक माइक्रोसर्विस दूसरों के साथ बातचीत करने के लिए सही ढंग से कॉन्फ़िगर किया गया है।
  • स्थानीय परीक्षण या छोटे वातावरण के लिए, कई माइक्रोसर्विसेज और उनकी निर्भरता को प्रबंधित करने के लिए डॉकर कंपोज़ का उपयोग करें।

माइक्रोसर्विसेज के लिए उदाहरण डॉकर कंपोज़ सेटअप:

version: '3'
services:
  service-a:
    image: service-a-image
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=db
  service-b:
    image: service-b-image
    ports:
      - "8081:8081"
    environment:
      - DB_HOST=db
  db:
    image: postgres
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: mydb

यह कॉन्फ़िगरेशन दोनों माइक्रोसर्विसेज को डेटाबेस साझा करते हुए डॉकर के साथ स्थानीय रूप से तैनात करने की अनुमति देता है।

2. साइप्रस के साथ एपीआई परीक्षण
माइक्रोसर्विसेज परिवेश में, एपीआई सेवाओं के बीच संचार की रीढ़ हैं। इसलिए, एपीआई परीक्षण यह सत्यापित करने के लिए महत्वपूर्ण है कि माइक्रोसर्विसेज एक दूसरे के साथ ठीक से बातचीत करते हैं।

सरू आपको एपीआई अनुरोध करने, प्रतिक्रिया सत्यापित करने और सेवाओं के बीच आदान-प्रदान किए जा रहे डेटा का दावा करने की अनुमति देता है। उदाहरण के लिए, यदि सेवा-ए सेवा-बी को अनुरोध भेजती है, तो साइप्रस अनुरोध और प्रतिक्रिया प्रवाह को सत्यापित कर सकता है।
उदाहरण एपीआई परीक्षण:

describe('API Testing for Service A', () => {
  it('should return data from Service A', () => {
    cy.request('GET', 'http://localhost:8080/api/service-a/data')
      .then((response) => {
        expect(response.status).to.eq(200);
        expect(response.body).to.have.property('data');
      });
  });

  it('should interact with Service B and return the correct response', () => {
    cy.request('POST', 'http://localhost:8080/api/service-a/interact', {
      serviceBData: "sample data"
    })
      .then((response) => {
        expect(response.status).to.eq(200);
        expect(response.body).to.have.property('result');
      });
  });
});

इस परीक्षण में, साइप्रस सर्विस-ए को अनुरोध भेजता है, जो सर्विस-बी के साथ इंटरैक्ट करता है। सेवा-बी की प्रतिक्रिया को परीक्षण में मान्य किया गया है।

3. अनेक माइक्रोसर्विसेज़ में शुरू से अंत तक परीक्षण
साइप्रस का उपयोग एंड-टू-एंड परीक्षण के लिए भी किया जा सकता है, जिसमें कई माइक्रोसर्विसेज में फैली उपयोगकर्ता यात्राओं का परीक्षण शामिल है। उदाहरण के लिए, एक सामान्य ई-कॉमर्स एप्लिकेशन में प्रमाणीकरण, उत्पाद प्रबंधन और ऑर्डर प्रोसेसिंग के लिए अलग-अलग सेवाएँ हो सकती हैं। साइप्रस यूआई को नेविगेट करने और इन सेवाओं के लिए अनुरोध करने वाले उपयोगकर्ता का अनुकरण कर सकता है।

उपयोगकर्ता प्रमाणीकरण और उत्पाद खरीद के लिए उदाहरण E2E परीक्षण:

describe('End-to-End Test for E-commerce Microservices', () => {
  it('should log in and purchase a product', () => {
    // Test authentication microservice
    cy.visit('/login');
    cy.get('input[name="email"]').type('[email protected]');
    cy.get('input[name="password"]').type('password123');
    cy.get('button[type="submit"]').click();

    // Test product listing microservice
    cy.contains('Products').click();
    cy.get('.product-card').first().click();

    // Test order service
    cy.get('button.add-to-cart').click();
    cy.get('button.checkout').click();

    // Assert the successful purchase
    cy.contains('Order Confirmation').should('exist');
  });
});

इस उदाहरण में, साइप्रस एक उपयोगकर्ता को लॉग इन करने, उत्पादों को ब्राउज़ करने, कार्ट में उत्पाद जोड़ने और खरीदारी पूरी करने का अनुकरण करता है। यह प्रवाह कई माइक्रोसर्विसेज के बीच एकीकरण का परीक्षण करता है, यह सुनिश्चित करता है कि वे एक साथ निर्बाध रूप से काम करते हैं।

4. साइप्रस के साथ माइक्रोसर्विसेज का मजाक उड़ाना और स्टबिंग करना
माइक्रोसर्विसेज के साथ चुनौतियों में से एक परीक्षण के दौरान अन्य सेवाओं पर निर्भरता है। यदि कोई सेवा बंद है या तैयार नहीं है, तो यह परीक्षण प्रक्रिया को अवरुद्ध कर सकती है। साइप्रस निर्भर सेवाओं से प्रतिक्रियाओं का नकल करने के लिए मॉकिंग और स्टबिंग क्षमताएं प्रदान करता है। इस तरह, आप दूसरों की उपलब्धता पर भरोसा किए बिना प्रत्येक माइक्रोसर्विस का अलग-अलग परीक्षण कर सकते हैं।

उदाहरण: साइप्रस में एक सेवा का मज़ाक उड़ाना:

cy.intercept('GET', '/api/service-b/data', {
  statusCode: 200,
  body: { result: 'Mocked Response' }
}).as('getServiceBData');

// Test with mocked service
cy.request('GET', '/api/service-a/uses-service-b').then((response) => {
  expect(response.body).to.have.property('result', 'Mocked Response');
});

इस परीक्षण में, साइप्रस सर्विस-बी की प्रतिक्रिया का मजाक उड़ाता है, यह सुनिश्चित करते हुए कि वास्तविक सर्विस-बी के ऑनलाइन होने की आवश्यकता के बिना भी सर्विस-ए का परीक्षण किया जा सकता है।

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

उदाहरण: परीक्षण सेवा समयबाह्य:

cy.intercept('POST', '/api/service-b/interact', {
  statusCode: 504,  // Simulate gateway timeout
  body: { error: 'Service Unavailable' }
}).as('interactWithServiceB');

// Test service resilience
cy.request({
  method: 'POST',
  url: '/api/service-a/interact',
  failOnStatusCode: false  // Prevent failure on 504 status code
}).then((response) => {
  expect(response.status).to.eq(504);
  expect(response.body).to.have.property('error', 'Service Unavailable');
});

यह परीक्षण सर्विस-बी पर नेटवर्क टाइमआउट का अनुकरण करता है और जांचता है कि सर्विस-ए त्रुटि को कैसे शालीनता से संभालती है।

माइक्रोसर्विसेज में साइप्रस परीक्षण के लिए सर्वोत्तम अभ्यास

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

निष्कर्ष

सेवाओं के बीच बातचीत की जटिलता के कारण माइक्रोसर्विसेज का परीक्षण चुनौतीपूर्ण हो सकता है। हालाँकि, साइप्रस अपने शक्तिशाली एपीआई परीक्षण, एंड-टू-एंड परीक्षण और मॉकिंग सुविधाओं के साथ प्रक्रिया को सरल बनाने के लिए आवश्यक उपकरण प्रदान करता है। अपने माइक्रोसर्विसेज आर्किटेक्चर में साइप्रस का उपयोग करके, आप यह सुनिश्चित कर सकते हैं कि आपकी सेवाएँ एक साथ निर्बाध रूप से काम करती हैं और वास्तविक दुनिया के परिदृश्यों को प्रभावी ढंग से संभालती हैं।

इस पोस्ट में उल्लिखित रणनीतियों और सर्वोत्तम प्रथाओं का पालन करके, आप अपने माइक्रोसर्विसेज के लिए एक व्यापक परीक्षण सूट बना सकते हैं और आत्मविश्वास से उन्हें उत्पादन में तैनात कर सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/asvani25/deploying-and-testing-microservices-with-cypress-4la5?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3