सरू फिक्स्चर: 5 महत्वपूर्ण तथ्य जो आपको जानना चाहिए

परीक्षण स्वचालन में सर्वोत्तम प्रथाओं में से एक परीक्षण डेटा को परीक्षण फ़ाइलों से अलग करना है। परीक्षण ढांचे को डिजाइन करते समय यह पहलू प्राथमिक आवश्यकता में से एक है। सरू हमें परीक्षण डेटा को अलग करने की क्षमताओं में मदद करता है सरू फिक्स्चर. इस विषय में, हम के बारे में चर्चा करेंगे व्यावहारिक कार्यान्वयन और वास्तविक समय के उदाहरणों के साथ सरू जुड़नार

विषय - सूची

सरू में एक स्थिरता क्या है?

सरू फिक्स्चर का उपयोग किया जा सकता है बाहरी फाइलों से स्रोत डेटा. सरू में फिक्स्चर आपकी मदद करते हैं फाइलों से पढ़ें या लिखें. परीक्षण स्वचालन में लोकप्रिय ढांचे में से एक डेटा-संचालित ढांचा है जहां हम डेटा को परीक्षण फ़ाइलों से अलग करते हैं। हम आमतौर पर डेटा को एक्सेल जैसी बाहरी फाइल में रखते हैं और बाहरी पुस्तकालयों का उपयोग करके उन्हें पढ़ते हैं। सरू हमें फाइलों से डेटा पढ़ने के लिए समान सुविधा प्रदान करता है।

सरू हमें एक फोल्डर प्रदान करता है जिसका नाम है फिक्स्चर, जहाँ हम JSON फ़ाइलें बना सकते हैं और उससे डेटा पढ़ सकते हैं जहाँ हम उन फ़ाइलों को कई परीक्षण फ़ाइलों में पढ़ सकते हैं। हम डेटा को इस रूप में स्टोर करेंगे मौलिक मूल्य जोड़ी और उन तक पहुंचें।

टेस्ट में सरू फिक्स्चर का उपयोग कैसे करें?

हम नीचे दिए गए सिंटैक्स के माध्यम से सरू जुड़नार का उपयोग कर सकते हैं:

cy.fixture(filePath)
cy.fixture(filePath, encoding)
cy.fixture(filePath, options)
cy.fixture(filePath, encoding, options)

हम उन मापदंडों को समझेंगे जिन्हें जुड़नार में पारित किया जा सकता है

दस्तावेज पथ - वह पथ जहां आपने अपना परीक्षण डेटा संग्रहीत किया है

एन्कोडिंग - फ़ाइल का उपयोग करते समय उपयोग की जाने वाली एन्कोडिंग। कुछ एन्कोडिंग एएससीआई, बेस 64, हेक्स, बाइनरी इत्यादि हैं

विकल्पों - विकल्पों में, हम पास कर सकते हैं मध्यांतर प्रतिक्रिया। यह हल करने के लिए समयबाह्य निर्दिष्ट करना है साइ.स्थिरता ()

सरू में फिक्स्चर से डेटा कैसे पढ़ा जाए?

हम के तहत एक फाइल में परीक्षण डेटा को परिभाषित करेंगे स्थिरता फ़ोल्डर। हम सरू फिक्स्चर का उपयोग करके परीक्षण स्क्रिप्ट में JSON फ़ाइल से परीक्षण डेटा तक पहुंचेंगे।

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

चलिए नाम की एक फाइल बनाते हैं क्रेडेंशियल.जेसन स्थिरता फ़ोल्डर के तहत। हम JSON फॉर्मेट में वेरिएबल्स को परिभाषित करेंगे।

{
    "username" : "[email protected]",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
1 ठीक करें
स्थिरता फ़ाइल उदाहरण

स्थिरता फ़ाइल से परीक्षण फ़ाइल में मानों तक पहुँचना

चूंकि हमने अपने JSON मानों को परिभाषित किया है क्रेडेंशियल.जेसन फ़ाइल में, हम देखेंगे कि हम साइप्रस फिक्स्चर का उपयोग करके अपनी परीक्षण फ़ाइल में उन्हें कैसे एक्सेस कर सकते हैं।

हम फिक्स्चर डेटा का उपयोग करके एक्सेस करेंगे this पहले हुक में कीवर्ड

वर्णन करें ("सरू फिक्स्चर उदाहरण", फ़ंक्शन () {पहले (फ़ंक्शन () { cy.fixture ('क्रेडेंशियल्स')। तब (फ़ंक्शन (टेस्टडेटा) {this.testdata = testdata})})})

उपरोक्त उदाहरण में, हम अपनी JSON फ़ाइल को एक्सेस कर रहे हैं cy.fixture('क्रेडेंशियल्स'). चूँकि हमारी JSON फ़ाइल का नाम है क्रेडेंशियल.जेसन, हम हैं फ़ाइल नाम को cy.fixture में पास करना (). अब हम उपनाम अवधारणा का उपयोग कर रहे हैं और अपने डेटा को परिभाषित कर रहे हैं परीक्षण डेटा. चर के साथ परीक्षण डेटा, हम अपनी परीक्षण फ़ाइल में उपयोगकर्ता नाम और पासवर्ड के मानों का उपयोग कर सकते हैं

वर्णन करें ("सरू फिक्स्चर उदाहरण", फ़ंक्शन () {पहले (फ़ंक्शन () { cy.fixture ('क्रेडेंशियल्स')। तब (फ़ंक्शन (टेस्टडेटा) {this.testdata = testdata})}) it("वैध क्रेडेंशियल के साथ लॉगिन करें ", फ़ंक्शन () { cy.visit(this.testdata.adminUrl) cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testdata .username) cy.get('[id=Password]').clear() cy.get('[id=Password]').type(this.testdata.password) cy.get('[type=submit] ').क्लिक (); cy.url()। चाहिए ('be.equal', this.testdata.adminUrl)}); });

जैसा कि आप ऊपर देख सकते हैं, in .type() हम अपने क्रेडेंशियल्स से मान पास कर रहे हैं। जसन फ़ाइल के रूप में यह.testdata.उपयोगकर्ता नाम. इसी तरह, पासवर्ड के लिए हम मूल्य का उपयोग कर रहे हैं यह.टेस्टडेटा.पासवर्ड. यूआरएल के लिए, हम यूज़रनेम और पासवर्ड के समान ही उपयोग कर रहे हैं।

जब हम परीक्षण केस चलाते हैं, तो आप डैशबोर्ड में मूल्य मुद्रित होते हुए देख सकते हैं। इस तरह, हमने सरू फिक्स्चर का उपयोग करके अपने परीक्षण मामले को निष्पादित किया है

2 ठीक करें
स्थिरता परीक्षा परिणाम

सरू एकाधिक फिक्स्चर

इस खंड में, हम समझेंगे कि कई फिक्स्चर फ़ाइलों के साथ सरू फिक्स्चर का उपयोग कैसे करें।

यदि हम एक ही परीक्षण फ़ाइल के लिए अलग-अलग फ़िक्स्चर डेटा का उपयोग करना चाहते हैं, उदाहरण के लिए, लॉगिन पृष्ठ के लिए हमें सत्यापित करने के लिए क्रेडेंशियल के दो सेट हैं, तो हम फ़ाइलों तक कैसे पहुंच सकते हैं?

एकाधिक लिखने का एक तरीका है it ब्लॉक जो एक ही कोड को बार-बार दोहराएंगे। दूसरे तरीके से, हम उपयोग कर सकते हैं विभिन्न परीक्षण तक पहुँचने के लिए सरू जुड़नार विशिष्ट फ़ाइल में डेटा। आइए देखें कि हम सरू जुड़नार का उपयोग करके इसे कैसे प्राप्त कर सकते हैं

हमारे पास पहले से ही एक फिक्स्चर फ़ाइल है जिसका नाम है क्रेडेंशियल.जेसन.

{
    "username" : "[email protected]",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

अब हम एक और फिक्सचर फाइल बनाते हैं जिसका नाम है userData.json जहां हम अलग-अलग अमान्य उपयोगकर्ता नाम और पासवर्ड का उपयोग करेंगे।

{
    "username" : "[email protected]",
    "password" : "user",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

अब देखते हैं कि हम अपनी टेस्ट फाइल में दो अलग-अलग डेटा को कैसे एक्सेस कर सकते हैं।

हम दो अलग-अलग फ़िक्स्चर फ़ाइलों का उपयोग करने की शर्त का उपयोग करके एक ही परीक्षण फ़ाइल को पुन: सक्रिय करेंगे।

const testValueFixtures = [{"नाम": "क्रेडेंशियल्स", "संदर्भ": "1"}, {"नाम": "उपयोगकर्ता डेटा", "संदर्भ": "2"}] वर्णन करें ('ऑटोमेशन टेस्ट सूट - फिक्स्चर', function () {// दोनों फिक्स्चर के माध्यम से लूपिंग testValueFixtures.forEach((fixtureData) => {वर्णन (fixtureData.context, () => {// से पहले स्थिरता फ़ाइल से परीक्षण डेटा तक पहुंच (फ़ंक्शन () { cy. फिक्स्चर (फिक्स्चरडेटा.नाम)। तब (फ़ंक्शन (टेस्टडेटा) {this.testData = testData;})}) यह ("लॉगिन", फ़ंक्शन () { cy.visit ('https://admin-demo.nopcommerce.com /admin/') cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testData.username) cy.get('[id= पासवर्ड]').clear() cy.get('[id=Password]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( ).चाहिए ('be.equal', this.testData.adminUrl) }) }) }) })
3 ठीक करें
दो स्थिरता डेटा उदाहरण तक पहुंचना

प्रारंभ में, हम नामक एक चर बना रहे हैं टेस्टवैल्यू फिक्स्चर एक के रूप में सरणी जहां हम दो स्थिरता फाइलों का संदर्भ बना रहे हैं। पहले संदर्भ में, हम नाम को 'के रूप में पारित कर रहे हैंसाख'और दूसरा' के रूप मेंउपयोगकर्ता का आधार - सामग्री' , क्योंकि वे हमारे JSON फ़ाइल नामों का प्रतिनिधित्व करते हैं जहां हमने अपना मान परिभाषित किया है।

दूसरे, हम वर्णन ब्लॉक में दोनों स्थिरता चर के माध्यम से लूप कर रहे हैं। और जैसा कि हमने पहले चर्चा की थी, हम डेटा को पहले ब्लॉक में उपयोग कर रहे हैं .this()

बाकी कोड वही है, जहां हम डेटा पास कर रहे हैं cy.get()

जब हम अपना परीक्षण निष्पादित करते हैं, तो यह दो सेटों में चलेगा जहां पहला मामला वैध प्रमाण-पत्रों के साथ गुजरता है और दूसरा अमान्य प्रमाण-पत्रों के कारण विफल हो जाता है

4 ठीक करें
पहली स्थिरता फ़ाइल का उपयोग कर स्थिरता

जैसा कि आप ऊपर स्नैपशॉट में देख सकते हैं, पहला परीक्षण मामला बीत चुका है और इसने पहली स्थिरता फ़ाइल से मान दर्ज किया है क्रेडेंशियल.जेसन

5 ठीक करें
दूसरी स्थिरता फ़ाइल का उपयोग करके स्थिरता उदाहरण

जैसा कि आप उपरोक्त स्क्रीनशॉट में देख सकते हैं, परीक्षण विफल हो गया है और पास किए गए मान दूसरी स्थिरता फ़ाइल से हैं userData.json

आप यह भी देख सकते हैं कि पेज ऑब्जेक्ट मॉडल का उपयोग करके सरू फिक्स्चर कैसे लिखना है यहाँ उत्पन्न करें