कठपुतली स्वचालन परीक्षण: ट्यूटोरियल 6

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

कठपुतली ट्यूटोरियल

Tosca ट्यूटोरियल # 1: कठपुतली अवलोकन

Tosca ट्यूटोरियल 2 #: कठपुतली पर्यावरण चर

Tosca ट्यूटोरियल 3 #: Puppeteer वेब स्क्रैपिंग और Puppeteer टेस्ट स्वचालन अवलोकन

Tosca ट्यूटोरियल 4 #: कठपुतली स्थापित करें

Tosca ट्यूटोरियल 5 #: नमूना Puppeteer परियोजना

Tosca ट्यूटोरियल # 6: कठपुतली स्वचालन परीक्षण

इस "Puppeteer स्वचालन परीक्षण" ट्यूटोरियल में, हम शुरुआत से Puppeteer स्वचालन के लिए विस्तृत चरणों की व्याख्या करेंगे। नीचे दिए गए फीचर्स को स्क्रैच से Puppeteer स्वचालन परीक्षण को समझने के लिए समझाया जाएगा -

· कठपुतली स्थापित करें

· वेब एप्लिकेशन लॉन्च करें

· Chrome ब्राउज़र से ऑब्जेक्ट प्रॉपर्टीज़ की पहचान करें

· फॉर्म सबमिशन चरण - पाठ दर्ज करें, घटना, सत्यापन पर क्लिक करें

· स्क्रीनशॉट पर कब्जा

Puppeteer स्वचालन के लिए स्क्रिप्ट निष्पादित करें

कठपुतली स्वचालन

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

  • फास्ट टेस्ट निष्पादन चक्र।
  • मानवीय त्रुटियों की संभावनाओं से बचें।
  • परीक्षण निष्पादन समय को कम करें।
  • रिलीज के समय को कम करें।
  • गुणवत्ता के साथ समझौता करने के साथ कोव अधिक कार्यक्षमता।
  • एकाधिक निष्पादन समानांतर रूप से किया जा सकता है।

 Puppeteer एक जावास्क्रिप्ट आधारित नोड लाइब्रेरी है जो Chrome DevTools प्रोटोकॉल पर Chrome वेब ब्राउज़र को नियंत्रित करने के लिए एक उच्च-स्तरीय अनुप्रयोग इंटरफ़ेस (API) देता है। Chrome ब्राउज़र में किए गए अधिकांश मैन्युअल ऑपरेशनों को Puppeteer का उपयोग करके स्वचालित किया जा सकता है। तो, Puppeteer तेजी से और आसानी से वेब अनुप्रयोगों पर इकाई परीक्षण के लिए एक अच्छा विकल्प है। 

कठपुतली स्वचालन परीक्षण दृष्टिकोण:

Puppeteer स्वचालन परीक्षण से जुड़े कदम नीचे दिए गए हैं - 

चरण 1 # कार्यात्मक परीक्षण परिदृश्य की पहचान करें:

हम नीचे के परिदृश्य के लिए प्यूपेटेर ऑटोमेशन का प्रदर्शन करने के लिए कदम से कदम दिखाएंगे - 

वेब ब्राउजर लॉन्च करें।

· अमेजन वेब एप्लिकेशन इनवोक करें।

  • पुस्तक "परीक्षण पुस्तक" के लिए खोजें।
  • परिणाम से पुस्तक को कार्ट में जोड़ें।
  • कार्ट खोलें और चेक करें कि बुक कार्ट में उपलब्ध है या नहीं।
  • स्क्रीन कैप्चर करें और ब्राउज़र बंद करें।

Step2 # Puppeteer स्थापित करें और टेस्ट केस बनाएँ:

किसी विशिष्ट फ़ोल्डर में एक खाली जावास्क्रिप्ट फ़ाइल "sample_script.js" बनाएं। यहां, हम रूट फ़ोल्डर को नमूनाप्रोजेक्ट के रूप में मानेंगे। कठपुतली को स्थापित करने के लिए, हम कमांड का उपयोग करेंगे - "एनपीएम स्थापित कठपुतली"। स्थापना प्रक्रिया नेटवर्क की गति के आधार पर कुछ समय लेती है। यह लगभग 350MB डेटा डाउनलोड करेगा। स्थापना के बाद, नोड_मॉडल फ़ोल्डर, जिसमें विभिन्न कठपुतली घटक और पैकेज- lock.json फ़ाइल है, नमूना Puppeteer प्रोजेक्ट रूट फ़ोल्डर में बनाया जाएगा।

स्टेप 3 # टेस्ट ऑब्जेक्ट की पहचान गुणों को कैप्चर करें:

हम Chrome वेब ब्राउज़र के डेवलपर्स टूल का उपयोग करके पहचान गुणों को कैप्चर कर सकते हैं। अलग-अलग गुणों जैसे कि, आईडी, नाम, एक्सपीथ, आदि का विश्लेषण करते हुए, हम सही तरीके से चुनेंगे जिसका उपयोग किसी भी ऑपरेशन को करने के लिए स्क्रिप्टिंग में किया जा सकता है। इस "Puppeteer स्वचालन परीक्षण" ट्यूटोरियल में, हम स्क्रिप्ट में XPath का उपयोग करेंगे। XPATH या किसी अन्य गुण पाने के लिए नीचे दिए गए चरणों का पालन करें,

1. डेवलपर टूल खोलें जो "मेनू -> अधिक टूल" के तहत उपलब्ध हैं, और एलिमेंट्स टैब पर जाएं।

2. फाइंडर टूल का उपयोग करके (एलिमेंट्स टैब के बाएं शीर्ष कोने में उपलब्ध एरो आइकन पर क्लिक करके), एप्लिकेशन से टेस्ट ऑब्जेक्ट को हाइलाइट करें। यहां, हम खोज बॉक्स का निरीक्षण करेंगे।

कठपुतली स्वचालन परीक्षण - ओपन क्रोम डेवलपर उपकरण
कठपुतली स्वचालन परीक्षण - क्रोम डेवलपर टूल खोलें

3. इच्छा गुणों की पहचान करने के लिए हाइलाइट किए गए स्रोत कोड का विश्लेषण करें। परीक्षण ऑब्जेक्ट की XPATH संपत्ति प्राप्त करने के लिए, हाइलाइट किए गए अनुभाग पर राइट-क्लिक करें और क्लिपबोर्ड में XPATH संपत्ति की प्रतिलिपि बनाने के लिए "कॉपी-> कॉपी Xpath" पर क्लिक करें।

कठपुतली स्वचालन परीक्षण - कॉपी XPath
कठपुतली स्वचालन परीक्षण - कॉपी XPath

4. अब, Xpath को फाइंडर टेक्स्टबॉक्स में पेस्ट करें और यह जांचने के लिए एंटर दबाएं कि क्या Xpath ऑब्जेक्ट को विशिष्ट रूप से पहचान रहा है या नहीं।

कठपुतली स्वचालन परीक्षण - XPath की जाँच करें
कठपुतली स्वचालन परीक्षण - XPath की जाँच करें

5. इसी तरह, हमें एक और परीक्षण वस्तु के लिए भी पहचान गुणों को पकड़ने की आवश्यकता है।

Step4 # कठपुतली स्वचालन विकास कदम:

परीक्षण मामले को पूरा करने के लिए, हमें वेब पृष्ठों पर कुछ संचालन करने की आवश्यकता है। प्रत्येक ऑपरेशन के लिए, अलग-अलग तरीके उपलब्ध हैं। "प्यूपेथायर ऑटोमेशन टेस्टिंग" के लिए हमारे परिदृश्य में जिन विधियों का उपयोग किया जाता है, उन्हें यहां बताया गया है।

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

// कठपुतली पैकेज कास्ट कठपुतली शामिल करें = आवश्यकता ('कठपुतली'); (async () => {// हेडलेस ब्राउजर कॉन्स्ट ब्राउजर लॉन्च करना = कठपुतली का इंतजार करना। लॉन्च ({हेडलेस: ट्रू}); // ब्राउजर कॉन्स्ट पेज का इंस्टेंस बनाएं = ब्राउजर का इंतजार करें। न्यूपेज (); // नेविगेट करें url प्रतीक्षारत page.goto('https://www.amazon.in/'); })()

संपूर्ण परीक्षण एक हेडलेस ब्राउज़र में किया जाएगा। यदि हम मुख्य ब्राउज़र खोलना चाहते हैं, तो हमें ऑब्जेक्ट को लॉन्च विधि में पास करना होगा "" बिना सिर: झूठे}।

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

\tlet searchBox = wait page.waitForXPath("//*[@id='twotabsearchtextbox']",{ दृश्यमान: सत्य }); \tif (searchBox === null) // परीक्षण ऑब्जेक्ट का सत्यापन \t{ \t\tconsole.log('अमेज़ॅन स्क्रीन प्रदर्शित नहीं होती है'); \टी}

डेटा दर्ज करें - का उपयोग करते हुए टाइप उस ऑब्जेक्ट संदर्भ की विधि, हम पाठ में प्रवेश कर सकते हैं।

प्रतीक्षा करें searchBox.type("टेस्टिंग बुक");

तत्व पर क्लिक करें  - इसी तरह, का उपयोग कर क्लिक करें किसी भी वस्तु संदर्भ की विधि, हम क्लिक संचालन कर सकते हैं।

चलो btnSearch = प्रतीक्षा करें page.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible:true}); बीटीएनसर्च.क्लिक ();

कंसोल में संदेश प्रिंट करें  - विधि का उपयोग करना दिलासा देना, हम कंसोल में किसी भी संदेश को आउटपुट के रूप में प्रिंट कर सकते हैं।

कंसोल.लॉग ('कंसोल लैग जेनरेट किया गया है');

नए टैब का संदर्भ लें - विधियों का उपयोग करना page.target और browser.waitforTarget, हम नए टैब के बारे में संदर्भ को एक चर में जाँच और संग्रहीत कर सकते हैं।

\tconst पेजटार्गेट = पेज.टारगेट(); \tconst newTarget = wait ब्राउज़र.waitForTarget(target => target.opener() === pageTarget); \t//नया पेज ऑब्जेक्ट प्राप्त करें: \tconst पेज2 = wait newTarget.page();

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

प्रतीक्षा पृष्ठ.स्क्रीनशॉट ({पथ: 'स्क्रीनशॉट1.png'});

पृष्ठ और ब्राउज़र बंद करें - विधि का उपयोग करना बंद करे, हम वेब पेज और ब्राउज़र दोनों को बंद कर सकते हैं।

\प्रतीक्षा पृष्ठ.बंद करें(); \tawait ब्राउज़र.close();

प्रतीक्षा समय - कुछ मामलों में, पृष्ठ लोड करने या किसी आश्रित कार्य को पूरा करने के लिए प्रतीक्षा करने की आवश्यकता होती है; हमें पूर्व-निर्धारित समय के लिए निष्पादन को रोकना होगा। इसे करने के लिए, हम उपयोग कर सकते हैं page.waitForTimeout वह विधि जो मान के आधार पर निष्पादन को रोक सकती है (माइली-सेकंड में) तर्क से गुजरती है।

पेज का इंतजार करें। वेटफॉरटाइमआउट (2000);

अब हमने अपने कार्यात्मक परिदृश्य को स्वचालित करने के लिए बुनियादी तकनीकी चरणों के बारे में सीखा है। ज्ञान के आधार पर, हम नीचे Puppeteer स्वचालन परीक्षण मामले के माध्यम से जा सकते हैं। सबसे अधिक उपयोग की जाने वाली कक्षाओं और विधियों का विस्तृत अवलोकन बाद के पदों में समझाया जाएगा।

/** * @नाम अमेज़न खोज */ स्थिरांक कठपुतली = आवश्यकता ('कठपुतली'); const रिपोर्टपाथ = 'C:\\\\LambdaGeeks\\\\puppteer_proj_sample\\\\आउटपुट\\\\'; कॉन्स्ट स्क्रीनशॉट = 'स्क्रीन1.पीएनजी'; // फ़ाइल को .docx फ़ाइल में निर्यात करने के लिए उपयोग किया जाता है प्रयास करें { (async () => { const ब्राउज़र = wait puppeteer.launch ({ हेडलेस: false }); const pageNew = wait ब्राउज़र.newPage() wait pageNew.setViewport( {चौड़ाई: 1280, ऊंचाई: 800 }); wait pageNew.goto('https://www.amazon.in/'); \t//खोज मानदंड दर्ज करें \tlet searchBox = wait page.waitForXPath("//* [@id='twotabsearchtextbox']",{ दृश्यमान: सत्य }); \tif (searchBox === null) \t{ \t\tconsole.log('अमेज़न स्क्रीन प्रदर्शित नहीं होती'); \t} \telse {t\t \t\tawait searchBox.type("परीक्षण पुस्तक"); \t\tconsole.log('खोज मानदंड दर्ज किया गया है'); \t} \t\t \t//खोज बटन पर क्लिक किया गया \tlet btnSearch = wait pageNew.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible: true }); \tif (btnSearch === null) \t{ \t\tconsole.log('खोज बटन नहीं दिख रहा'); \t} \telse{ \t\tawait btnSearch.click(); \t\tconsole.log('खोज बटन पर क्लिक किया'); \t} \t \t//विशिष्ट खोज परिणाम पर क्लिक करें \tlet myBook = wait pageNew.waitForXPath("//*[contains(text(),'Selenium Testing Tools Cookbook दूसरा संस्करण')]",{ दृश्यमान: सत्य }) \ tif (myBook === null) \t{ \t\tconsole.log('पुस्तक उपलब्ध नहीं है'); \t} \telse{ \t\tawait myBook.click(); \t\tconsole.log('ऑर्डर करने के लिए विशिष्ट पुस्तक पर क्लिक करें'); \t} \t \t// पहचानें कि क्या नया टैब खुला है \tconst pageTarget = pageNew.target(); \tconst newTarget = wait ब्राउज़र.waitForTarget(target => target.opener() === pageTarget); \t//नया पृष्ठ ऑब्जेक्ट प्राप्त करें: \tconst page2 = wait newTarget.pageNew();\t \tawait page2.setViewport({ width: 1280, ऊँचाई: 800 }); \t \t//कार्ट में जोड़ें \tlet addToCart = wait page2.waitForXPath("//*/input[@id='add-to-cart-button']",{visible: true }); \tif (addToCart === null) \t{ \t\tconsole.log('कार्ट में जोड़ें बटन उपलब्ध नहीं है'); \t} \telse{ \t\tconsole.log('कार्ट में जोड़ें बटन पर क्लिक करें'); \t\tawait addToCart.click();\t\t \t} \t\t \t//सत्यापित करें कि कार्ट में जोड़ें प्रक्रिया\t \tlet successfulMessage = wait page2.waitForXPath("//*[contains(text( ),'कार्ट में जोड़ा गया')]",{ दृश्यमान: सत्य }); \tif (सफलतासंदेश === शून्य) \t{ \t\tconsole.log('आइटम कार्ट में नहीं जोड़ा गया है'); \t} \telse{ \t\tconsole.log('आइटम सफलतापूर्वक कार्ट में जोड़ा गया');\t\t \t} \t\t \t// कार्ट का नंबर कैप्चर करें \tlet cartCount = wait page2.waitForXPath ("//*/span[@id='nav-cart-count']",{ दृश्यमान: सत्य}); \tlet value = wait page2.evaluate(el => el.textContent, cartCount) \tconsole.log('Cart count: ' + value); \tcartCount.focus(); \प्रतीक्षा पृष्ठ2.स्क्रीनशॉट({ पथ: स्क्रीनशॉट }); \t \tawait pageNew.waitForTimeout(2000); \wait page2.close(); \प्रतीक्षा करें पेजन्यू.बंद करें(); प्रतीक्षा करें ब्राउज़र.बंद करें(); })() } पकड़ें (त्रुटि) { कंसोल.त्रुटि (त्रुटि) }

Step5 # कठपुतली स्वचालन परीक्षण निष्पादन:

हम कमांड का उपयोग करके निष्पादन शुरू कर सकते हैं नोड sample_script.js कमांड प्रॉम्प्ट के माध्यम से। निष्पादन के दौरान, क्रोमियम ब्राउज़र खोला जाएगा और स्वचालित रूप से कार्यात्मक चरणों का प्रदर्शन करेगा और अंतिम पृष्ठ के स्क्रीनशॉट को संग्रहीत करेगा। स्क्रीनशॉट और कंसोल आउटपुट नीचे की तरह दिखेगा।

Puppeteer स्वचालन परीक्षण - कंसोल आउटपुट
Puppeteer स्वचालन परीक्षण - कंसोल आउटपुट
कठपुतली स्वचालन परीक्षण - स्क्रीन पर कब्जा कर लिया
कठपुतली स्वचालन परीक्षण - स्क्रीन पर कब्जा कर लिया

निष्कर्ष:

इस Puppeteer स्वचालन परीक्षण ट्यूटोरियल के दौरान, हमने Puppeteer स्वचालन परीक्षण पर विस्तृत चरणों के बारे में सीखा है। अगले कठपुतली ट्यूटोरियल में, हम सबसे अधिक बार उपयोग किए जाने वाले कठपुतली वर्गों और विधियों के विस्तृत अवलोकन के बारे में जानेंगे। फिर से लॉगिन करने के लिए यहाँ उत्पन्न करें इस Puppeteer ट्यूटोरियल के लिए संदर्भ पोर्टल पर जाएं। 

एक टिप्पणी छोड़ दो