सभी को नमस्कार! मैं हमेशा दोहरे उद्देश्य वाले परीक्षण स्वचालन ढाँचे - यूआई और एपीआई परीक्षण कवरेज को संदेह की दृष्टि से देखता हूँ। आम तौर पर, आप अलग-अलग टेस्ट रन (या इवेंट प्रोजेक्ट) में परीक्षणों की अलग-अलग परतें चलाएंगे, क्योंकि उनमें से प्रत्येक की संभवतः अपनी-अपनी परतें होती हैं , और . निर्भरताएँ विन्यास, पर्यावरण चर हाल ही में, मैंने परीक्षण के संदर्भ में की पेशकश पर एक नज़र डाली और इसकी तुलना अपने अनुभव से की, इसलिए यहां मुझे आप सभी के साथ साझा करने के लिए क्या मिला है... एपीआई नाटककार साइप्रस सरो कुछ समय पहले परीक्षण संभव बनाया था। उदाहरणों के साथ परीक्षण के संदर्भ में यह उपकरण कितना बढ़िया है, इसके बारे में आप पा सकते हैं। साइप्रस ने एपीआई एपीआई लर्न पोर्टल पर एक लेख स्थापना प्रदर्शन परीक्षण चलाने के लिए, आपको अपनी प्रोजेक्ट निर्भरताएँ स्थापित करने की आवश्यकता है, है ना? ठीक है, के साथ आता है, और यदि आप विशेष रूप से परीक्षण चलाना चाहते हैं तो इसे स्थापित करना काफी अनावश्यक (और समय लेने वाला) हो सकता है (मान लीजिए, आपको यूआई और एपीआई परीक्षण चलाने के लिए सीआई में अलग-अलग नौकरियां मिली हैं, जो आमतौर पर होता है)। साइप्रस एक इलेक्ट्रॉन ब्राउज़र एपीआई अच्छा नहीं लग रहा, हुह? ☝️ इसके अलावा, जब आप परीक्षण चलाते हैं - तो यह वैसे भी एक ब्राउज़र लॉन्च करता है। एपीआई परीक्षण उदाहरण के साथ एक सरल परीक्षण इस तरह दिखेगा: साइप्रस एपीआई 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 गुना ℹ️ यदि आप या में कैश करते हैं तो आप में इंस्टॉलेशन समय को कम कर सकते हैं। पूर्व-स्थापित निर्भरता वाली छवि का उपयोग करते हैं उन्हें अपने सीआई स्टोरेज सीआई साइप्रस प्रदर्शन चलाएँ ✅ जीतता है क्योंकि उसे एपीआई परीक्षण चलाने के लिए ब्राउज़र की आवश्यकता नहीं होती है, इसलिए वह सीधे मुद्दे पर आता है। नाटककार ℹ️ एपीआई परीक्षणों में ब्राउज़र को "नहीं चलाने" का कोई तरीका नहीं है, क्योंकि यह फ्रेमवर्क के तर्क का हिस्सा है। सिंटैक्स का परीक्षण करें यहां कोई विजेता नहीं चुन सकता, क्योंकि न तो और न ही के लिए कोई वस्तुनिष्ठ लाभ है। साइप्रस नाटककार उन दोनों को थोड़े अंतर के साथ बहुत सीधा वाक्यविन्यास मिला। मैं कहूंगा कि यह परीक्षक का निर्णय है कि वह यहां क्या पसंद करता है। कुल मिलाकर मैं निश्चित रूप से कह सकता हूं कि इसके प्रदर्शन के कारण परीक्षण स्वचालन के लिए उपयोग करना काफी सुरक्षित है। यदि आपके पास पहले से ही इस ढांचे के साथ परीक्षण हैं तो यह एक उचित समाधान होगा। एपीआई प्लेराइट का यूआई उन लोगों के लिए मेरी सलाह जो परीक्षणों के लिए उपयोग करते हैं और परत को कवर करना चाहते हैं - बेहतर कुछ और का उपयोग करें ( + , आप एक उदाहरण देख सकते हैं)। यूआई साइप्रस का एपीआई जेस्ट एक्सियोस वहां