कठपुतली स्वचालन परीक्षण - कठपुतली ट्यूटोरियल 6 का एक उत्कृष्ट गाइड

कठपुतली स्वचालन परीक्षण - फ़ीचर छवि

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

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

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 फ़ंक्शन का उपयोग किया जाता है।

//Include the puppeteer package
const puppeteer = require('puppeteer'); 
 (async () => {
    //launching the headless browser
    const browser = await puppeteer.launch({ headless: true });
   //Create instance of the browser
    const page = await browser.newPage();
   //Navigate to the url
    await page.goto('https://www.amazon.in/');
  })()

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

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

	let searchBox = await page.waitForXPath("//*[@id='twotabsearchtextbox']",{ visible: true });
	if (searchBox === null) //Verification of the test object
	{
		console.log('Amazon screen is not displayed');
	}

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

await searchBox.type("Testing Book");

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

let btnSearch = await page.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible:true });
btnSearch.click();

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

console.log(‘Console lag has been generated’);

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

	const pageTarget = page.target();
	const newTarget = await browser.waitForTarget(target => target.opener() === pageTarget);
	//get the new page object:
	const page2 = await newTarget.page();

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

await page.screenshot({ path: ‘screenshot1.png’ });

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

	await page.close();
	await browser.close();

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

await page.waitForTimeout(2000);

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

/**
 * @name Amazon search
 */
const puppeteer = require('puppeteer');
const reportPath = 'C:\\LambdaGeeks\\puppteer_proj_sample\\output\\';
const screenshot = 'screen1.png';
// Used to export the file into a .docx file
try {
  (async () => {
    const browser = await puppeteer.launch({ headless: false });
    const pageNew = await browser.newPage()
    await pageNew.setViewport({ width: 1280, height: 800 });
    await pageNew.goto('https://www.amazon.in/');
	//Enter Search criteria
	let searchBox = await page.waitForXPath("//*[@id='twotabsearchtextbox']",{ visible: true });
	if (searchBox === null)
	{
		console.log('Amazon screen is not displayed');
	}
	else{		
		await searchBox.type("Testing Book");
		console.log('Search criteria has been entered');
	} 		
	//Clicked on search button
	let btnSearch = await pageNew.waitForXPath("//*/input[@id='nav-search-submit-button']",{ visible: true });
	if (btnSearch === null)
	{
		console.log('Search button is not showing');
	}
	else{
		await btnSearch.click();
		console.log('Clicked on search button');
	}	
	//Click on specific search result
	let myBook = await pageNew.waitForXPath("//*[contains(text(),'Selenium Testing Tools Cookbook Second Edition')]",{ visible: true })
	if (myBook === null)
	{
		console.log('Book is not available');
	}
	else{
		await myBook.click();
		console.log('Click on specific book to order');
	} 	
	// Identify if the new tab has opened
	const pageTarget = pageNew.target();
	const newTarget = await browser.waitForTarget(target => target.opener() === pageTarget);
	//get the new page object:
	const page2 = await newTarget.pageNew();	
	await page2.setViewport({ width: 1280, height: 800 });
	
	//Add to cart
	let addToCart = await page2.waitForXPath("//*/input[@id='add-to-cart-button']",{ visible: true });
	if (addToCart === null)
	{
		console.log('Add to cart button is not available');
	}
	else{
		console.log('Click on add to Cart button');
		await addToCart.click();		
	} 		
	//Verify add to cart process	
	let successMessage = await page2.waitForXPath("//*[contains(text(),'Added to Cart')]",{ visible: true });
	if (successMessage === null)
	{
		console.log('Item is not added to cart');
	}
	else{
		console.log('Item is added to cart successfully');		
	} 		
	// Capture no of cart
	let cartCount = await page2.waitForXPath("//*/span[@id='nav-cart-count']",{ visible: true});
	let value = await page2.evaluate(el => el.textContent, cartCount)
	console.log('Cart count: ' + value);
	cartCount.focus();
	await page2.screenshot({ path: screenshot });
	
	await pageNew.waitForTimeout(2000);    
	await page2.close();
	await pageNew.close();
    await browser.close();
  })()
} catch (err) {
  console.error(err)
}

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

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

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

निष्कर्ष:

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

के मोंडालि के बारे में

कठपुतली स्वचालन परीक्षण - कठपुतली ट्यूटोरियल 6 का एक उत्कृष्ट गाइडनमस्ते, मैं के। मंडल हूं, मैं एक अग्रणी संगठन से जुड़ा हूं। मैं जैसे डोमेन, अनुप्रयोग विकास, स्वचालन परीक्षण, आईटी सलाहकार में काम करने का 12+ वर्ष का अनुभव कर रहा हूं। मुझे विभिन्न तकनीकों को सीखने में बहुत दिलचस्पी है। मैं अपनी आकांक्षा को पूरा करने के लिए यहां हूं और वर्तमान में एक लेखक और वेबसाइट डेवलपर दोनों के रूप में योगदान कर रहा हूं।
लिंक्डइन से जुड़ें- https://www.linkedin.com/in/kumaresh-mondal/

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

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड चिन्हित हैं *

en English
X