advanced scripting complex testing workflows postman
जटिल परीक्षण वर्कफ़्लोज़ के लिए पोस्टमैन एडवांस्ड स्क्रिप्टिंग के बारे में जानें:
इस ट्यूटोरियल में, हम पोस्टमैन के साथ एडवांस्ड स्क्रिप्टिंग का उपयोग करने के कुछ बुनियादी उदाहरण देखेंगे जो हमें जटिल परीक्षण वर्कफ़्लो चलाने में सक्षम करेगा।
हम एक अनुरोध से दूसरे डेटा को पास करने, रिक्वेस्ट चेनिंग जैसे उदाहरणों पर चर्चा करेंगे, यानी पोस्टमैन संग्रह के अंदर अनुरोधों के निष्पादन आदेश को नियंत्रित करना आदि।
सीपीयू अस्थायी जाँच करने के लिए सबसे अच्छा अनुप्रयोग
=> आसान डाकिया प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
आप क्या सीखेंगे:
- पोस्टमैन में अनुरोधों के बीच डेटा पास करना
- डाकिया में अनुरोध करने का सिलसिला
- डाकिया के साथ उन्नत वर्कफ़्लो चेनिंग
- महत्वपूर्ण टिप्स
- निष्कर्ष
- अनुशंसित पाठ
पोस्टमैन में अनुरोधों के बीच डेटा पास करना
अनुरोधों के बीच डेटा पास करना विभिन्न प्रकार के पोस्टमैन चर का उपयोग करने का एक विस्तार है। यह बहुत असामान्य नहीं है जहां एक एपीआई अनुरोध पिछले अनुरोध की प्रतिक्रिया के डेटा पर निर्भर करता है।
पोस्टमैन का उपयोग करके इस तरह की क्षमताओं का निर्माण करने के लिए, हम पूर्ववर्ती या पिछले अनुरोधों से प्राप्त प्रतिक्रिया के आधार पर मूल्य निर्धारित करने के लिए पोस्टमैन चर का उपयोग कर सकते हैं।
यहाँ एक वीडियो ट्यूटोरियल है:
इसे उदाहरण के लिए एक उदाहरण से देखें।
हम उसी API का उपयोग करेंगे https://reqres.in इसके 2 एंडपॉइंट्स के साथ अर्थात् उपयोगकर्ता को पंजीकृत करें और उपयोगकर्ता विवरण प्राप्त करें।
हम पंजीकरण समापन बिंदु से लौटाए गए उपयोगकर्ता-आईडी के मूल्य का उपयोग करेंगे और उपयोगकर्ता विवरण विधि प्राप्त करने के लिए इसका उपयोग करेंगे। यह एक पर्यावरण चर में userId मान संग्रहीत करके और परिणाम अनुरोध में उस पर्यावरण चर का उपयोग करके प्राप्त किया जाएगा।
कृपया ध्यान दें कि ऐसी सभी स्क्रिप्ट पोस्टमैन अनुरोध बिल्डर कंसोल के 'टेस्ट' टैब का एक हिस्सा होंगी।
आइए देखें कि स्क्रिप्ट कैसी दिखेगी:
# 1) रजिस्टर यूजर एंडपॉइंट के लिए, इस एपीआई की प्रतिक्रिया नीचे दिखाए गए अनुसार दिखाई देगी।
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
अब, प्रतिक्रिया से उपयोगकर्ता आईडी का उपयोग करके GET अनुरोध को निष्पादित करने के लिए, हमें उपरोक्त प्रतिक्रिया से आईडी मूल्य प्राप्त करने की आवश्यकता है। हम नीचे दिए गए स्क्रिप्ट का उपयोग इस JSON से आईडी के मान को एक पर्यावरण चर में नामित करने के लिए करेंगे यूज़र आईडी।
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
उपरोक्त स्क्रिप्ट के साथ, ID का मान अब userId पर्यावरण चर में संग्रहीत किया जाएगा और उसी का उपयोग GET उपयोगकर्ता अनुरोध समापन बिंदु को निष्पादित करते समय किया जा सकता है।
#दो) इस प्रकार GET उपयोगकर्ता अनुरोध नीचे दिखाया गया है।
https://reqres.in/api/users//DuserId}}
एक बार पहला अनुरोध निष्पादित होने के बाद, यह प्रतिक्रिया से UserID के मूल्य को प्राप्त करेगा और पर्यावरण चर के मूल्य को अपडेट करेगा, ताकि इसका उपयोग अन्य अनुरोधों में किया जा सके।
डाकिया में अनुरोध करने वाला
आइए सबसे पहले अनुरोध के आधार पर उपयोग के मामले को समझने की कोशिश करते हैं और फिर हम पोस्टमैन के लिए अनुरोध करने के तरीके को आगे बढ़ाते हैं।
एक परिदृश्य पर विचार करें, ईकामर्स साइट के लॉगिन प्रवाह और लॉग-इन उपयोगकर्ता को मान्य करें। अब उपयोगकर्ता को लॉग इन करने के लिए, उसे पहले साइट के साथ पंजीकृत होना चाहिए और उसके बाद ही वे लॉग इन कर पाएंगे। यह वही क्रम है जिसमें मोबाइल ऐप की वास्तविक साइट एपीआई कॉल को निष्पादित करती है।
इसे एकीकरण परीक्षण के नजरिए से देखें। API परीक्षण के लिए, हमें सबसे पहले निम्नलिखित की आवश्यकता है:
- सफलतापूर्वक पंजीकरण के लिए उपयोगकर्ता के लिए एपीआई के रजिस्टर समापन बिंदु को कॉल करें।
- फिर लॉगिन एंडपॉइंट पर कॉल करें और लॉग-इन उपयोगकर्ता के विवरण को मान्य करें।
पोस्टमैन के साथ, अनुरोध निष्पादन के क्रम को नियंत्रित करना सीधे आगे नहीं है। डिफ़ॉल्ट निष्पादन आदेश ऊपर से नीचे तक है यानी वह क्रम जिसमें पोस्टमैन संग्रह में अनुरोध घोषित या बनाए गए हैं।
निम्नलिखित स्क्रिप्ट का उपयोग करके चेंजिंग अनुरोध या अनुरोध निष्पादन का क्रम बदल दिया गया है:
postman.setNextRequest({{RequestName}});
यहां यह ध्यान रखना महत्वपूर्ण है कि इस अनुरोध की चाइनिंग स्क्रिप्ट को पूर्व-अनुरोध स्क्रिप्ट या पोस्ट-रिक्वेस्ट स्क्रिप्ट (या पोस्टमैन अनुरोध बिल्डर में परीक्षण टैब) को जोड़ने की आवश्यकता है जो निष्पादन पूर्ण होने के बाद अनुरोध को पूरा करने के बाद वर्कफ़्लो को ट्रिगर करता है।
यहां {{RequestName}} पोस्टमैन संग्रह में कॉन्फ़िगर या सेट किया गया वास्तविक अनुरोध नाम है।
अनुरोध जंजीर अवधारणा का वर्णन करने के लिए 4 विभिन्न अनुरोधों के साथ एक डाकिया संग्रह को कॉन्फ़िगर करें। 4 अनुरोधों के साथ एक नया संग्रह बनाएं (हम उसी एपीआई का उपयोग करेंगे https://reqres.in यह बताने के लिए)।
संग्रह में 4 अनुरोध निम्नानुसार होंगे:
(1) पोस्ट उपयोगकर्ता को पंजीकृत करने का अनुरोध ( https://reqres.in/api/register ) नीचे दिए गए ईमेल और पासवर्ड वाले क्षेत्रों के साथ नमूना JSON बॉडी।
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#दो) लॉगिन समापन बिंदु के साथ POST अनुरोध ( https://reqres.in/api/login ) ऊपर के रूप में एक ही अनुरोध शरीर के साथ।
# 3) UserID 4 के साथ अनुरोध प्राप्त करें।
वर्कफ़्लो जिसे हम प्राप्त करने की कोशिश करेंगे वह है:
रजिस्टर (POST) -> उपयोगकर्ता विवरण (GET) -> लॉगिन (POST)
कोई फर्क नहीं पड़ता कि ये अनुरोध कैसे कॉन्फ़िगर किए जाते हैं, हम उन्हें इस क्रम में निष्पादित करने के लिए एक वर्कफ़्लो बनाएंगे।
कृपया ध्यान दें कि अनुरोधों को क्रमशः रजिस्टर उपयोगकर्ता, गेट उपयोगकर्ता और लॉगिन उपयोगकर्ता नाम दिया गया है। स्क्रिप्ट में इन अनुरोधों का नाम ठीक और सही तरीके से होना महत्वपूर्ण है, अन्यथा वर्कफ़्लो अटक जाएगा।
आइए देखें कि स्क्रिप्ट अब कैसी दिखती हैं।
# 1) रजिस्टर करने के लिए POST का अनुरोध
postman.setNextRequest('Login User');
#दो) POST लॉग इन करने का अनुरोध।
postman.setNextRequest('Get User');
# 3) उपयोगकर्ता विवरण प्राप्त करने के लिए अनुरोध प्राप्त करें। यहां यह महत्वपूर्ण है कि हम इस अनुरोध के बाद कुछ भी नहीं करना चाहते हैं। यदि हम यहां कोई वर्कफ़्लो स्क्रिप्ट नहीं जोड़ते हैं, तो डाकिया संग्रह को अगले अनुरोध को तार्किक या डिफ़ॉल्ट क्रम में फिर से शुरू करने के लिए डिज़ाइन किया गया है।
विंडोज 7 के लिए सबसे अच्छा रजिस्ट्री क्लीनर
इस प्रकार, मान लीजिए कि संग्रह में अनुरोधों का मूल क्रम है रजिस्टर करें, उपयोगकर्ता प्राप्त करें तथा लॉग इन करें और हमारे वर्कफ़्लो पर है उपयोगकर्ता प्राप्त करें जैसा कि नियंत्रण को पता नहीं है कि आगे जाने के लिए कौन सा अनुरोध है, यह अगले तार्किक अनुरोध पर जाएगा लॉग इन करें और अंत में एक अनंत लूप में परिणाम होगा।
ऐसी स्थिति को रोकने के लिए, वर्कफ़्लो का उपयोग करके इसे समाप्त करना उपयोगी है:
postman.setNextRequest(null)
जब भी एक संग्रह निष्पादन के दौरान उपरोक्त स्क्रिप्ट का सामना किया जाता है, तो वर्कफ़्लो निष्पादन बंद हो जाएगा और संग्रह धावक समाप्त हो जाएगा।
उन मामलों में जहां अगले अनुरोध के परिपत्र संदर्भ हैं, संग्रह धावक एक अनंत लूप में फंस जाएगा, जिससे स्मृति रिसाव जल्दी या बाद में हो जाएगा।
कृपया ध्यान दें कि वर्कफ़्लो को निष्पादित करने के लिए, आपको मैन्युअल रूप से पहले या शुरुआती अनुरोध को निष्पादित करने की आवश्यकता होगी, पोस्ट करें, यह वर्कफ़्लो का पालन करेगा जैसा कि पोस्ट-अनुरोध स्क्रिप्ट में परिभाषित किया गया है।
दूसरे शब्दों में, वर्कफ़्लो के एक भाग के रूप में चलाने के लिए आवश्यक पहला अनुरोध भी संग्रह या संग्रह फ़ोल्डर में पहला अनुरोध होना चाहिए, ताकि वर्कफ़्लो निष्पादन पहले अनुरोध के साथ शुरू हो जो वर्कफ़्लो का पहला अनुरोध भी हो ।
डाकिया के साथ उन्नत वर्कफ़्लो चेनिंग
उपरोक्त उदाहरण, जिस पर हमने चर्चा की थी, एक रैखिक वर्कफ़्लो से अधिक है जहाँ हमने एक ही संग्रह में अनुरोधों के सेट के बीच वर्कफ़्लो कॉन्फ़िगर किया है। एक ही तकनीक का उपयोग कुछ प्रतिक्रिया मूल्यों या पर्यावरण चर पर आधारित कई बार अनुरोध पर लूपिंग के लिए भी किया जा सकता है।
खरीदारी कार्ट ऐप के लिए एकीकरण परीक्षण पर विचार करें, जहां आपको उस परिदृश्य के लिए परीक्षण करने की आवश्यकता होती है जहां कोई उपयोगकर्ता किसी उत्पाद की खोज करता है और उसे कार्ट में जोड़ता है और उसी ऑपरेशन को 5 बार करना पड़ता है, जब तक कि कार्ट में कुल 5 आइटम न हों और फिर अंत में चेकआउट।
इसलिए, यदि आप इस तरह के परीक्षण के लिए एक रैखिक प्रवाह लिखना चाहते थे, तो आपने संग्रह में व्यक्तिगत अनुरोधों को दोहराया होगा और अनिवार्य रूप से संग्रह में एक आइटम की खोज के लिए 5 अनुरोध होंगे, और कार्ट में उत्पादों को जोड़ने के लिए 5 अनुरोध और 1 चेकआउट करने का अनुरोध।
इस वर्कफ़्लो कार्यक्षमता के साथ, हम संग्रह में समान अनुरोधों को दोहराने से बच सकते हैं और अनुरोधों के बीच वर्कफ़्लोज़ को लूप में उपयोग कर सकते हैं।
आइए ऐसे परिदृश्य के लिए एक प्रवाह अनुक्रम देखें (तब इसका उपयोग पोस्टमैन वर्कफ़्लो के साथ पर्यावरण चर के संयोजन के साथ किया जा सकता है / बनाया जा सकता है)।
Spotify प्लेलिस्ट बनाने के लिए Postman वर्कफ़्लो का उपयोग करने का एक दिलचस्प उदाहरण भी है। उल्लेख यहां अधिक जानकारी के लिए।
महत्वपूर्ण टिप्स
वर्कफ़्लोज़ का निर्माण करते समय याद रखने के लिए नीचे दिए गए कुछ महत्वपूर्ण सुझाव दिए गए हैं।
- संग्रह चलाने के दौरान यदि कुछ अनुरोधों में पोस्टमार्टम नहीं होता है। तो पहले से निर्धारित किया जाता है, निष्पादन संग्रह के डिफ़ॉल्ट क्रम में जारी रहता है। इस प्रकार आमतौर पर Postman.setNextRequest को सभी अनुरोधों में या उनमें से किसी में भी करने की सिफारिश की जाती है।
- संग्रह के साथ चलने पर, यदि संग्रह में फ़ोल्डर हैं, तो Postman.setNextRequest का उपयोग केवल उसी फ़ोल्डर से संबंधित अनुरोधों के लिए किया जा सकता है यानी अनुरोध चयन वर्तमान फ़ोल्डर से परे नहीं जा सकता।
- Postman.setNextRequest अंतिम कथन है जो पोस्ट-रिक्वेस्ट या प्री-रिक्वेस्ट स्क्रिप्ट के बावजूद निष्पादित होता है, भले ही यह कहाँ और किस क्रम में उल्लिखित हो।
SetNextRequest के लिए पाए गए कई मानों के मामले में, अंतिम में बताई गई बात प्रभावी है।
निष्कर्ष
इस ट्यूटोरियल में, हमने पोस्टमैन में विभिन्न अनुरोधों के बीच डेटा पास करने के लिए पर्यावरण और स्थानीय चर संयोजन जैसे कुछ उन्नत स्क्रिप्टिंग विषयों को कवर किया और हम पोस्टमैन अनुरोध का उपयोग करते हुए अनुरोधों के निष्पादन क्रम को कैसे नियंत्रित कर सकते हैं जो लूपिंग और ब्रांचिंग जैसी उन्नत क्षमताओं की अनुमति देता है।
यह किसी एप्लिकेशन के व्यवहार की नकल करने के लिए एक शांत सुविधा है जिसमें वह विभिन्न एपीआई के साथ बातचीत करेगा और एपीआई एंडपॉइंट्स के साथ एकीकरण परीक्षणों का उपयोग करके वर्कफ़्लोज़ के अंत में लिखने में मददगार है।
=> यहां परफेक्ट पोस्टमैन ट्रेनिंग गाइड देखें।
अनुशंसित पाठ
- सर्वश्रेष्ठ सॉफ्टवेयर परीक्षण उपकरण 2021 (क्यूए टेस्ट स्वचालन उपकरण)
- परीक्षण प्राइमर eBook डाउनलोड
- पोस्टमैन ट्यूटोरियल: एपीआई टेस्ट पोस्टमैन का उपयोग करना
- लोडरनर VuGen स्क्रिप्टिंग का उपयोग करके वेब सेवा प्रदर्शन परीक्षण
- विभिन्न एपीआई प्रारूपों के परीक्षण के लिए पोस्टमैन का उपयोग कैसे करें?
- एचपी लोडरनर ट्यूटोरियल के साथ लोड परीक्षण
- डेस्कटॉप, क्लाइंट सर्वर परीक्षण और वेब परीक्षण के बीच अंतर
- क्या आप एक नए या उन्नत परीक्षक हैं? ताश के पत्तों के इस खेल से खोजें