selenium grid tutorial
सेलेनियम ग्रिड का परिचय और सेलेनियम ग्रिड का उपयोग करके क्रॉस ब्राउज़र परीक्षण कैसे करें:
अब हम इसके अंत के करीब हैं व्यापक सेलेनियम ट्यूटोरियल श्रृंखला । अगले सप्ताह, हम 'सेलेनियम प्रोजेक्ट्स के प्रयास आकलन' और 'सेलेनियम साक्षात्कार प्रश्न और उत्तर' ट्यूटोरियल के साथ इस ऑनलाइन सेलेनियम प्रशिक्षण श्रृंखला का समापन करेंगे।
आज, इस ट्यूटोरियल में हम आपका परिचय देंगे सेलेनियम ग्रिड - ए वितरित परीक्षण निष्पादन पर्यावरण एक परीक्षण पास के निष्पादन में तेजी लाने के लिए। सेलेनियम ग्रिड का उपयोग करके क्रॉस ब्राउज़र परीक्षण करना सीखें।
आप क्या सीखेंगे:
- सेलेनियम ग्रिड की आवश्यकता क्या है?
- सेलेनियम ग्रिड के लाभ
- सेलेनियम जीआरआईडी स्थापित करें
- ब्राउज़र और नोड्स
- अधिकतम
- अधिकतम सत्र
- नमूना ग्रिड कोड
- JSON फ़ाइल का उपयोग करके कॉन्फ़िगरेशन
- निष्कर्ष
- अनुशंसित पाठ
सेलेनियम ग्रिड की आवश्यकता क्या है?
जैसे-जैसे आप पूरे होते चले जाएंगे सेलेनियम वेबड्राइवर ट्यूटोरियल आपको पता चलेगा कि वेबड्राइवर आपके परीक्षण मामलों को एक मशीन पर निष्पादित करेगा।
यहाँ इस तरह के एक सेटअप के साथ कुछ समस्याएं हैं:
- क्या होगा यदि आप विभिन्न ऑपरेटिंग सिस्टम के लिए अपने परीक्षण मामलों को निष्पादित करना चाहते हैं?
- एक ही ब्राउज़र के विभिन्न संस्करण में अपने परीक्षण मामलों को कैसे चलाएं?
- कैसे कई ब्राउज़रों में अपने परीक्षण मामलों को चलाने के लिए?
- एक परिदृश्य को अन्य परीक्षण मामलों के निष्पादन की प्रतीक्षा क्यों करनी चाहिए, भले ही वह किसी भी परीक्षण मामलों पर निर्भर न हो?
इन सभी समस्याओं को सेलेनियम जीआरआईडी में संबोधित किया गया है।
जैसा कि हम सेलेनियम पाठ्यक्रम के साथ आगे बढ़ते हैं, हम इस बारे में विचार प्राप्त करेंगे कि हम इन समस्याओं को कैसे दूर कर सकते हैं। मूल रूप से, ग्रिड वास्तुकला मास्टर-दास वास्तुकला पर आधारित है। मास्टर मशीन विभिन्न दास मशीनों को परीक्षण मामलों को वितरित करती है।
ग्रिड के 2 संस्करण उपलब्ध हैं। सेलेनियम ग्रिड 2.0 सेलेनियम से नवीनतम है। सेलेनियम 1.0 पहले का संस्करण था। अधिकांश सेलेनियम विशेषज्ञ सेलेनियम ग्रिड 2.0 का उपयोग करना पसंद करते हैं क्योंकि यह नई सुविधाओं से भरा होता है। सेलेनियम ग्रिड 2.0 सेलेनियम आरसी और सेलेनियम वेबड्राइवर दोनों लिपियों का समर्थन करता है।
अनुशंसित उपकरण:
(1) लेम्बडाटेस्ट
एक स्केलेबल, सुरक्षित और विश्वसनीय क्लाउड-आधारित सेलेनियम ग्रिड पर सेलेनियम स्वचालन परीक्षण ऑनलाइन करें। एक ही समय में अपने सेलेनियम परीक्षण स्वचालन में तेजी लाने के 2000+ डेस्कटॉप और मोबाइल ब्राउज़र वातावरण के एक ऑनलाइन बुनियादी ढांचे पर परीक्षण करके अपने परीक्षण कवरेज में वृद्धि।
पठन पाठन = >> लैम्बडाटेस्ट के साथ स्वचालित ब्राउज़र परीक्षण
सेलेनियम ग्रिड के लाभ
- सेलेनियम ग्रिड निष्पादन के लिए आपके परीक्षण मामलों को वितरित करने के लिए लचीलापन देता है।
- बैच प्रसंस्करण समय कम कर देता है।
- मल्टी-ब्राउज़र परीक्षण कर सकते हैं।
- मल्टी-ओएस परीक्षण कर सकते हैं।
सेलेनियम ग्रिड की बुनियादी शब्दावली:
हब : हब पूरे जीआरआईडी आर्किटेक्चर का केंद्रीय बिंदु है जिसे सभी अनुरोध प्राप्त होते हैं। सेलेनियम ग्रिड में केवल एक हब है। हब प्रत्येक नोड में परीक्षण मामलों को वितरित करता है।
नोड : ग्रिड में कई नोड्स हो सकते हैं। टेस्ट नोड्स में चलेंगे। प्रत्येक नोड हब के साथ संचार करता है और इसे सौंपे गए परीक्षण करता है।
सेलेनियम जीआरआईडी स्थापित करें
चरण 1 : सेलेनियम की आधिकारिक वेबसाइट से सेलेनियम सर्वर जार फ़ाइल डाउनलोड करें, जिसे पहले सेलेनियम आरसी सर्वर के रूप में जाना जाता है और इसे स्थानीय डिस्क पर किसी भी स्थान पर सहेजें।
सेलेनियम मुख्यालय का URL: http://www.seleniumhq.org/download/
चरण 2 : कमांड प्रॉम्प्ट खोलें और उस फ़ोल्डर में नेविगेट करें जहां सर्वर स्थित है। नीचे दिए गए कमांड का उपयोग करके सर्वर को चलाएं
जावा -जर सेलेनियम-सर्वर-स्टैंडअलोन-2.41.0.jar -role हब
हब डिफ़ॉल्ट रूप से पोर्ट 4444 का उपयोग करेगा। इस पोर्ट को कमांड प्रॉम्प्ट में अलग-अलग पोर्ट नंबर को पास करके बदला जा सकता है बशर्ते पोर्ट ओपन हो और उसे टास्क न सौंपा गया हो।
वेब इंटरफ़ेस का उपयोग करके स्थिति की जाँच की जा सकती है: http: // localhost: 4444 / ग्रिड / कंसोल
चरण 3 : दूसरी मशीन पर जाएं जहां आप नोड्स सेटअप करना चाहते हैं। कमांड प्रॉम्प्ट खोलें और नीचे की रेखा चलाएं।
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
नोड शुरू करने के लिए अन्य मशीनों में सेलेनियम सर्वर चलाएँ।
ब्राउज़र और नोड्स
प्रत्येक मशीन पर हब और नोड्स शुरू करने के बाद जब आप जीआरआईडी कंसोल पर नेविगेट करेंगे
आपको नीचे ब्राउज़र अनुभाग के तहत 5 क्रोम, 5 फ़ायरफ़ॉक्स और 1 IE ब्राउज़र मिलेगा।
यह इंगित करता है कि डिफ़ॉल्ट रूप से आप 5 क्रोम, 5 फ़ायरफ़ॉक्स और 1 IE ब्राउज़र का उपयोग कर सकते हैं।
उदाहरण के लिए, यदि आप केवल IE का उपयोग करना चाहते हैं, तो आप नीचे दिए गए आदेश का उपयोग करके नोड शुरू कर सकते हैं:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
क्लिक करके GRID कंसोल में अन्य विवरणों के साथ ब्राउज़र प्रकार सत्यापित करें विन्यास देखें ।
इसी तरह फ़ायरफ़ॉक्स के लिए:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
क्रोम के लिए:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
ऐसे कुछ परिदृश्य हैं जहाँ आपको प्रत्येक प्रकार से ब्राउज़र की आवश्यकता हो सकती है अर्थात्: IE, क्रोम और फ़ायरफ़ॉक्स।
उदाहरण के लिए, आपको 1 IE और 1 फ़ायरफ़ॉक्स और 1 क्रोम ब्राउज़र का उपयोग करने की आवश्यकता हो सकती है
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
अधिकतम
maxInstance का उपयोग किसी नोड में ब्राउज़र इनिशियलाइज़ेशन की संख्या को सीमित करने के लिए किया जाता है।
उदाहरण के लिए, यदि आप 2 फ़ायरफ़ॉक्स और 2 IE के साथ काम करना चाहते हैं तो आप अधिकतम इंस्टेंस का उपयोग करके नोड शुरू कर सकते हैं।
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
कॉन्फ़िगरेशन टैब के तहत अधिकतम उदाहरण को सत्यापित किया जा सकता है।
इसी तरह, अन्य ब्राउज़र इंस्टेंसेस को maxInstances का उपयोग करके कॉन्फ़िगर किया जा सकता है।
अधिकतम सत्र
रिमोट सिस्टम में समानांतर रूप से कितनी संख्या में ब्राउज़रों का उपयोग किया जा सकता है यह कॉन्फ़िगर करने के लिए maxSession का उपयोग किया जाता है।
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
इसी तरह, आप कई नोड शुरू कर सकते हैं और कॉन्फ़िगरेशन को कंसोल में सत्यापित किया जा सकता है।
NODE1:
NODE2:
नमूना ग्रिड कोड
यहाँ मैंने एक नमूना GRID परीक्षण केस चलाने के लिए TestNG का उपयोग किया है।
शर्त : हब और नोड बनाएं जैसा कि पहले बताया गया है और टेस्टएनजी को ग्रहण में कॉन्फ़िगर किया जाना चाहिए।
यहां मैंने Gmail में लॉगिन करने और उपयोगकर्ता नाम और पासवर्ड दर्ज करने के लिए एक नमूना परीक्षण किया है
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
उदाहरण के रूप में, आपको रिमोटवेबड्राइवर का उपयोग करना होगा यदि आप जीआरआईडी का उपयोग कर रहे हैं और आपको ब्राउज़र को क्षमताएं प्रदान करनी हैं। आपको ब्राउज़र और प्लेटफ़ॉर्म को ऊपर सेट करना होगा।
विंडोज 7 के लिए मुफ्त सिस्टम अनुकूलक
इस उदाहरण में, मैंने विन्डोज़ के रूप में प्लेटफ़ॉर्म का उपयोग किया है। आप अपनी आवश्यकता के अनुसार किसी भी मंच का उपयोग कर सकते हैं।
ब्राउज़र का एक संस्करण dr.setVersion ('संस्करण') का उपयोग करके भी सेट किया जा सकता है
उदाहरण के लिए, आपको इस परीक्षण को कई ब्राउज़रों में क्रमिक रूप से चलाने की आवश्यकता है, जिसे आपको अपने testng.xml को कॉन्फ़िगर करना होगा। बेलो आपके परीक्षण को चलाने के लिए उपरोक्त परीक्षण के लिए testng.XML सूट है।
परीक्षण को समानांतर चलाने के लिए, आपको नीचे की तरह अपने testng.xml को बदलना होगा।
यहाँ testng.XML में आपको पैरामीटर निर्दिष्ट करना होगा समानांतर = 'परीक्षण' तथा प्रति वर्ग इकाई धागों की संख्या = '3' समानांतर में निष्पादित होने वाले थ्रेड्स की अधिकतम संख्या का वर्णन करता है।
JSON फ़ाइल का उपयोग करके कॉन्फ़िगरेशन
JSON कॉन्फ़िगरेशन फ़ाइल का उपयोग करके ग्रिड को इसके कॉन्फ़िगरेशन के साथ भी लॉन्च किया जा सकता है।
नीचे कॉन्फ़िगरेशन के लिए एक JSON फ़ाइल बनाएँ। यहाँ मैंने एक JSON फ़ाइल बनाई है जिसका नाम ग्रिड_हब.जसन है
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
नीचे कमांड का उपयोग करके हब शुरू करें
जावा -रज सेलेनियम-सर्वर-स्टैंडअलोन-2.41.0.jar -role hub –hubConfig grid_hub.json
इसी तरह, आवश्यक कॉन्फ़िगरेशन के अनुसार अलग-अलग नोड्स के लिए अलग-अलग json फ़ाइल बनाएं।
यहाँ grid_node.json नाम के नोड के लिए JSON कॉन्फ़िगरेशन फ़ाइल का एक उदाहरण है
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
नोड शुरू करने के लिए
जावा-सेजेलियम-सर्वर-स्टैंडअलोन-2.41.0.jar -role rc –nodeConfig grid_node.json
आप JSON फ़ाइल में एक ब्राउज़र, मैक्स इनस्टेंस, पोर्ट, मैक्स सेशन आदि के सभी कॉन्फ़िगरेशन को बदल सकते हैं।
आप ब्राउज़र संस्करण प्रदान कर सकते हैं, नीचे JSON कॉन्फ़िग फ़ाइल में प्लेटफ़ॉर्म:
{{
'ब्राउज़रनाम': 'क्रोम', 'संस्करण': '8', 'प्लेटफ़ॉर्म': 'विंडोज़'
}
निष्कर्ष
यह सलाह दी जाती है जब आपको मल्टी-ब्राउज़र परीक्षण करना हो तो सेलेनियम ग्रिड का उपयोग करें और आपके पास बड़ी संख्या में परीक्षण मामले हैं।
इस मॉड्यूल में, हमने Testng.XML और JSON फ़ाइल का उपयोग करके ग्रिड परीक्षण मामलों को चलाने के साथ-साथ ग्रिड हब और नोड्स सेट करने के तरीके को कवर किया।
अगला ट्यूटोरियल # 30 : सेलेनियम और ककड़ी उपकरण के साथ स्वचालन परीक्षण । खीरा एक BDD परीक्षण है साधन और फ्रेमवर्क। हम ककड़ी उपकरण की विशेषताओं और वास्तविक समय के परिदृश्यों में इसके उपयोग सहित सीखेंगे ककड़ी के साथ सेलेनियम वेबड्राइवर को कैसे एकीकृत किया जाए ।
कृपया नीचे दिए गए टिप्पणियों में सेलेनियम ग्रिड से संबंधित अपने प्रश्नों को पोस्ट करें।
अनुशंसित पाठ
- डॉकर सेलेनियम ट्यूटोरियल: डोकर के साथ सेलेनियम ग्रिड को कैसे एकीकृत किया जाए
- ककड़ी उपकरण और सेलेनियम का उपयोग करके स्वचालन परीक्षण - सेलेनियम ट्यूटोरियल # 30
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम के साथ एकीकरण और कार्यात्मक परीक्षण के लिए स्पॉक
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- Geb Tutorial - Geb टूल का उपयोग करके ब्राउज़र ऑटोमेशन परीक्षण
- तोता क्यूए ट्यूटोरियल: क्रॉस ब्राउज़र फंक्शनल टेस्टिंग टूल रिव्यू