Selenium ग्रिड ट्यूटोरियल: हब और नोड सेटअप करें (उदाहरण)
एचएमबी क्या है? Selenium ग्रिड?
Selenium ग्रिड का एक हिस्सा है Selenium सुइट जो विभिन्न ब्राउज़रों, ऑपरेटिंग सिस्टम और मशीनों पर समानांतर रूप से कई परीक्षण चलाने में माहिर है। यह रिमोट ब्राउज़र इंस्टेंस के कमांड को रूट करके प्राप्त किया जाता है जहां एक सर्वर हब के रूप में कार्य करता है। परीक्षणों को निष्पादित करने के लिए उपयोगकर्ता को रिमोट सर्वर को कॉन्फ़िगर करने की आवश्यकता होती है।
Selenium ग्रिड के 2 संस्करण हैं - पुराना ग्रिड 1 और नया ग्रिड 2। हम केवल ग्रिड 2 पर ध्यान केंद्रित करेंगे क्योंकि ग्रिड 1 को धीरे-धीरे अप्रचलित किया जा रहा है Selenium टीम।
Selenium ग्रिड Archiटेक्चर
Selenium ग्रिड में एक हब और नोड होता है Archiटेकचर.

हब
- हब वह केन्द्रीय बिंदु है जहां आप अपने परीक्षण लोड करते हैं।
- ग्रिड में केवल एक ही हब होना चाहिए।
- हब केवल एक ही मशीन पर लॉन्च किया जाता है, मान लीजिए, एक कंप्यूटर जिसका ओएस है Windows 7 है और जिसका ब्राउज़र IE है।
- हब युक्त मशीन पर ही परीक्षण चलाए जाएंगे, लेकिन आप नोड पर ब्राउज़र को स्वचालित होते हुए देखेंगे।
नोड्स
- नोड्स हैं Selenium ऐसे इंस्टैंस जो आपके द्वारा हब पर लोड किए गए परीक्षणों को निष्पादित करेंगे.
- एक ग्रिड में एक या एक से अधिक नोड हो सकते हैं।
- नोड्स को विभिन्न प्लेटफॉर्म और ब्राउज़रों के साथ कई मशीनों पर लॉन्च किया जा सकता है।
- नोड्स को चलाने वाली मशीनों का प्लेटफॉर्म हब के प्लेटफॉर्म के समान होना आवश्यक नहीं है।
Selenium ग्रिड एक हब-नोड अवधारणा का उपयोग करता है जहां आप केवल एक मशीन पर परीक्षण चलाते हैं जिसे a कहा जाता है हब, लेकिन निष्पादन विभिन्न मशीनों द्वारा किया जाएगा जिन्हें कहा जाता है नोड्स.
स्थापित कैसे करें Selenium ग्रिड?
इस खंड में, आप 2 मशीनों का उपयोग करेंगे। पहली मशीन वह सिस्टम होगी जो हब को चलाएगी जबकि दूसरी मशीन नोड को चलाएगी। सरलता के लिए, हम उस मशीन को "मशीन ए" कहेंगे जहाँ हब चलता है जबकि जिस मशीन पर नोड चलता है उसे "मशीन बी" कहेंगे। उनके आईपी पते को नोट करना भी महत्वपूर्ण है। मान लें कि मशीन ए का आईपी पता 192.168.1.3 है जबकि मशीन बी का आईपी पता 192.168.1.4 है।
चरण 1) डाउनलोड Selenium सर्वर से यहाँ उत्पन्न करें.
चरण 2) आप रख सकते हैं Selenium सर्वर .jar फ़ाइल को अपनी हार्ड ड्राइव में कहीं भी रखें। लेकिन इस ट्यूटोरियल के उद्देश्य के लिए, इसे मशीन A और मशीन B दोनों की C ड्राइव पर रखें। ऐसा करने के बाद, अब आपका इंस्टॉलेशन पूरा हो गया है। Selenium ग्रिड. निम्नलिखित चरण हब और नोड को लॉन्च करेंगे.
चरण 3)
- अब हम हब लॉन्च करने जा रहे हैं। मशीन A पर जाएँ। कमांड प्रॉम्प्ट का उपयोग करके, मशीन A के रूट पर जाएँ - C ड्राइव, क्योंकि यही वह निर्देशिका है जहाँ हमने हब रखा था। Selenium सर्वर।
- कमांड प्रॉम्प्ट पर, टाइप करें जावा -जार सेलेनियम-सर्वर-स्टैंडअलोन-2.30.0.जार -रोल हब
- हब सफलतापूर्वक लॉन्च हो जाना चाहिए। आपका कमांड प्रॉम्प्ट नीचे दी गई छवि जैसा दिखना चाहिए।
चरण 4) हब चल रहा है या नहीं, यह सत्यापित करने का एक अन्य तरीका ब्राउज़र का उपयोग करना है। Selenium ग्रिड, डिफ़ॉल्ट रूप से, अपने वेब इंटरफ़ेस के लिए मशीन A के पोर्ट 4444 का उपयोग करता है। बस एक ब्राउज़र खोलें और पर जाएँ http://localhost:4444/grid/console
इसके अलावा, आप यह भी जाँच सकते हैं कि मशीन B हब के वेब इंटरफ़ेस तक पहुँच सकती है या नहीं, इसके लिए आपको वहाँ ब्राउज़र लॉन्च करना होगा और “iporhostnameofmachineA” पर जाना होगा, जहाँ हब चल रही मशीन का IP पता या होस्टनाम होना चाहिए। चूँकि मशीन A का IP पता 192.168.1.3 है, तो मशीन B के ब्राउज़र पर आपको टाइप करना चाहिए http://192.168.1.3:4444/grid/console
चरण 5)
- अब जब हब पहले से ही सेट हो चुका है, तो हम नोड लॉन्च करने जा रहे हैं। मशीन बी पर जाएँ और वहाँ कमांड प्रॉम्प्ट लॉन्च करें।
- ड्राइव C के रूट पर जाएँ और नीचे दिया गया कोड टाइप करें। हमने IP पता 192.168.1.3 इस्तेमाल किया है क्योंकि हब यहीं चल रहा है। हमने पोर्ट 5566 का भी इस्तेमाल किया है, हालाँकि आप अपनी इच्छानुसार कोई भी मुफ़्त पोर्ट नंबर चुन सकते हैं।
- नोट: यदि आप Gecko ड्राइवर का उपयोग कर रहे हैं तो आपको अब उसे पथ देना होगा Firefox. यहाँ अद्यतन कोड है जिसका उपयोग किया जाना चाहिए
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- जब आप एंटर दबाते हैं, तो आपका कमांड प्रॉम्प्ट नीचे दी गई छवि के समान होना चाहिए।
चरण 6) इस पर जाएँ Selenium ग्रिड वेब इंटरफ़ेस और पेज को रिफ्रेश करें। आपको कुछ इस तरह दिखना चाहिए।
इस बिंदु पर, आपने पहले से ही एक सरल ग्रिड कॉन्फ़िगर कर लिया है। अब आप मशीन बी पर दूरस्थ रूप से परीक्षण चलाने के लिए तैयार हैं।
कब इस्तेमाल करें Selenium ग्रिड?
आपको उपयोग करना चाहिए Selenium ग्रिड जब आप निम्न में से एक या दोनों कार्य करना चाहते हैं:
- अपने परीक्षण विभिन्न ब्राउज़रों, ऑपरेटिंग सिस्टमों और मशीनों पर एक ही समय में चलाएँ। इससे यह सुनिश्चित हो जाएगा कि आप जिस एप्लिकेशन का उपयोग कर रहे हैं वह सही है परीक्षण ब्राउज़र-ओएस संयोजनों की एक विस्तृत श्रृंखला के साथ पूरी तरह से संगत है।
- अपने परीक्षण सूट के निष्पादन में समय बचाएँ.यदि आप सेट अप करते हैं Selenium यदि आप ग्रिड पर एक समय में 4 परीक्षण चला सकें, तो आप पूरे परीक्षण को 4 गुना तेजी से पूरा कर सकेंगे।
ग्रिड 1.0 बनाम ग्रिड 2.0
इनके बीच मुख्य अंतर निम्नलिखित हैं Selenium ग्रिड 1 और 2.
ग्रिड 1 | ग्रिड 2 |
---|---|
Selenium ग्रिड 1 का अपना रिमोट कंट्रोल है जो इससे अलग है Selenium आर.सी. सर्वर। वे दो अलग-अलग प्रोग्राम हैं। | Selenium ग्रिड 2 अब इसके साथ बंडल हो गया है Selenium सर्वर जार फ़ाइल |
आपको इसे स्थापित और कॉन्फ़िगर करना होगा अपाचे ग्रिड 1 का उपयोग करने से पहले आपको सबसे पहले Ant का चयन करना होगा। | आपको ग्रिड 2 में अपाचे एंट स्थापित करने की आवश्यकता नहीं है। |
केवल समर्थन कर सकते हैं Selenium आर.सी. आदेश/स्क्रिप्ट. | दोनों का समर्थन कर सकते हैं Selenium RC और वेबड्राइवर स्क्रिप्ट. |
आप प्रति रिमोट कंट्रोल केवल एक ब्राउज़र को स्वचालित कर सकते हैं। | एक रिमोट कंट्रोल 5 ब्राउज़रों को स्वचालित कर सकता है। |
Selenium ग्रिड को दो अलग-अलग तरीकों से सेट किया जा सकता है; एक कमांड लाइन के माध्यम से और दूसरा JSON कॉन्फ़िगरेशन फ़ाइल के माध्यम से।
ग्रिड पर चलने योग्य टेस्ट स्क्रिप्ट का डिज़ाइन बनाना
ग्रिड पर चलने वाली परीक्षण स्क्रिप्ट को डिज़ाइन करने के लिए, हमें उपयोग करने की आवश्यकता है वांछित क्षमताएं और रिमोटवेबड्राइवर वस्तुओं।
- वांछित क्षमताएं का प्रकार निर्धारित करने के लिए प्रयोग किया जाता है ब्राउज़र और OS जिसे हम स्वचालित करेंगे।
- रिमोटवेबड्राइवर इसका उपयोग यह निर्धारित करने के लिए किया जाता है कि हमारा परीक्षण किस नोड (या मशीन) के विरुद्ध चलेगा।
का उपयोग करने के लिए वांछित क्षमताएं ऑब्जेक्ट, आपको पहले इस पैकेज को आयात करना होगा
का उपयोग करने के लिए रिमोटवेबड्राइवर ऑब्जेक्ट के लिए, आपको इन पैकेजों को आयात करना होगा.
DesiredCapabilites ऑब्जेक्ट का उपयोग करना
ग्रिड के वेब इंटरफ़ेस पर जाएँ और उस ब्राउज़र की छवि पर माउस घुमाएँ जिसे आप स्वचालित करना चाहते हैं। मंच, और ब्राउज़रनाम टूलटिप द्वारा दिखाया गया है.
इस मामले में, प्लेटफ़ॉर्म “XP” है और ब्राउज़रनाम “Firefox".
हम अपने वेबड्राइवर में प्लेटफॉर्म और ब्राउज़रनाम का उपयोग करेंगे जैसा कि नीचे दिखाया गया है (निश्चित रूप से आपको पहले आवश्यक पैकेज आयात करने की आवश्यकता है)।
RemoteWebDriver ऑब्जेक्ट का उपयोग करना
RemoteWebDriver के लिए आवश्यक पैकेजों को आयात करें और फिर DesiredCapabilities ऑब्जेक्ट को, जिसे हमने ऊपर बनाया था, RemoteWebDriver ऑब्जेक्ट के लिए पैरामीटर के रूप में पास करें।
ग्रिड पर नमूना परीक्षण केस चलाना
नीचे एक सरल वेबड्राइवर है टेस्टिंग कोड जो आप बना सकते हैं Eclipse मशीन A पर। एक बार जब आप इसे चलाएंगे, तो मशीन B पर स्वचालन किया जाएगा।
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
परीक्षा पास होनी चाहिए.
Selenium JSON फ़ाइल का उपयोग करके ग्रिड कॉन्फ़िगरेशन
JSON का मतलब है Javascript ऑब्जेक्ट नोटेशन. यह ब्राउज़र और वेब सर्वर के बीच डेटा के आदान-प्रदान के लिए उपयोग किया जाने वाला एक मानक प्रारूप है। Selenium इसमें एक अंतर्निहित JSON कॉन्फ़िगरेशन फ़ाइल है जिसका उपयोग सेलेनियम ग्रिड सेट अप करने के लिए किया जा सकता है।
नीचे JSON कॉन्फ़िगरेशन फ़ाइल का उपयोग करके सेलेनियम ग्रिड को कॉन्फ़िगर करने के चरण दिए गए हैं।
चरण 1) नीचे दिए गए पथ का उपयोग करके JSON कॉन्फ़िगरेशन फ़ाइल के लिए कोड डाउनलोड करें
कोड यहाँ है
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
चरण 2) कोड को कॉपी करें और एक्सटेंशन '.json' के साथ नोटपैड जैसे टेक्स्ट एडिटर पर पेस्ट करें
चरण 3)कमांड प्रॉम्प्ट का उपयोग करके नीचे दिए गए कमांड का उपयोग करके हब लॉन्च करें
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
नोट: Selenium स्टैंडअलोन jar फ़ाइल और json फ़ाइल एक ही निर्देशिका में मौजूद होनी चाहिए
चरण 4) नीचे दी गई स्क्रीन दिखाई देगी जो यह इंगित करेगी कि हब सफलतापूर्वक स्थापित हो गया है
चरण 5) वेब ब्राउज़र खोलें और नीचे दिए गए URL से कनेक्ट करने का प्रयास करें
http://192.168.43.223:4444/grid/console
नोट: URL मशीन दर मशीन अलग-अलग हो सकता है। उपरोक्त स्क्रीन पर 'Nodes should register to' के बाद URL का उपयोग किया जाना चाहिए।
चरण 6) ग्रिड कंसोल स्क्रीन दिखाई देगी जो यह संकेत देगी कि हब चालू है
JSON का उपयोग करके NODES कॉन्फ़िगर करें
चरण 1) द्वारा प्रदान की गई नमूना नोड कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें Selenium नीचे दिए गए URL का उपयोग करके
नोट: यदि आप SELENIUM 3.0 या उससे ऊपर का संस्करण उपयोग कर रहे हैं, तो नीचे दी गई JSON फ़ाइल का उपयोग अवश्य किया जाना चाहिए
चरण 2) कोड को नोटपैड जैसे टेक्स्ट एडिटर में कॉपी और पेस्ट करें और फ़ाइल को '.json' एक्सटेंशन के साथ सेव करें
चरण 3)
कमांड प्रॉम्प्ट पर नीचे दिया गया कमांड चलाएँ
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
नोट: कमांड चलाने से पहले, कृपया सुनिश्चित करें कि प्रत्येक ब्राउज़र के ड्राइवर स्थानीय मशीन निर्देशिका पर डाउनलोड किए गए हैं
चरण 4) एंटर कुंजी दबाने पर नीचे दी गई स्क्रीन दिखाई देगी
चरण 5) यह सत्यापित करने के लिए ग्रिड कंसोल पर नेविगेट करें कि नोड्स सफलतापूर्वक कॉन्फ़िगर किए गए हैं या नहीं
ब्राउज़र ग्रिड कंसोल पर प्रदर्शित होते हैं। इसलिए हम सुनिश्चित हो सकते हैं कि नोड्स सफलतापूर्वक कॉन्फ़िगर किए गए हैं।
नमूना परीक्षण मामले Selenium ग्रिड:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "https://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
उपरोक्त कोड क्रोम ब्राउज़र लॉन्च करता है और 'baseURL' वेरिएबल में निर्दिष्ट URL पर नेविगेट करता है। यह सत्यापित करता है कि पृष्ठ पर 'मोबाइल परीक्षण' नाम का लिंक प्रदर्शित होता है
'nodeURL' चर पर URL को रिमोट मशीन के IP पते को दर्शाने के लिए संशोधित किया जा सकता है। परीक्षण परिणाम को डिफ़ॉल्ट पर सत्यापित किया जा सकता है TestNG रिपोर्ट तैयार की गई
सारांश
- Selenium ग्रिड का उपयोग विभिन्न ब्राउज़रों और प्लेटफार्मों पर एक साथ कई परीक्षण चलाने के लिए किया जाता है।
- ग्रिड हब-नोड अवधारणा का उपयोग करता है।
- हब वह केन्द्रीय बिंदु है जहां आप अपने परीक्षण लोड करते हैं।
- नोड्स हैं Selenium ऐसे इंस्टैंस जो आपके द्वारा हब पर लोड किए गए परीक्षणों को निष्पादित करेंगे.
- स्थापित करने के लिए Selenium ग्रिड, आपको केवल डाउनलोड करने की आवश्यकता है Selenium सर्वर jar फ़ाइल - वही फ़ाइल जो चलाने में उपयोग की जाती है Selenium आर.सी. परीक्षण.
- हब चल रहा है या नहीं, यह सत्यापित करने के दो तरीके हैं: एक कमांड प्रॉम्प्ट के माध्यम से, और दूसरा ब्राउज़र के माध्यम से।
- ग्रिड पर परीक्षण स्क्रिप्ट चलाने के लिए, आपको DesiredCapabilities और RemoteWebDriver ऑब्जेक्ट का उपयोग करना चाहिए।
- DesiredCapabilites का उपयोग उस ब्राउज़र और OS के प्रकार को सेट करने के लिए किया जाता है जिसे हम स्वचालित करेंगे।
- रिमोटवेबड्राइवर का उपयोग यह निर्धारित करने के लिए किया जाता है कि हमारा परीक्षण किस नोड (या मशीन) के विरुद्ध चलेगा।