एपीआई परीक्षण ट्यूटोरियल: एपीआई परीक्षण स्वचालन क्या है?
एपीआई परीक्षण क्या है?
एपीआई परीक्षण एक सॉफ्टवेयर परीक्षण प्रकार है जो एप्लिकेशन प्रोग्रामिंग इंटरफेस (API) को मान्य करता है। API परीक्षण का उद्देश्य प्रोग्रामिंग इंटरफेस की कार्यक्षमता, विश्वसनीयता, प्रदर्शन और सुरक्षा की जांच करना है। API परीक्षण में, मानक उपयोगकर्ता इनपुट (कीबोर्ड) और आउटपुट का उपयोग करने के बजाय, आप API को कॉल भेजने, आउटपुट प्राप्त करने और सिस्टम की प्रतिक्रिया को नोट करने के लिए सॉफ़्टवेयर का उपयोग करते हैं। API परीक्षण GUI परीक्षणों से बहुत अलग हैं और किसी एप्लिकेशन के लुक और फील पर ध्यान केंद्रित नहीं करेंगे। यह मुख्य रूप से सॉफ़्टवेयर आर्किटेक्चर की व्यावसायिक तर्क परत पर ध्यान केंद्रित करता है।
पृष्ठभूमि के लिए, एपीआई (एप्लीकेशन प्रोग्रामिंग इंटरफ़ेस) एक कंप्यूटिंग इंटरफ़ेस है जो दो अलग-अलग सॉफ़्टवेयर सिस्टम के बीच संचार और डेटा एक्सचेंज को सक्षम बनाता है। एक सॉफ्टवेयर सिस्टम जो API निष्पादित करता है, उसमें कई फ़ंक्शन/सबरूटीन शामिल होते हैं जिन्हें कोई अन्य सॉफ़्टवेयर सिस्टम निष्पादित कर सकता है। API दो सॉफ़्टवेयर सिस्टम के बीच किए जा सकने वाले अनुरोधों, अनुरोध करने के तरीके, उपयोग किए जा सकने वाले डेटा प्रारूप आदि को परिभाषित करता है।
API परीक्षण स्वचालन वातावरण की स्थापना
API स्वचालन परीक्षण के लिए एक ऐसे एप्लिकेशन की आवश्यकता होती है जिसे API के माध्यम से इंटरैक्ट किया जा सके। API का परीक्षण करने के लिए, आपको निम्न की आवश्यकता होगी
- API को चलाने के लिए परीक्षण उपकरण का उपयोग करें
- API का परीक्षण करने के लिए अपना स्वयं का कोड लिखें
ध्यान देने योग्य कुछ बिंदु
- एपीआई परीक्षण अन्य सॉफ्टवेयर परीक्षण प्रकारों से भिन्न है क्योंकि इसमें जीयूआई उपलब्ध नहीं है, और फिर भी आपको प्रारंभिक वातावरण स्थापित करना होता है जो आवश्यक मापदंडों के साथ एपीआई को आमंत्रित करता है और फिर अंत में परीक्षण परिणाम की जांच करता है।
- इसलिए, API स्वचालन परीक्षण के लिए परीक्षण वातावरण स्थापित करना थोड़ा जटिल लगता है।
- डेटाबेस और सर्वर को अनुप्रयोग आवश्यकताओं के अनुसार कॉन्फ़िगर किया जाना चाहिए।
- एक बार इंस्टॉलेशन पूरा हो जाने पर, यह जांचने के लिए कि API काम कर रहा है या नहीं, API फ़ंक्शन को कॉल किया जाना चाहिए।
API के आउटपुट के प्रकार
एपीआई का आउटपुट हो सकता है
- किसी भी प्रकार का डेटा
- स्थिति (जैसे पास या फेल)
- किसी अन्य API फ़ंक्शन को कॉल करें.
आइए इस API परीक्षण ट्यूटोरियल में उपरोक्त प्रत्येक प्रकार का एक उदाहरण देखें
किसी भी प्रकार का डेटा
उदाहरण: एक API फ़ंक्शन है जो दो पूर्णांक संख्याओं को जोड़ता है।
Long add(int a, int b)
संख्याओं को इनपुट पैरामीटर के रूप में दिया जाना चाहिए। आउटपुट दो पूर्णांक संख्याओं का योग होना चाहिए। इस आउटपुट को अपेक्षित परिणाम के साथ सत्यापित किया जाना चाहिए।
कॉलिंग इस प्रकार की जानी चाहिए जैसे
add (1234, 5656)
यदि संख्या पूर्णांक सीमा से अधिक हो तो अपवादों को संभालना होगा।
स्थिति (जैसे पास या फेल)
नीचे दिए गए API फ़ंक्शन पर विचार करें –
- ताला()
- अनलॉक()
- मिटाना()
वे आउटपुट के रूप में कोई भी मान लौटाते हैं जैसे सत्य (सफलता की स्थिति में) या असत्य (त्रुटि की स्थिति में)।
अधिक सटीक परीक्षण का मामला किसी भी स्क्रिप्ट में फ़ंक्शन को कॉल कर सकते हैं और बाद में डेटाबेस या एप्लिकेशन GUI में परिवर्तनों की जांच कर सकते हैं।
किसी अन्य API / ईवेंट को कॉल करना
इस मामले में, हम एक API फ़ंक्शन को कॉल करते हैं जो बदले में एक अन्य फ़ंक्शन को कॉल करेगा।
उदाहरण के लिए - पहले API फ़ंक्शन का उपयोग तालिका में निर्दिष्ट रिकॉर्ड को हटाने के लिए किया जा सकता है और यह फ़ंक्शन, बदले में, डेटाबेस को REFRESH करने के लिए एक अन्य फ़ंक्शन को कॉल करता है।
एपीआई परीक्षण के लिए परीक्षण मामले:
API परीक्षण के परीक्षण मामले निम्न पर आधारित हैं
- इनपुट स्थिति के आधार पर वापसी मान: इसका परीक्षण करना अपेक्षाकृत आसान है, क्योंकि इनपुट को परिभाषित किया जा सकता है और परिणामों को प्रमाणित किया जा सकता है
- कुछ भी वापस नहीं करता: जब कोई रिटर्न वैल्यू नहीं होती है, तो सिस्टम पर API के व्यवहार की जांच की जाती है
- कुछ अन्य API/घटना/व्यवधान ट्रिगर करें: यदि किसी API का आउटपुट किसी घटना या व्यवधान को ट्रिगर करता है, तो उन घटनाओं और व्यवधान श्रोताओं को ट्रैक किया जाना चाहिए
- डेटा संरचना अद्यतन करें: डेटा संरचना को अद्यतन करने से सिस्टम पर कुछ परिणाम या प्रभाव पड़ेगा, और इसे प्रमाणित किया जाना चाहिए
- कुछ संसाधनों को संशोधित करें: यदि API कॉल कुछ संसाधनों को संशोधित करता है तो संबंधित संसाधनों तक पहुंच कर इसे सत्यापित किया जाना चाहिए
एपीआई परीक्षण दृष्टिकोण
एपीआई परीक्षण दृष्टिकोण एक पूर्वनिर्धारित रणनीति या विधि है जिसे QA टीम बिल्ड तैयार होने के बाद API परीक्षण करने के लिए निष्पादित करेगी। इस परीक्षण में स्रोत कोड शामिल नहीं है। API परीक्षण दृष्टिकोण कार्यक्षमताओं, परीक्षण तकनीकों, इनपुट मापदंडों और परीक्षण मामलों के निष्पादन को बेहतर ढंग से समझने में मदद करता है।
निम्नलिखित बिंदु उपयोगकर्ता को API परीक्षण दृष्टिकोण अपनाने में मदद करते हैं:
- एपीआई कार्यक्रम की कार्यक्षमता को समझना और कार्यक्रम के दायरे को स्पष्ट रूप से परिभाषित करना
- समतुल्यता वर्ग, सीमा मान विश्लेषण और त्रुटि अनुमान जैसी परीक्षण तकनीकों को लागू करें और API के लिए परीक्षण मामले लिखें
- एपीआई के लिए इनपुट पैरामीटर्स को उचित रूप से नियोजित और परिभाषित किया जाना चाहिए
- परीक्षण मामलों को निष्पादित करें और अपेक्षित और वास्तविक परिणामों की तुलना करें।
एपीआई परीक्षण और यूनिट परीक्षण के बीच अंतर
इकाई परीक्षण | एपीआई परीक्षण |
---|---|
डेवलपर्स इसे निष्पादित करते हैं | परीक्षक इसका प्रदर्शन करते हैं |
अलग कार्यक्षमता का परीक्षण किया जाता है | संपूर्ण कार्यक्षमता का परीक्षण किया जाता है |
डेवलपर स्रोत कोड तक पहुंच सकता है | परीक्षक स्रोत कोड तक नहीं पहुंच सकते |
यूआई परीक्षण भी शामिल है | केवल API फ़ंक्शन का परीक्षण किया जाता है |
केवल बुनियादी कार्यक्षमताओं का परीक्षण किया जाता है | सभी कार्यात्मक मुद्दों का परीक्षण किया जाता है |
दायरा सीमित | दायरा व्यापक |
आमतौर पर चेक-इन से पहले चलाया जाता है | बिल्ड बनने के बाद परीक्षण चलाएं |
API का परीक्षण कैसे करें
API स्वचालन परीक्षण में सामान्य SDLC प्रक्रिया के अलावा कम से कम निम्नलिखित परीक्षण विधियाँ शामिल होनी चाहिए
- खोज परीक्षण: परीक्षण समूह को एपीआई में प्रलेखित कॉल के सेट को मैन्युअल रूप से निष्पादित करना चाहिए जैसे कि यह सत्यापित करना कि एपीआई द्वारा प्रदर्शित एक विशिष्ट संसाधन को सूचीबद्ध किया जा सकता है, बनाया जा सकता है और उचित रूप से हटाया जा सकता है
- उपयोगिता परीक्षण: यह परीक्षण सत्यापित करता है कि क्या API कार्यात्मक और उपयोगकर्ता के अनुकूल है। और क्या API किसी अन्य प्लेटफ़ॉर्म के साथ भी अच्छी तरह से एकीकृत होता है
- सुरक्षा परीक्षण: इस परीक्षण में यह शामिल है कि किस प्रकार का प्रमाणीकरण आवश्यक है और क्या संवेदनशील डेटा HTTP या दोनों पर एन्क्रिप्ट किया गया है
- स्वचालित परीक्षण: API परीक्षण का समापन स्क्रिप्ट या उपकरण के एक सेट के निर्माण से होना चाहिए जिसका उपयोग API को नियमित रूप से निष्पादित करने के लिए किया जा सके
- प्रलेखन: परीक्षण टीम को यह सुनिश्चित करना होगा कि दस्तावेज़ीकरण पर्याप्त है और API के साथ बातचीत करने के लिए पर्याप्त जानकारी प्रदान करता है। दस्तावेज़ीकरण अंतिम डिलीवरेबल का हिस्सा होना चाहिए
एपीआई परीक्षण के सर्वोत्तम अभ्यास:
- API परीक्षण मामलों को परीक्षण श्रेणी के अनुसार समूहीकृत किया जाना चाहिए
- प्रत्येक परीक्षण के शीर्ष पर, आपको बुलाए जा रहे API की घोषणाएं शामिल करनी चाहिए।
- पैरामीटर चयन का स्पष्ट उल्लेख परीक्षण मामले में ही किया जाना चाहिए
- API फ़ंक्शन कॉल को प्राथमिकता दें ताकि परीक्षकों के लिए परीक्षण करना आसान हो जाए
- प्रत्येक परीक्षण मामला यथासंभव आत्मनिर्भर और निर्भरताओं से स्वतंत्र होना चाहिए
- अपने विकास में “टेस्ट चेनिंग” से बचें
- एक बार के कॉल फ़ंक्शन जैसे - डिलीट, क्लोजविंडो, आदि को संभालते समय विशेष सावधानी बरतनी चाहिए।
- कॉल अनुक्रमण अच्छी तरह से किया जाना चाहिए और इसकी योजना बनाई जानी चाहिए
- पूर्ण परीक्षण कवरेज सुनिश्चित करने के लिए, API के सभी संभावित इनपुट संयोजनों के लिए API परीक्षण मामले बनाएं।
API परीक्षण द्वारा पता लगाए जाने वाले बग के प्रकार
- त्रुटि स्थितियों को शालीनता से संभालने में विफल रहता है
- अप्रयुक्त झंडे
- गुम या डुप्लिकेट कार्यक्षमता
- विश्वसनीयता संबंधी समस्याएं। कनेक्ट होने और प्रतिक्रिया प्राप्त करने में कठिनाई API.
- सुरक्षा मुद्दे
- मल्टी-थ्रेडिंग मुद्दे
- प्रदर्शन संबंधी समस्याएं. API प्रतिक्रिया समय बहुत अधिक है.
- कॉल करने वाले को अनुचित त्रुटियाँ/चेतावनी
- मान्य तर्क मानों का गलत प्रबंधन
- प्रतिक्रिया डेटा सही ढंग से संरचित नहीं है (JSON या एक्सएमएल)
API परीक्षण स्वचालन कैसे करें
1) रेडीएपीआई
रेडीएपीआई RESTful, SOAP, GraphQL और अन्य वेब सेवाओं के कार्यात्मक, सुरक्षा और लोड परीक्षण के लिए एक अग्रणी उपकरण है। एक सहज ज्ञान युक्त प्लेटफ़ॉर्म में, आपको तीन शक्तिशाली उपकरण मिलेंगे: ReadyAPI टेस्ट, ReadyAPI प्रदर्शन और ReadyAPI वर्चुअलाइज़ेशन। इन उपकरणों के साथ आप कार्यात्मक, सुरक्षा और प्रदर्शन/लोड परीक्षण कर सकते हैं। आप हमारे मजबूत वर्चुअलाइज़ेशन टूल के साथ API और वेब सेवाओं का मॉक भी कर सकते हैं। इसके अतिरिक्त, आप आसानी से अपने सीआई/सीडी पाइपलाइन हर निर्माण के दौरान.
मुख्य विशेषताएं
- रेडीएपीआई को किसी भी वातावरण में एकीकृत किया जा सकता है।
- इसमें स्मार्ट एसेरशन सुविधा है जो सैकड़ों एंडपॉइंट्स के विरुद्ध शीघ्रता से बल्क एसेरशन तैयार कर सकती है।
- Git, Docker, Jenkins के लिए मूल समर्थन, Azure, आदि
- स्वचालित परीक्षण के लिए कमांड-लाइन का समर्थन करता है।
- कार्यात्मक परीक्षणों और कार्य कतार के समानांतर निष्पादन का समर्थन करता है।
- Promotes कोड पुनः उपयोग
- परीक्षण और विकास के दौरान निर्भरता को हटाता है।
14-दिन का निःशुल्क परीक्षण (क्रेडिट कार्ड की आवश्यकता नहीं)
निम्नलिखित ट्यूटोरियल API परीक्षण को स्वचालित करने के लिए विस्तृत मार्गदर्शन प्रदान करते हैं।
- REST एश्योर्ड के साथ API का परीक्षण कैसे करें
- API का परीक्षण कैसे करें Postman
- UFT के साथ API का परीक्षण कैसे करें
इसके अलावा, API परीक्षण के लिए अन्य उपकरण भी हैं। उन्हें जाँचें यहाँ उत्पन्न करें
एपीआई परीक्षण की चुनौतियाँ
एपीआई परीक्षण की चुनौतियों में शामिल हैं:
- वेब एपीआई परीक्षण में मुख्य चुनौतियाँ हैं पैरामीटर संयोजन, पैरामीटर चयन, और कॉल अनुक्रमण
- कोई GUI उपलब्ध नहीं है आवेदन का परीक्षण करने के लिए, जो बनाता है इनपुट मान देना कठिन है
- किसी भिन्न सिस्टम में आउटपुट को मान्य और सत्यापित करना परीक्षकों के लिए थोड़ा कठिन होता है
- पैरामीटर चयन और वर्गीकरण की जानकारी परीक्षकों को होनी आवश्यक है
- अपवाद हैंडलिंग फ़ंक्शन परीक्षण की आवश्यकता है
- परीक्षकों के लिए कोडिंग ज्ञान आवश्यक है
निष्कर्ष
API में क्लास/फ़ंक्शन/प्रक्रियाओं का एक सेट होता है जो व्यवसाय तर्क परत का प्रतिनिधित्व करता है। यदि API का सही तरीके से परीक्षण नहीं किया जाता है, तो यह न केवल API एप्लिकेशन में बल्कि कॉलिंग एप्लिकेशन में भी समस्याएँ पैदा कर सकता है। यह सॉफ़्टवेयर इंजीनियरिंग में एक अपरिहार्य परीक्षण है।