“सायप्रेस: ​​डॉक्स फाइल्सची चाचणी कशी करावी” किंवा “ई -2 चाचणीद्वारे डाउनलोड केलेल्या फाइल्सची पडताळणी”

बर्‍याचदा चाचणी केस: पृष्ठावरून फाइल डाउनलोड करा आणि सत्यापित करा की ती डाउनलोड केली आहे आणि त्यामध्ये योग्य माहिती आहे. संभाव्य उपायांपैकी एक म्हणजे फाईल डाउनलोड करणे, त्यास वाचनीय स्वरूपात रूपांतरित करणे आणि सत्यापित करणे होय. हे लक्ष्य साध्य करण्यासाठी सायप्रेस, मॅमथ-कन्व्हर्ट आणि इतर काही साधने वापरू.

या लेखात, आम्ही पुढील परिस्थिती अंमलबजावणीची उदाहरणे पाहू:

- डॉक्सला वेब अ‍ॅपमधून फाइल सिस्टममध्ये डाउनलोड करा - डाउनलोड केलेली फाईल शोधा - ती HTML दस्तऐवजात रूपांतरित करा - दस्तऐवजात सामग्री सत्यापित करा

साधने, जी वापरली जातील

  • सायप्रेस
  • टाइपस्क्रिप्ट
  • विनंती
  • विशाल-रूपांतरण
  • fs

चल जाऊया!

1. सिप्रस चाचणीद्वारे वेब-अनुप्रयोगामधून डॉकएक्स फाइल डाउनलोड करा

सर्व प्रथम, आम्हाला एक पृष्ठ उघडण्याची आणि त्या पृष्ठावरील तो घटक शोधण्याची आवश्यकता आहे, ज्यामुळे फाइल डाउनलोड करण्यास चालना मिळते. नेहमीच्या तपासणी उपकरणासह हे करणे सोपे आहे:

वरील उदाहरणात आमच्याकडे 'एचआरईएफ' विशेषतेसह एक एचटीएमएल घटक आहे आणि त्याचे मूल्य आहे. आणि 'href' विशेषता वरून URL उघडणे आपोआप डाउनलोड करण्यास ट्रिगर करेल.

तर, अगदी सोपे दिसते: आम्हाला फक्त एक URL उघडण्याची आवश्यकता आहे. परंतु आम्ही ते केल्यास, आम्ही आपल्या ब्राउझरला डीफॉल्ट म्हणून सेट केलेल्या विशिष्ट निर्देशिकेत फाईल डाउनलोड केलेली आढळली. माझ्या विंडोज मशीनमध्ये ते “सी: \ यूझर्स \ यूजर्स \ डाऊनलोड” होते. आणि दुर्दैवाने, आमच्या सीआय मशीनमध्ये कोणती डीफॉल्ट निर्देशिका असेल याची आपण कल्पना देखील करू शकत नाही.

ते अभियंते, ज्यांनी सेलेनियमसह काम केले त्यांना फाइल्स सेव्ह करण्यासाठी सीवायप्रेस सेटिंग्जमध्ये ही डीफॉल्ट निर्देशिका सेट करण्याचा एक मार्ग सापडेल. परंतु हे पॅरामीटर अद्याप कॉन्फिगर केले नाही, समस्या पहाः https://github.com/cypress-io/cypress/issues/4675

म्हणून, कार्यवाही म्हणून आम्हाला प्लगइन्स / इंडेक्स.जेएस फाइलवर जाण्याची आणि पुढील पद्धतींसह ती वाढविणे आवश्यक आहे:

चालू ('टास्क', {डाउनलोडडॉक्स (आर्ग) {कॉन्ट निर्देशिका = `सायप्रेस / $ gs आर्ग्स.डिरेक्टरी}`; नवीन वचन परत ((निराकरण, नाकारणे) => {विनंती ({url: args.url, encoding: null , शीर्षलेख: ie कुकी: ''}}, फंक्शन (एरर, रेझ, बॉडी) {जर (! रेस) {रिटर्न रिझर्व्ह (नवीन एरर ('फाईल डाउनलोड करताना काहीच प्रतिसाद मिळाला नाही'));} if (res. स्टेटसकोड! == २००) {रिटर्न रिजेक्ट (नवीन एरर ('फाईल डाऊनलोड करताना खराब स्टेटस कोडः' + रेस्टेटसकोड)); content कॉन्ट कंटेंटडीस्पिझन = रेसहेडर्स ['सामग्री-स्वभाव']; जर (! सामग्रीविभाजन) {रिटर्न रिझर्व्ह (नवीन त्रुटी ('तुटलेला प्रतिसाद: इनलाइन फाइल प्रकारची सामग्री-स्वभाव नसतो'));} कॉन्ट फाईलनावरेजेक्स = / फाइलनाम ^ ;=\nwrd==(( \ 2 | [^; \ n] *) /; कॉन्स्ट सामने = फाईलनावरेजेक्स.एक्स (सामग्रीविच्छेदन); जर (सामने == शून्य || फाइलनाव ')) समाविष्ट करा;} कॉन्ट फाईलनामे = जुळते [1] .रेप्लेस (/ [' "] / जी, ''); fs.writeFileSync (निर्देशिका + फाइलनाव, मुख्य भाग); निराकरण (मुख्य);});}) ;., इक्सिस्टडॉक्स () new नवीन परत वचन द्या ((निराकरण, नाकारणे) => {if (fs.existsSync (yp cypress / filename.docx`)) {रिटर्न रिझोल्यूशन ('फाईल डॉक्स अस्तित्त्वात आहे')); } अन्य {रिटर्न नाकारणे (नवीन त्रुटी ('फाइल डॉक्स अस्तित्त्वात नाही')); }}); }});

याद्वारे, आम्ही काही कार्ये तयार करतो, जी सायप्रेस चालविण्यात सक्षम असावी: डॉक्स फाइल डाउनलोड करा आणि ही फाईल अस्तित्त्वात असल्याचे सत्यापित करा. पहिली पद्धत काही वितर्क लागू केली पाहिजेः: url: स्ट्रिंग, निर्देशिका: स्ट्रिंग, कुकीज: ऑब्जेक्ट} आणि दुसरी - रिक्त प्रकार आहे.

आम्हाला पुढील आवश्यक आहे - दोन कमांड तयार करणे जे हे प्लगइन कार्ये वापरतात (सायप्रेस / समर्थन / कमांड.जे मध्ये):

Cypress.Commands.add ('downloadDocx', (url, निर्देशिका) => cy cy.getCookies () परत करा (कूकीज => {रिटर्न cy.task ('downloadDocx', {url: url, निर्देशिका: निर्देशिका, कुकीज : कुकीज});});}); सायप्रेस.कॉमँड्स.एड्डी ('isExistDocx', () =>. Cy.task ('isExistDocx');});

आणि साखळीमध्ये या पद्धती वापरण्यास सक्षम होण्यासाठी, इंडेक्स.डी.टी.एस. फाइल उघडा आणि आपला चेनेबल इंटरफेस वाढवा:

डाउनलोडडॉक्स (url: स्ट्रिंग, निर्देशिका: स्ट्रिंग): चायनेबल isExistDocx (): चैन करण्यायोग्य

२. डाउनलोड केलेली फाईल शोधा

आपल्या चाचणीमध्ये आपल्याला आता आवश्यक आहे - आधी तयार केलेल्या पद्धती कॉल करणे आहे:

ते ('e2e टेस्टद्वारे डॉकॉक्स फाईल डाउनलोड करा', () => {cy.get ('a'). त्यानंतर (घटक => {cy.downloadDocx ((Cypress.config (). बेसUrl + तत्व.attr ('href ') .substr (1)),' dirName ');}); cy.isExistDocx ();});

आता डाउनलोड केलेल्या सर्व फायली सायप्रेस डिरेक्टरीमध्ये सेव्ह केल्या जातील. तर चाचणी स्थिती स्पष्ट जतन करण्यास विसरू नका. यासाठी या चाचणीच्या आधी / नंतर - पूर्वी निवडलेले दस्तऐवज आणि फोल्डर्स साफ करा.

D. डॉकएक्स फाइलला सायप्रेससह एचटीएमएल डॉक्युमेंटमध्ये रुपांतरित करा

डॉक्स फायली एचटीएमएलमध्ये रूपांतरित करण्यासाठी पुढील गोष्टी करण्याची आवश्यकता आहे:

  • फाईल रूपांतरित करण्यासाठी आपल्या पॅकेज.जेसन फाइलमध्ये स्क्रिप्ट तयार करा, जसेः
"फाइल-रूपांतरित": "मॅमथ सायप्रेस / मायफाइल.डॉक्स सायप्रेस / मायफाइल एचटीएमएल"
  • चाचणीमध्ये फाइल स्वयंचलितपणे रूपांतरित करण्यासाठी आपल्या चाचणीमध्ये या स्क्रिप्टचा वापर करा:
cy.exec ('एनपीएम रन फाइल-रूपांतरण', {फेलऑन नॉनझीरोएक्सिट: खोटे}). तर ((ऑब्जेक्ट) => {अपेक्ष (ऑब्जेक्ट कोड) .to.be.not.null; अपेक्ष (आज्ञात. stderr) .to .कॉन्टेन ('काही मूल्य');});

आपल्याला हे माहित असणे आवश्यक आहे की ही चाचणी विंडोज मशीनवर अयशस्वी होऊ शकते, या समस्येमुळे: https://github.com/cypress-io/cypress/issues/789 परंतु जर आपल्या सीआय मधील रिमोट मशीन्स विंडोज व्यतिरिक्त इतर सर्व्हर, मग सर्व चांगले होईल.

C. सायप्रेससह डॉकएक्स दस्तऐवजात सामग्री सत्यापित करा

रूपांतरित दस्तऐवजामध्ये ठामपणे आणि सत्यापन जोडण्यासाठी, एक वेगळा चष्मा तयार करण्याची आणि तत्सम तर्कशास्त्र जोडण्याची आवश्यकता आहे:

('सत्यापित रूपांतरित डीओसीएक्सला एचटीएमएलमध्ये बदल करा'), () => {आधी (())> साइप्रस कॉन्फिग ('बेसयूआरएल', शून्य); साईव्हिझिट ('./ सायप्रेस / मायफाइल एचटीएमएल',, टाइमआउट: 10000});}); ते (`दस्तऐवजाच्या आत आवश्यक फील्ड आणि मूल्ये चाचणी घ्या`), () => {cy.get ('p'). विनंती करा ('मजकूर'). ('समाविष्ट', 'काही मजकूर' ); cy.get ('p'). समाविष्टीत आहे ('काही मजकूर'). पाहिजे ('be.visible');});});

आपण नेहमीप्रमाणे सायप्रेस शक्यतांचा वापर करुन या चाचणीत आपल्या इच्छेनुसार जास्तीत जास्त हक्क सांगण्यास सक्षम आहातः https://docs.cypress.io/guides/references/assertions.html#BDD- माहिती

अभिनंदन! आम्ही हे पूर्ण केले! आता आम्ही आमच्या वेब applicationप्लिकेशन वरून सहजपणे फायली डाउनलोड करू, नंतर त्यास योग्य स्वरुपात रूपांतरित करू आणि आत सामग्री सत्यापित करू.

आपल्याकडे काही प्रश्न असल्यास \ प्रस्ताव \ टिप्पण्या - माझ्याशी संपर्क साधा: - थेट टिप्पण्या - ट्विटर - लिंक्डिन

हे देखील पहा

14 वर्षांचा कोड कोड शिकू शकतो. कुठे?लॉ स्कूलमध्ये पूर्ण शिष्यवृत्ती कशी मिळवायचीमला एखादा अनुप्रयोग बनवायचा आहे जो विद्यार्थ्यांद्वारे एखाद्या विशिष्ट विषयासाठी वापरला जाऊ शकतो. मला कोडिंग कसे करावे हे माहित नाही. मी काय करू? मी कोठे सुरू करावे?कोणीतरी ट्विटरवर आपले अनुसरण करीत आहे किंवा कसे ते कसे पहावेबॅकएंड पीएचपी विकसक म्हणून जॉब तयार होण्यासाठी मला किती काळ लागेल? मला एचटीएमएल, सीएसएस, काही जावास्क्रिप्ट आणि प्रोग्रामिंग मूलतत्त्वे / पाया माहित आहे.जुलूम कसा मिळवायचामी ई-कॉमर्स वेबसाइट वरून डेटा स्क्रॅप कसे करू आणि एपीआय न वापरता ती माहिती वेबपृष्ठावर रिअल टाइममध्ये कशी ठेवू शकेन? मी दररोज कोड करणे कसे शिकू शकतो?