पहले निष्कर्ष
-
Postman चुनें अगर आप किसी API को एक्सप्लोर कर रहे हैं, उसे डॉक्युमेंट कर रहे हैं, या ऐसे लोगों के साथ दोहराने लायक रिक्वेस्ट शेयर कर रहे हैं जो टेस्ट कोड नहीं लिखने वाले।
-
TestSprite चुनें अगर आप ऐसा API कवरेज चाहते हैं जो इस आधार पर बने कि सर्विस असल में क्या एक्सपोज़ करती है, और जो session, state, क्रम और cleanup को प्रोडक्ट के हिस्से के तौर पर संभाले।
-
दोनों चलाएँ अगर आपका collection सचमुच कोई काम कर रहा है। उसे एक्सप्लोरेशन और डॉक्युमेंटेशन के लिए रखें, और रिग्रेशन का भार जनरेटेड कवरेज को उठाने दें।
आमने-सामने
| पहलू | Postman | TestSprite |
|---|---|---|
| मुख्य ताक़त | रिक्वेस्ट को एक्सप्लोर करना, डॉक्युमेंट करना और शेयर करना | सर्विस जो एक्सपोज़ करती है उसका कवरेज जनरेट करना और मेंटेन करना |
| कवरेज कैसे बनता है | कोई हर रिक्वेस्ट जोड़ता है और स्क्रिप्ट में assertions लिखता है | किसी specification या discovery पास से जनरेट होता है, फिर उसे निखारा जाता है |
| Session संभालना | pre-request स्क्रिप्ट्स, जो आप लिखते और मेंटेन करते हैं | Auto-Authentication, एक बार कॉन्फ़िगर किया हुआ |
| कॉल्स के बीच वैल्यूज़ | स्क्रिप्ट्स में सेट किए गए एनवायरनमेंट वेरिएबल | Dynamic Variables, रिस्पॉन्स से जुड़े हुए |
| एक्ज़ीक्यूशन का क्रम | collection का क्रम, हाथ से मैनेज किया हुआ | इससे तय होता है कि हर टेस्ट को क्या चाहिए और वह क्या पैदा करता है |
| Cleanup | जो भी आप स्क्रिप्ट करें | Auto-Cleanup, जो रन ने बनाया उससे जुड़ा हुआ |
| सबसे उपयुक्त | एक्सप्लोरेशन, डॉक्स, मैनुअल वेरिफ़िकेशन | समर्पित QA के बिना रिग्रेशन की व्यापकता |
इन चारों की कार्यप्रणाली के लिए देखें: API टेस्टिंग डॉक्युमेंटेशन।
Postman सचमुच कहाँ बेहतर है
किसी अनजान API को एक्सप्लोर करना। जब आप यह सीख ही रहे हों कि endpoints करते क्या हैं, तब उन्हें हाथ से टटोलने से बेहतर कुछ नहीं।
रिप्रोडक्शन शेयर करना। ऐसा collection जिसे कोई इम्पोर्ट करके चला सके, किसी API टीम को मिलने वाली सबसे साफ़ बग रिपोर्ट है।
जीवंत डॉक्युमेंटेशन। ऐसी रिक्वेस्ट जो उदाहरण भी हैं, और जिस API का वे वर्णन करती हैं उसी के साथ रखी जाती हैं।
स्क्रिप्ट वाले collections कहाँ महँगे पड़ते हैं
हर गंभीर collection में आख़िरकार pre-request और टेस्ट स्क्रिप्ट्स का एक पूरा ढेर खड़ा हो जाता है, जो टोकन संभालता है, आइडेंटिफ़ायर कैप्चर करता है, क्रम लागू करता है और cleanup करता है। यह JavaScript में लिखा एक छोटा फ़्रेमवर्क है, जो एक ऐसे टूल के अंदर बैठा है जिसे फ़्रेमवर्क बनने के लिए डिज़ाइन ही नहीं किया गया था, और जिसे आमतौर पर सिर्फ़ एक व्यक्ति समझता है।
यह काम करता है। क़ीमत यह है कि जो व्यक्ति इसे समझता है वही निर्भरता बन जाता है, और collection लाल होने पर उसे ठीक करने के बजाय अलग-थलग कर दिया जाता है।
जब collection ही डॉक्युमेंटेशन हो
एक स्थिति ऐसी है जहाँ collection वह काम कर रहा होता है जिसकी जगह कोई जनरेटेड सूट नहीं ले सकता, और उसे समेटकर हटाने के बजाय बचाकर रखना ही ठीक है।
अगर आपका collection वही है जिसे कोई बाहरी उपभोक्ता आपका API समझने के लिए इम्पोर्ट करता है, तो वह रन बटन वाला डॉक्युमेंटेशन है, और उसकी क़ीमत इसी में है कि कोई अजनबी उसे पढ़ सके। इसका तक़ाज़ा है कि उसे छोटा, चुना हुआ और उदाहरण-आधारित रखा जाए, जो रिग्रेशन सूट की ज़रूरत के बिलकुल उलट है। जो collection स्क्रिप्टेड सेटअप के साथ चार सौ रिक्वेस्ट तक बढ़ चुका है, वह अब यह मक़सद पूरा नहीं कर रहा, और शायद काफ़ी समय से नहीं कर रहा।
साफ़ बँटवारा यह है कि collection को सामने का दरवाज़ा रहने दें और सुरक्षा जाल का काम किसी और चीज़ को सौंप दें। दोनों अलग-अलग दिशाओं में खींचते हैं, और एक ही चीज़ से दोनों काम कराने की कोशिश ही वह वजह है जिससे इतने सारे collections न पढ़ने लायक रह जाते हैं, न भरोसे लायक।
दोनों को चलाना
collection को एक्सप्लोरेशन, डॉक्युमेंटेशन और रिप्रोडक्शन के लिए रखें। जिन endpoints और इंटीग्रेशन चेन का चलते रहना ज़रूरी है, उन्हें जनरेटेड कवरेज संभालने दें। व्यवहार में दोनों में ज़्यादा ओवरलैप नहीं होता, क्योंकि वे अलग-अलग सवालों के जवाब दे रहे हैं।
अगर आप परख रहे हैं, तो जानबूझकर कुछ तोड़ें
कोई असली रिग्रेशन डालें, जैसे एक सेव बटन जो अब डेटा सहेजता ही नहीं, और देखें कि हर टूल क्या रिपोर्ट करता है। तीन सवाल: क्या वह फ़ेल होता है, क्या फ़ेल्योर असली गड़बड़ी का नाम बताता है, और क्या उसे ठीक करने वाला व्यक्ति या एजेंट उसी आउटपुट से शुरुआत कर सकता है, बिना पूरी कहानी दोबारा जोड़े। जो टूल ऐसे रन को पास बता दे जो अपने assertions तक पहुँचा ही नहीं, वह इकलौते मायने रखने वाले टेस्ट में फ़ेल हो चुका है।
डैशबोर्ड से रिपॉज़िटरी कनेक्ट करें और रन उसी डिप्लॉयमेंट से शुरू होंगे जो आप पहले से बनाते हैं, या इसके बजाय अपने ही workflow में एक स्टेप जोड़ दें। दोनों तरीक़े यहाँ बताए गए हैं: CLI रिपॉज़िटरी।
TestSprite वह संभालता है जो collection को नहीं संभालना चाहिए
रिग्रेशन की व्यापकता, जिसमें state की चारों समस्याएँ प्रोडक्ट के तौर पर हल हैं: sessions के लिए Auto-Authentication, ऐसी वैल्यूज़ के लिए Dynamic Variables जो सिर्फ़ रनटाइम पर मौजूद होती हैं, क्रम के लिए Dependency Chains, और रन ने जो बनाया उसके लिए Auto-Cleanup। यही वे चीज़ें हैं जो एक collection को स्क्रिप्टिंग प्रोजेक्ट में बदल देती हैं।
कवरेज चालू सर्विस पर API Discovery और आपकी specification से आता है, जिससे वे एरर पाथ और बाउंड्री केस भी बनते हैं जिन्हें हाथ से बनाए गए collections छोड़ देते हैं। आप उसे pre-request स्क्रिप्ट्स में नहीं, बल्कि सीधी-सादी भाषा में निखारते हैं।
फ़ायदा यह है कि आपका collection फिर से वही बन सकता है जिसमें वह सचमुच सबसे अच्छा है: एक्सप्लोर करना, डॉक्युमेंट करना, और किसी को ऐसा रिप्रोडक्शन थमाना जिसे वह इम्पोर्ट करके चला सके। किसी को भी वह व्यक्ति नहीं बनना पड़ेगा जो टोकन रिफ़्रेश स्क्रिप्ट समझता है।
क्या हम अपना collection इम्पोर्ट कर सकते हैं?
मौजूदा collection को माइग्रेट करने लायक टेस्ट की तरह नहीं, बल्कि इस ब्यौरे की तरह देखें कि क्या-क्या मौजूद है। काम की चीज़ endpoints की सूची है।
क्या CI के लिए Newman काफ़ी है?
यह CI में collections को बख़ूबी चलाता है। सवाल रनर का नहीं है, सवाल यह है कि session, state, क्रम और cleanup संभालने वाली स्क्रिप्ट्स को मेंटेन कौन करता है।
और Postman monitors का क्या?
अपटाइम और सीधे-सादे कॉन्ट्रैक्ट चेक के लिए अच्छे हैं। कॉल्स के बीच की निर्भरताओं को समझने वाले कवरेज का विकल्प वे नहीं हैं।
क्या हमारा डॉक्युमेंटेशन चला जाएगा?
नहीं। यहाँ कुछ भी डॉक्युमेंटेशन की भूमिका की जगह नहीं लेता, जो उन कामों में से है जिनमें Postman सचमुच सबसे अच्छा है।
पहले ही दिन कितना कवरेज मिलता है?
एक discovery पास और एक specification मिलकर पूरे सरफ़ेस पर एक प्लान तैयार करते हैं। कुछ भी चलाने से पहले उसे रिव्यू करें और एडमिनिस्ट्रेटिव व इंटरनल रूट हटा दें।
collection को एक्सप्लोरेशन के लिए रखें, रिग्रेशन के लिए नहीं।
किसी API को एक्सप्लोर करने और डॉक्युमेंट करने के लिए Postman सबसे बेहतरीन जगह है। लेकिन जैसे ही collection रिग्रेशन सूट बन जाता है, session, कैप्चर की गई वैल्यूज़, क्रम और cleanup मिलकर एक ऐसा फ़्रेमवर्क बन जाते हैं जिसे आप हाथ से मेंटेन करते हैं। दोनों रखें, और हर एक को वही काम करने दें जिसमें वह अच्छा है।