आधुनिक माइक्रोसर्विसेज आर्किटेक्चर में, एप्लिकेशन अक्सर एपीआई के माध्यम से अंतर-सेवा संचार पर बहुत अधिक निर्भर होते हैं। यह सुनिश्चित करना महत्वपूर्ण है कि ये एपीआई विकास के दौरान और परिवर्तनों के बाद भी अपेक्षा के अनुरूप काम करते रहें। इसे हासिल करने का एक प्रभावी तरीका उपभोक्ता संचालित अनुबंध परीक्षण (सीडीसीटी) है। सीडीसीटी एक ऐसी विधि है जो यह सुनिश्चित करती है कि सेवाएं (निर्माता) उन सेवाओं द्वारा निर्धारित अपेक्षाओं का पालन करें जो उनके एपीआई (उपभोक्ताओं) का उपभोग करती हैं।
इस गाइड में, हम जानेंगे कि सीडीसीटी क्या है, यह कैसे काम करती है, विश्वसनीय माइक्रोसर्विसेज इंटरैक्शन सुनिश्चित करने में इसका महत्व है, और आप पैक्ट जैसे टूल का उपयोग करके इसे कैसे कार्यान्वित कर सकते हैं।
उपभोक्ता-संचालित अनुबंध परीक्षण क्या है?
उपभोक्ता-संचालित अनुबंध परीक्षण एक परीक्षण रणनीति है जो वितरित वास्तुकला में सेवाओं के बीच संचार को सहमत अनुबंधों का पालन करना सुनिश्चित करती है। यह केवल एपीआई के सही ढंग से काम करने को सुनिश्चित करने के बजाय उपभोक्ता की जरूरतों पर ध्यान केंद्रित करके पारंपरिक एपीआई परीक्षण से भिन्न है। एपीआई उपभोक्ता और प्रदाता के बीच अनुबंध उपभोक्ता की अपेक्षाओं से परिभाषित होता है, और यह अनुबंध प्रदाता के कार्यान्वयन के विरुद्ध सत्यापित होता है।
महत्वपूर्ण पदों:
• उपभोक्ता: वह सेवा जो एपीआई का उपभोग करती है।
• प्रदाता (निर्माता): वह सेवा जो एपीआई प्रदान करती है।
• अनुबंध: उपभोक्ता और प्रदाता के बीच एक औपचारिक समझौता जो अपेक्षित एपीआई व्यवहार को निर्दिष्ट करता है।
यह कैसे काम करता है?
उपभोक्ता-संचालित अनुबंध परीक्षण का महत्व
वितरित आर्किटेक्चर में, विशेष रूप से माइक्रोसर्विसेज के साथ, सेवाओं के बीच निर्भरता का प्रबंधन अधिक जटिल हो जाता है। सीडीसीटी इस जटिलता को कई तरीकों से कम करने में मदद करता है:
1. उत्पादन में टूट-फूट को रोकता है
चूंकि उपभोक्ता परिभाषित करते हैं कि उन्हें क्या चाहिए, प्रदाता के एपीआई में जो परिवर्तन उपभोक्ता की अपेक्षाओं को पूरा नहीं करते हैं, उन्हें विकास पाइपलाइन में जल्दी ही पकड़ लिया जाता है। इससे असंगत परिवर्तनों के कारण उत्पादन प्रणालियों के टूटने का जोखिम कम हो जाता है।
2. वियुग्मन विकास
उपभोक्ता-संचालित अनुबंध परीक्षण उपभोक्ताओं और प्रदाताओं को स्वतंत्र रूप से विकसित होने की अनुमति देता है। यह विशेष रूप से तब उपयोगी होता है जब टीमें या सेवाएँ अलग-अलग विकसित होती हैं। अनुबंध एक इंटरफ़ेस के रूप में कार्य करते हैं जो यह सुनिश्चित करता है कि प्रत्येक विकास चक्र के दौरान पूर्ण एकीकरण परीक्षण की आवश्यकता के बिना एकीकरण अपेक्षित रूप से काम करता है।
3. तेज़ विकास चक्र
सीडीसीटी के साथ, उपभोक्ता और प्रदाता दोनों को समानांतर रूप से विकसित और परीक्षण किया जा सकता है, जिससे विकास में तेजी आ सकती है। उपभोक्ता द्वारा अपनी कार्यक्षमता पूरी तरह से लागू करने से पहले ही प्रदाता उपभोक्ता के अनुबंध के विरुद्ध परीक्षण कर सकते हैं।
4. अनुबंध उल्लंघनों का शीघ्र पता लगाना
प्रदाता में अनुबंध का उल्लंघन करने वाले परिवर्तनों का विकास प्रक्रिया में पहले ही पता चल जाता है, जिससे डेवलपर्स को गंभीर होने से पहले मुद्दों का समाधान करने में मदद मिलती है।
उपभोक्ता-संचालित अनुबंध परीक्षण कैसे लागू करें
सीडीसीटी को लागू करने के लिए कई उपकरण उपलब्ध हैं, जिनमें पैक्ट सबसे लोकप्रिय में से एक है। पैक्ट उपभोक्ताओं को अपने अनुबंधों को परिभाषित करने और प्रदाताओं को उन्हें सत्यापित करने की अनुमति देता है।
यहां पैक्ट का उपयोग करके सीडीसीटी लागू करने के लिए चरण-दर-चरण मार्गदर्शिका दी गई है:
चरण 1: उपभोक्ता अपेक्षाओं को परिभाषित करें
सबसे पहले, उपभोक्ता सेवा में, अनुबंध को परिभाषित करें। इसमें आमतौर पर निम्नलिखित शामिल हैं:
• वह समापन बिंदु जिस पर उपभोक्ता कॉल करेगा।
• अनुरोध विधि (प्राप्त करें, पोस्ट करें, डालें, आदि)।
• अपेक्षित अनुरोध निकाय या पैरामीटर।
• अपेक्षित प्रतिक्रिया निकाय और स्थिति कोड।
जावास्क्रिप्ट में पैक्ट का उपयोग करके उपभोक्ता परीक्षण में अनुबंध को परिभाषित करने का एक उदाहरण यहां दिया गया है:
const { Pact } = require('@pact-foundation/pact'); const path = require('path'); const provider = new Pact({ consumer: 'UserService', provider: 'UserAPI', port: 1234, log: path.resolve(process.cwd(), 'logs', 'pact.log'), dir: path.resolve(process.cwd(), 'pacts'), }); describe('Pact Consumer Test', () => { beforeAll(() => provider.setup()); afterAll(() => provider.finalize()); it('should receive user details from the API', async () => { // Define the expected interaction await provider.addInteraction({ state: 'user exists', uponReceiving: 'a request for user details', withRequest: { method: 'GET', path: '/users/1', headers: { Accept: 'application/json', }, }, willRespondWith: { status: 200, headers: { 'Content-Type': 'application/json', }, body: { id: 1, name: 'John Doe', }, }, }); // Make the actual request and test const response = await getUserDetails(1); expect(response).toEqual({ id: 1, name: 'John Doe' }); }); });
इस उदाहरण में, उपभोक्ता (यूजरसर्विस) उम्मीद करता है कि प्रदाता (यूजरएपीआई) /यूजर्स/1 को जीईटी अनुरोध करते समय यूजर विवरण लौटाएगा।
चरण 2: अनुबंध प्रकाशित करें
एक बार उपभोक्ता परीक्षण पास हो जाने पर, पैक्ट एक अनुबंध फ़ाइल (पैक्ट फ़ाइल) उत्पन्न करता है जिसे प्रदाता के साथ साझा किया जा सकता है। इस अनुबंध को पैक्ट ब्रोकर या संस्करण नियंत्रण प्रणाली में संग्रहीत किया जा सकता है ताकि प्रदाता सत्यापन के लिए इसका उपयोग कर सके।
चरण 3: प्रदाता अनुबंध का सत्यापन करता है
प्रदाता अनुबंध को पुनः प्राप्त करता है और सत्यापित करता है कि यह उपभोक्ता की अपेक्षाओं का अनुपालन करता है। यह प्रदाता की ओर से एक पैक्ट परीक्षण चलाकर किया जाता है। यहां जावा में एक पैक्ट अनुबंध को सत्यापित करने का एक उदाहरण दिया गया है:
public class ProviderTest { @Test public void testProviderAgainstPact() { PactVerificationResult result = new PactVerifier() .verifyProvider("UserAPI", "pacts/UserService-UserAPI.json"); assertThat(result, instanceOf(PactVerificationResult.Ok.class)); } }
प्रदाता यह परीक्षण यह सुनिश्चित करने के लिए चलाता है कि वह उपभोक्ता द्वारा निर्दिष्ट अनुबंध का पालन करता है।
चरण 4: सतत एकीकरण
एक बार सीडीसीटी आपके सीआई/सीडी पाइपलाइन में एकीकृत हो जाने पर, हर बार अनुबंध में बदलाव होने पर, प्रदाता स्वचालित रूप से अनुबंध को सत्यापित कर सकता है। यह सुनिश्चित करता है कि एपीआई परिवर्तन उपभोक्ता की अपेक्षाओं को न तोड़ें, दोनों टीमों के लिए सुरक्षा जाल प्रदान करें।
सीडीसीटी सर्वोत्तम प्रथाएं
उपभोक्ता-संचालित अनुबंध परीक्षण का उपयोग कब करें
CDCT विशेष रूप से तब उपयोगी होता है जब:
• आपके पास कई सेवाओं के साथ बातचीत करने वाली माइक्रोसर्विसेज या वितरित आर्किटेक्चर हैं।
• विभिन्न सेवाओं पर काम करने वाली टीमों को लगातार एकीकरण परीक्षण के बिना स्वतंत्र रूप से विकसित होने की आवश्यकता है।
• एपीआई अनुबंध अक्सर बदलने की संभावना है, और आप उपभोक्ता अपेक्षाओं को तोड़ने से बचना चाहते हैं।
• विकास प्रक्रिया में अनुबंध उल्लंघनों का शीघ्र पता लगाने के लिए आपको तेज़ फीडबैक लूप की आवश्यकता है।
निष्कर्ष
उपभोक्ता-संचालित अनुबंध परीक्षण यह सुनिश्चित करने का एक विश्वसनीय तरीका प्रदान करता है कि वितरित प्रणाली में सेवाएँ परिवर्तनों को तोड़े बिना प्रभावी ढंग से संचार करती हैं। उपभोक्ता अपेक्षाओं पर ध्यान केंद्रित करके और उनके विरुद्ध प्रदाता को मान्य करके, सीडीसीटी स्थिरता सुनिश्चित करते हुए टीमों को स्वतंत्र रूप से विकसित होने में मदद करता है। चाहे आप माइक्रोसर्विसेज, एपीआई-आधारित एप्लिकेशन, या वितरित सिस्टम बना रहे हों, सीडीसीटी को अपनी परीक्षण रणनीति में शामिल करने से आपकी सेवाओं की विश्वसनीयता और स्केलेबिलिटी में सुधार होगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3