paint-brush
REST API स्वचालित टेस्ट के लिए नाटककार बनाम साइप्रस: शीर्ष पर कौन आता है?द्वारा@bormando
8,588 रीडिंग
8,588 रीडिंग

REST API स्वचालित टेस्ट के लिए नाटककार बनाम साइप्रस: शीर्ष पर कौन आता है?

द्वारा Dmitrii Bormotov3m2023/09/05
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

साइप्रस दोहरे उद्देश्य वाला एक परीक्षण स्वचालन ढांचा है - यूआई और एपीआई परीक्षण कवरेज। नाटककार का उद्देश्य बिल्कुल समान है, लेकिन यह किसी भी ब्राउज़र के साथ एक बॉक्स से बाहर नहीं आता है - आपको उन्हें एक अलग कमांड के साथ इंस्टॉल करना होगा (यदि आप चाहते हैं)। जब हल्के और सबसे तेज़ टूल की बात आती है - तो यह निश्चित रूप से प्लेराइट होगा, क्योंकि इसे इंस्टॉल करने में कम समय लगता है और ब्राउज़र चलाने के लिए अतिरिक्त संसाधनों का उपभोग नहीं होता है, क्योंकि एपीआई परीक्षण के संबंध में यह अनावश्यक है।
featured image - REST API स्वचालित टेस्ट के लिए नाटककार बनाम साइप्रस: शीर्ष पर कौन आता है?
Dmitrii Bormotov HackerNoon profile picture

सभी को नमस्कार!


मैं हमेशा दोहरे उद्देश्य वाले परीक्षण स्वचालन ढाँचे - यूआई और एपीआई परीक्षण कवरेज को संदेह की दृष्टि से देखता हूँ। आम तौर पर, आप अलग-अलग टेस्ट रन (या इवेंट प्रोजेक्ट) में परीक्षणों की अलग-अलग परतें चलाएंगे, क्योंकि उनमें से प्रत्येक की संभवतः अपनी-अपनी परतें होती हैं निर्भरताएँ , विन्यास, और पर्यावरण चर .


हाल ही में, मैंने एपीआई परीक्षण के संदर्भ में नाटककार की पेशकश पर एक नज़र डाली और इसकी तुलना अपने साइप्रस अनुभव से की, इसलिए यहां मुझे आप सभी के साथ साझा करने के लिए क्या मिला है...

सरो

साइप्रस ने कुछ समय पहले एपीआई परीक्षण संभव बनाया था। उदाहरणों के साथ एपीआई परीक्षण के संदर्भ में यह उपकरण कितना बढ़िया है, इसके बारे में आप लर्न पोर्टल पर एक लेख पा सकते हैं।

स्थापना प्रदर्शन

परीक्षण चलाने के लिए, आपको अपनी प्रोजेक्ट निर्भरताएँ स्थापित करने की आवश्यकता है, है ना? ठीक है, साइप्रस एक इलेक्ट्रॉन ब्राउज़र के साथ आता है, और यदि आप विशेष रूप से एपीआई परीक्षण चलाना चाहते हैं तो इसे स्थापित करना काफी अनावश्यक (और समय लेने वाला) हो सकता है (मान लीजिए, आपको यूआई और एपीआई परीक्षण चलाने के लिए सीआई में अलग-अलग नौकरियां मिली हैं, जो आमतौर पर होता है)।


सरू साफ स्थापना का समय


अच्छा नहीं लग रहा, हुह? ☝️


इसके अलावा, जब आप एपीआई परीक्षण चलाते हैं - तो यह वैसे भी एक ब्राउज़र लॉन्च करता है।


साइप्रस एपीआई स्पेक्स पर ब्राउज़र सत्र चलाता है


ब्राउज़र में एपीआई परीक्षण विनिर्देश का रिकॉर्ड

परीक्षण उदाहरण

साइप्रस के साथ एक सरल एपीआई परीक्षण इस तरह दिखेगा:


 it('Sign in with valid credentials', () => { cy.request('POST', '/auth', { login: Cypress.env('username'), password: Cypress.env('password'), }).should(response => { expect(response.body.token).to.be.a('string') expect(response.status).to.eq(200) }) })


सुंदर लग रहा है

नाटककार

साइप्रस की तरह, प्लेराइट एक टेस्ट ऑटोमेशन फ्रेमवर्क है - आप केवल एक ब्राउज़र ऑटोमेशन टूल का उपयोग कर सकते हैं, या पूरे फ्रेमवर्क (टेस्ट रनर, एसेरेशन लाइब्रेरी, ब्राउज़र ऑटोमेशन टूल, HTTP क्लाइंट, रिपोर्टर, आदि) का उपयोग कर सकते हैं।

स्थापना प्रदर्शन

यहां अंतर यह है कि प्लेराइट बॉक्स से बाहर किसी भी ब्राउज़र के साथ नहीं आता है - आपको उन्हें एक अलग कमांड के साथ इंस्टॉल करना होगा (यदि आप चाहते हैं)।


नाटककार स्वच्छ स्थापना समय


यह यहां एक बड़ा अंतर बनाता है, क्योंकि विशेष रूप से एपीआई परीक्षण चलाने के मामले में, यह कोई ब्राउज़र या कोई अन्य डेस्कटॉप ऐप नहीं चलाएगा और आपकी मशीन पर कुछ रन टाइम और संसाधनों को बचाएगा।

परीक्षण उदाहरण

प्लेराइट के साथ एक सरल एपीआई परीक्षण इस तरह दिखेगा:


 import {test, expect} from '@playwright/test' test('Sign in with valid credentials', async ({request}) => { const response = await request.post('/auth', { data: { login: process.env.USERNAME, password: process.env.PASSWORD, }, }) expect(response.status()).toEqual(200) expect(await response.json()).toEqual({ token: expect.any(String), }) })


मैं वस्तुओं पर जोर देने के जेस्ट-जैसे वाक्यविन्यास को उजागर करना चाहूंगा:


 expect(await response.json()).toEqual({ token: expect.any(String), })


यह सिंटैक्स आपको केवल एक expect कॉल ☝️ के साथ ऑब्जेक्ट की पूरी संरचना को सत्यापित करने की अनुमति देता है

निष्कर्ष

एपीआई परीक्षण छोटे और हल्के होने चाहिए क्योंकि उन्हें चलाने के लिए बहुत अधिक की आवश्यकता नहीं होती है।


आइए उपरोक्त सामग्री को संक्षेप में प्रस्तुत करें...

स्थापना प्रदर्शन

नाटककार एक बॉक्स से 13 गुना तेज स्वच्छ इंस्टॉलेशन के साथ जीतता है।


ℹ️ यदि आप पूर्व-स्थापित निर्भरता वाली छवि का उपयोग करते हैं या उन्हें अपने सीआई स्टोरेज में कैश करते हैं तो आप सीआई में साइप्रस इंस्टॉलेशन समय को कम कर सकते हैं।

प्रदर्शन चलाएँ

नाटककार जीतता है क्योंकि उसे एपीआई परीक्षण चलाने के लिए ब्राउज़र की आवश्यकता नहीं होती है, इसलिए वह सीधे मुद्दे पर आता है।


ℹ️ एपीआई परीक्षणों में ब्राउज़र को "नहीं चलाने" का कोई तरीका नहीं है, क्योंकि यह फ्रेमवर्क के तर्क का हिस्सा है।

सिंटैक्स का परीक्षण करें

यहां कोई विजेता नहीं चुन सकता, क्योंकि न तो साइप्रस और न ही नाटककार के लिए कोई वस्तुनिष्ठ लाभ है।


उन दोनों को थोड़े अंतर के साथ बहुत सीधा वाक्यविन्यास मिला। मैं कहूंगा कि यह परीक्षक का निर्णय है कि वह यहां क्या पसंद करता है।

कुल मिलाकर

मैं निश्चित रूप से कह सकता हूं कि इसके प्रदर्शन के कारण एपीआई परीक्षण स्वचालन के लिए प्लेराइट का उपयोग करना काफी सुरक्षित है। यदि आपके पास पहले से ही इस ढांचे के साथ यूआई परीक्षण हैं तो यह एक उचित समाधान होगा।


उन लोगों के लिए मेरी सलाह जो यूआई परीक्षणों के लिए साइप्रस का उपयोग करते हैं और एपीआई परत को कवर करना चाहते हैं - बेहतर कुछ और का उपयोग करें ( जेस्ट + एक्सियोस , आप वहां एक उदाहरण देख सकते हैं)।