सभी को नमस्कार! मुझे यह लेख लिखने के लिए मेरे छात्रों और शिष्यों ने प्रेरित किया। मैं अक्सर उन्हें सलाह देता हूं कि जैसे ही वे पर परीक्षण स्वचालन प्रक्रिया के साथ सहज हो जाएं, सीख लें। आइए देखें कि REST API परीक्षण के संदर्भ में आपके परीक्षण स्वचालन ढांचे में टाइपस्क्रिप्ट का उपयोग करने की विशेषताएं क्या हैं… जावास्क्रिप्ट टाइपस्क्रिप्ट आप किसी परीक्षण प्रोजेक्ट का पूरा कोड पा सकते हैं। यहां टाइपप्रति आइए ज्यादा गहराई में न जाएं कि क्या है और यह से कैसे अलग है और महत्वपूर्ण बात बताते हैं - . लेकिन, काफी महत्वपूर्ण भी - यह सीधे ( प्लेटफ़ॉर्म) पर निर्भर करता है। टाइपस्क्रिप्ट जावास्क्रिप्ट यह भाषा है प्रोग्रामिंग जावास्क्रिप्ट Node.js पैकेज के रूप में प्रस्तुत किया गया है, इसलिए मैं इसे कुछ शानदार सुविधाओं के साथ के रूप में देखता हूं। टाइपस्क्रिप्ट को Node.js जावास्क्रिप्ट भाषा के बारे में और यह क्या पेशकश करती है, इसके बारे में अधिक जानने के लिए कृपया पर जाएँ, जबकि हम परीक्षण स्वचालन के संदर्भ में इसकी विशेषताओं के बारे में बात करने जा रहे हैं... आधिकारिक वेबसाइट प्रोजेक्ट सेटअप आइए पर परीक्षण स्वचालन परियोजना निर्माण प्रक्रिया से गुजरें: टाइपस्क्रिप्ट एक प्रोजेक्ट बनाएं. Node.js npm init -y पैकेज स्थापित करें। टाइपस्क्रिप्ट npm i typescript प्रोजेक्ट के लिए एक डिफ़ॉल्ट कॉन्फ़िगरेशन जेनरेट करें - । टाइपस्क्रिप्ट tsconfig.json npx tsc --init उपरोक्त आदेश एक डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल उत्पन्न करेगा, लेकिन मैं इसे कुछ तरह छोटा करने की सलाह देता हूं: इस { "compilerOptions": { "baseUrl": "./", "module": "esnext", "target": "esnext", "sourceMap": false, "moduleResolution": "node", "allowJs": true, "skipLibCheck": true, "resolveJsonModule": true, "allowSyntheticDefaultImports": true, "paths": { "*": ["./*"] } } } इस कॉन्फ़िगरेशन में आवश्यक न्यूनतम शामिल है: नवीनतम संस्करण का उपयोग करता है, EcmaScript JSON आयात उपलब्ध कराता है, आपको आयात में निरपेक्ष पथ का उपयोग करने देता है। आप का उपयोग करके अपनी कॉन्फ़िगरेशन का विस्तार कर सकते हैं। आधिकारिक दस्तावेज़ीकरण उपकरण चयन आप पारिस्थितिकी तंत्र द्वारा पेश किए गए किसी भी उपकरण का उपयोग कर सकते हैं, लेकिन मेरे अनुभव में - कुछ अच्छे कारणों से चुनते हैं: Node.js टाइपस्क्रिप्ट के साथ काम करने वाले अधिकांश इंजीनियर जेस्ट महान सामुदायिक समर्थन (अपडेट, उत्तर, दस्तावेज़, कोड उदाहरण), लचीला विन्यास. पहले, मुझे परियोजना के मूल को स्थापित करने के लिए + उपयोग करने में मज़ा आया था, लेकिन अब मैं पर भी कायम हूं, क्योंकि इसमें टेस्ट रनर और अभिकथन लाइब्रेरी दोनों शामिल हैं। मोचा चाय का जेस्ट सबसे लोकप्रिय HTTP क्लाइंट प्रतीत होता है, इसलिए मेरा सुझाव है कि यह आपकी पसंद भी है। एक्सिओस यह नहीं कह सकता कि आपको अपने सेटअप के लिए इसका उपयोग करने के लिए मजबूर किया जाता है, लेकिन मैं कह रहा हूं कि जब आप परियोजनाओं को देखते हैं तो यह सामान्य बात है। अब, बस इन पैकेजों को निर्भरता के रूप में स्थापित करें: npm i jest axios संग्रह टाइप करें कुछ पैकेजों (जैसे ) में प्रकार होते हैं, लेकिन नहीं होते हैं। इसके अलावा, ठीक से काम करने के लिए के साथ एक पैकेज की आवश्यकता होती है - पहला सुविधाओं को सक्षम करता है और दूसरा आपको का उपयोग करने देता है। एक्सियोस टाइपस्क्रिप्ट जेस्ट और मोचा में जेस्ट को @types/jest ts-jest टाइपस्क्रिप्ट IntelliSense इसलिए ध्यान रखें - यदि आपके पास कुछ पैकेजों का उपयोग करने का प्रयास करते समय स्वत: पूर्ण सुविधा नहीं है - तो आप संभवतः प्रकार की घोषणाओं से चूक रहे हैं। आइए -संबंधित एक्सटेंशन (पैकेज) भी इंस्टॉल करें: टाइपस्क्रिप्ट npm i ts-jest @types/jest विन्यास कॉन्फिग प्रीसेट की आवश्यकता होती है, इसलिए आपको इसे अपनी कॉन्फिग (या ) फ़ाइल में घोषित करना होगा: जेस्ट को ts-jest package.json { "jest": { "preset": "ts-jest" } } यदि आप की योजना बना रहे हैं, तो आपको अपनी कॉन्फ़िगरेशन को भी समायोजित करने की आवश्यकता होगी: किसी प्रोजेक्ट के भीतर निरपेक्ष पथ का उपयोग करने { "jest": { "preset": "ts-jest", "moduleDirectories": [ "node_modules", "<rootDir>" ] } } यह कॉन्फ़िगरेशन आपको एक साधारण कमांड के साथ परीक्षण चलाने की अनुमति देता है... jest तो, अपनी स्क्रिप्ट को में इस प्रकार कॉन्फ़िगर करें: परीक्षण package.json { "scripts": { "test": "jest" } } और फिर किसी भी समय या कमांड के साथ अपने परीक्षण चलाएं। npm test npm run test यदि आप उपयोगकर्ता हैं तो मैं आपको इंस्टॉल करने की भी सलाह देता हूं - यह आपको केवल एक क्लिक के साथ वांछित परीक्षण/सूट / की अनुमति देता है। यह एक अंतर्निहित सुविधा है। विज़ुअल स्टूडियो कोड जेस्ट रनर एक्सटेंशन चलाने डीबग करने वेबस्टॉर्म में, कस्टम प्रकार REST API परीक्षण में पेश की जाने वाली मुख्य विशेषता है... , बिल्कुल! टाइपस्क्रिप्ट द्वारा प्रकार आप घोषित कर सकते हैं कि आपका अनुरोध और प्रतिक्रिया निकाय कैसा दिखना चाहिए, यानी, , और आदि। प्रमुख नाम मूल्य प्रकार आइए एक सर्वर को एक उदाहरण के रूप में लें - हम एंडपॉइंट के लिए इसके अनुरोध बॉडी पेलोड को एक प्रकार के रूप में लिख सकते हैं: पेसिस /auth export type AuthRequestBody = { login: string password: string } और प्रतिक्रिया निकाय के लिए भी यही बात है - सर्वर को हमारे अनुरोध पर क्या भेजना चाहिए: export type AuthResponseBody = { token?: string message?: string } चूंकि सफलता/असफलता परिदृश्यों के लिए एक अलग पेलोड होगा - आप " के माध्यम से कुंजियों को "वैकल्पिक" के रूप में चिह्नित कर सकते हैं। चरित्र। ?" एक बार यह हो जाए - आप अपने परीक्षणों में अनुरोध और सत्यापन लिखने के लिए इन प्रकारों का उपयोग कर सकते हैं... अनुरोध में, आप अनुरोध कॉन्फ़िगरेशन के माध्यम से बता सकते हैं कि आप कौन सा निकाय भेज रहे हैं: Axios const payload: AxiosRequestConfig<AuthRequestBody> = { method: 'post', url: '/auth', data: { login: process.env.USERNAME, password: process.env.PASSWORD, }, } में मतलब बिल्कुल यही है ☝️ AxiosRequestConfig<AuthRequestBody> AuthRequestBody इसका मतलब है कि आपको उस पेलोड का उपयोग करने के लिए मजबूर किया जाएगा जो ऑब्जेक्ट में दिए गए प्रकार से मेल खाता है। यदि आप कुछ आवश्यक फ़ील्ड सेट करना भूल जाते हैं या कुछ अत्यधिक फ़ील्ड सेट करना भूल जाते हैं - तो आपको एक त्रुटि दिखाई देगी। data AuthRequestBody जवाब यही बात प्रतिक्रिया के बारे में भी की जा सकती है: const response: AxiosResponse<AuthResponseBody> = await client.request(payload) यह ऑब्जेक्ट में स्वत: पूर्ण जोड़ देगा, जिससे आप या फ़ील्ड तक पहुंचने में सक्षम होंगे। response.data response.data.token response.data.message अग्रिम औज़ार उपरोक्त सरल सामग्री के अलावा, भी संभव है। यह आपको प्रतिक्रिया निकाय में प्रत्येक कुंजी की जांच करने की अनुमति नहीं देता है, यह देखने के लिए कि क्या यह स्कीमा से मेल खाता है, बल्कि । आपके कस्टम प्रकारों से JSON स्कीमा उत्पन्न करना पूरे पेलोड की जांच करता है तो विचार यह है: कस्टम प्रकारों से जेनरेट करें। JSON स्कीमा प्रतिक्रिया निकाय को सत्यापित करने के लिए कस्टम मैचर उपयोग करें। toMatchSchema का बहुत बढ़िया चीज़, लेकिन ध्यान रखें कि इन परिवर्तनों के बाद आपके परीक्षण ख़राब हो सकते हैं - ऐसा तब होता है जब कुछ अतिरिक्त फ़ील्ड दिखाई देते हैं, इसलिए आपको नियमित रूप से स्कीमा को अपडेट करने की आवश्यकता होगी। निष्कर्ष सेटअप मुश्किल हो सकता है, खासकर यदि यह आपका पहली बार है, लेकिन यह इसके लायक है! टाइपस्क्रिप्ट यदि आप अपने इनपुट और आउटपुट डेटा को प्रकारों के साथ कवर करते हैं - तो इन ऑब्जेक्ट्स को पार्स करते समय कोई भी तरीका नहीं है कि आप टाइपो या कोई अन्य सिंटैक्स त्रुटि करेंगे। यह आपको साधारण गलतियों से बचाता है और आपको आपके अनुरोधों की संरचना को सीधे आपके कोड में देखने की सुविधा देता है, इसलिए आपको कोई ( की तरह) खोलने की ज़रूरत नहीं है और आपको यह देखने के लिए अनुरोध की तलाश नहीं करनी है कि यह किस निकाय से अनुरोध/प्रतिक्रिया करता है। साथ। HTTP संग्रह पोस्टमैन मुझे अपने अनुभव के बारे में बताएं और आप इसके बारे में क्या सोचते हैं।