वितरित सेलेनियम परीक्षण के लिए एक सेलेनियम ग्रिड की स्थापना

यह ब्लॉग आपको सेलेनियम ग्रिड की आवश्यकता और इसके लाभों को समझने में मदद करेगा। हब और नोड्स को कॉन्फ़िगर करके अपना पहला सेलेनियम ग्रिड सेटअप करने के लिए इसे पढ़ें।

इस सेलेनियम ट्यूटोरियल श्रृंखला में अन्य ब्लॉग परीक्षण मामलों के निर्माण और उन परीक्षण मामलों को अनुक्रम और समानांतर में निष्पादित करने के बारे में बोलते हैं। इसलिए, चर्चा के लिए छोड़ी गई अंतिम तकनीक दूरस्थ मशीनों में परीक्षण मामलों का निष्पादन है। सेलेनियम ग्रिड का उपयोग दूरस्थ मशीनों / मेजबानों पर इन परीक्षणों को निष्पादित करने के लिए किया जा सकता है। इसलिए, यह आज के ब्लॉग की चर्चा का विषय है।

  1. सेलेनियम ग्रिड का उपयोग क्यों और कब करना है?
  2. सेलेनियम ग्रिड क्या है?
  3. सेलेनियम ग्रिड 1 बनाम सेलेनियम ग्रिड 2
  4. सेलेनियम ग्रिड का आर्किटेक्चर
  5. एक सेलेनियम ग्रिड का निर्माण

सेलेनियम ग्रिड का उपयोग क्यों और कब करें?

बहुत सारे वेब ब्राउज़र हैं जो आज उपयोग में हैं। उपयोगकर्ता इस बहुत ब्लॉग को पढ़ने के लिए क्रोम या फ़ायरफ़ॉक्स या सफारी या ओपेरा या यहां तक ​​कि इंटरनेट एक्सप्लोरर का उपयोग कर सकते हैं। वे ब्राउज़रों के विभिन्न संस्करणों का उपयोग कर सकते हैं। वे इन ब्राउज़रों को किसी भी ओएस पर चला रहे होंगे, चाहे वह विंडोज हो या मैक या उबंटू या लिनक्स का कोई अन्य वितरण।



क्या होगा अगर उपयोगकर्ता इंटरनेट पर कुछ महत्वपूर्ण देख रहे थे? आपके व्यवसाय के लिए कुछ महत्वपूर्ण। क्या आप यह सुनिश्चित नहीं करना चाहेंगे कि अतिरिक्त मील (वेब ​​ऐप का परीक्षण) केवल यह सुनिश्चित करने के लिए कि आपके उपयोगकर्ता और / या ग्राहकों को सर्वश्रेष्ठ उपयोगकर्ता अनुभव प्राप्त हो? तुम, सही होगा?

हां, तुम्हें करना चाहिए!

लेकिन सवाल यह है कि यह कितना संभव है? क्या आप हर संभव ओएस और हर उपलब्ध वेब ब्राउज़र पर अपने वेब ऐप के परीक्षण में समय बिता पाएंगे? हम्म, यह एक चुनौती की तरह लग रहा है। यह वह जगह है जहां सेलेनियम ग्रिड बिल फिट बैठता है और मदद करता हैअपना समय और ऊर्जा बचाएं।

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

सेलेनियम ग्रिड क्या है?

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

ग्रिड कार्य - सेलेनियम ग्रिडतो, यह कैसे काम करता है? ग्रिड एक हब-नोड आर्किटेक्चर को नियोजित करता है, जहां एक हब है, जो मास्टर के रूप में कार्य करता है और एक या अधिक नोड्स दास के रूप में कार्य करते हैं।

इसका मतलब क्या है, अगर आपके पास कुल 100 नौकरियां / परीक्षण हैं जिन्हें निष्पादित करने की आवश्यकता है, तो परीक्षण को 5 मशीनों में एक साथ निष्पादित किया जा सकता है, जहां प्रत्येक मशीन 20 परीक्षण चला रही होगी। वास्तव में, आप इन परीक्षणों को ऑपरेटिंग सिस्टम और ब्राउज़र के विभिन्न संयोजनों में निष्पादित कर सकते हैं। यहां प्रत्येक मशीन एक अलग ओएस की हो सकती है और प्रत्येक ओएस के अंदर, विभिन्न ब्राउज़रों पर परीक्षण किए जा सकते हैं।

यह कार्य परीक्षण निष्पादन में आपके बहुत समय में आसानी से बचा लेगा। यदि आप उपर्युक्त उदाहरण पर विचार करते हैं, तो हम निष्पादन समय को एक मशीन पर परीक्षणों को निष्पादित करने के लिए लिए गए कुल समय के लगभग 1 / 5th तक कम कर सकते हैं।

यदि आप मेरे पिछले ब्लॉगों से याद कर सकते हैं, तो मैंने अनगिनत बार उल्लेख किया है कि ग्रिड सेलीनियम परियोजना का हिस्सा था, इसकी स्थापना के समय से यानी सेलेनियम v1 के बाद से। सेलेनियम ग्रिड भी सेलेनियम v2 का एक हिस्सा था और वर्तमान में यह सेलेनियम v3 का एक हिस्सा है। सेलेनियम ग्रिड के v2 और v3 में बहुत अंतर नहीं है। हालांकि, v1 में तुलनात्मक रूप से बहुत अंतर है। तो चलेंv1 और v2 के बीच के अंतर को समझें।

सेलेनियम ग्रिड 1 बनाम सेलेनियम ग्रिड 2

ग्रिड v1.0 और v2.0 के बीच मूलभूत अंतर यह है कि, आरसी का उपयोग ग्रिड 1 में किया गया था, और वेबड्राइवर का उपयोग ग्रिड 2 में किया गया था। नीचे दी गई तालिका में अंतर के बारे में विस्तार से बताया गया है।

ग्रिड 1 ग्रिड 2
अपाचे चींटी को स्थापित करने की आवश्यकता हैअपाचे चींटी स्थापना की आवश्यकता नहीं है
इसका अपना रिमोट कंट्रोल है (यह RC सर्वर से अलग है)सेलेनियम सर्वर जार फ़ाइल के साथ बंडल किया गया
केवल सेलेनियम आरसी आदेशों का समर्थन करता हैसेलेनियम आरसी और वेबड्राइवर दोनों लिपियों का समर्थन करता है
आप रिमोट कंट्रोल प्रति केवल एक ब्राउज़र को स्वचालित कर सकते हैंआप रिमोट कंट्रोल के अनुसार 5 ब्राउज़रों को स्वचालित कर सकते हैं


अब जब हमने दो संस्करणों के बीच बुनियादी अंतर सीख लिया है, तो आइए हम सेलेनियम ग्रिड में गहरा गोता लगाएँ।

सेलेनियम ग्रिड की वास्तुकला

जैसा कि मैंने पहले उल्लेख किया है, ग्रिड एक हब और कई नोड्स के आधार पर कार्य करता है। लेकिन, हब और नोड्स क्या हैं और वे क्या करते हैं?

केंद्र

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

ऐसा होने के लिए, हमें पहले हब को कॉन्फ़िगर करना होगा, और फिर हब में पंजीकरण करने के लिए अन्य नोड्स बनाने होंगे। इससे पहले कि मैं बहुत अधिक विवरणों में जाऊं, मैं आपको हब को कॉन्फ़िगर करने के लिए कमांड दिखाता हूं।

हब को कॉन्फ़िगर करना

आपको सबसे पहले सेलेनियम सर्वर की वेबसाइट से सेलेनियम सर्वर JAR फ़ाइल डाउनलोड करनी होगी। लिंक है यहाँ । आपको यह भी सुनिश्चित करने की आवश्यकता है कि जावा आपके सिस्टम में स्थापित है और पर्यावरण चर सेट हैं।

एक बार जब आप जार फ़ाइल डाउनलोड कर लेते हैं, तो आपको इसे एक उपयुक्त निर्देशिका में रखना होगा। अपनी सुविधा के लिए, मैंने इसे डाउनलोड किया है और इसे सी ड्राइव में सेलेनियम फ़ोल्डर में रखा है। यह अनुशंसा की जाती है कि आप जार फ़ाइल डाउनलोड करें और इसे अन्य सभी नोड्स में एक समान निर्देशिका में रखें।

हब को कॉन्फ़िगर करने के लिए, आपको विंडोज़ कमांड प्रॉम्प्ट में कमांड को चलाने की आवश्यकता है। कमांड नीचे स्निपेट में मौजूद है।

C: UsersVardhan> cd .. C: उपयोगकर्ता> cd .. C:> cd सेलेनियम C: सेलेनियम> java-sj सेलेनियम-सर्वर-स्टैंडअलोन-3.4.0.jar -role हब

सेलेनियम-सर्वर-स्टैंडअलोन-3.4.0.jar मेरे द्वारा डाउनलोड की गई जार फ़ाइल का नाम है।
—करना उस विशेष मेजबान मशीन को हब के रूप में स्थापित करने के लिए ध्वज का उपयोग किया जाता है। जब आप एंट्री मारते हैं, तो आपको अपनी स्क्रीन पर नीचे आउटपुट मिलेगा।

यदि आप उपरोक्त स्क्रीनशॉट को नोटिस करने में विफल रहे, तो इसे फिर से देखें। इसे कहते हैं ' -नोड्स को http://192.168.0.11:4444/grid/register पर पंजीकरण करना चाहिए ‘ अब जब हब कॉन्फ़िगर किया गया है, तो हमें नोड सेट करने और उन्हें इस हब से कनेक्ट करने की आवश्यकता है।

192.168.0.11 हब का आईपी पता है, और प्रत्येक नोड को इस आईपी पते से कनेक्ट होना चाहिए। 4444 डिफ़ॉल्ट पोर्ट नंबर है जिस पर सेलेनियम ग्रिड होस्ट हो जाता है और अनुरोधों के लिए सुनता है। यदि कोई अन्य सेवा 4444 पोर्ट पर चल रही है और आप चाहते हैं कि सेलेनियम ग्रिड को दूसरे पोर्ट पर होस्ट किया जाए, तो आप इसे निर्दिष्ट करके ऐसा कर सकते हैं -बंदरगाह पोर्ट नंबर के बाद ध्वज।

नोड्स

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

नोड्स को कॉन्फ़िगर करना

हब की तरह, आपको सबसे पहले जार मशीनों को नोड मशीनों में डाउनलोड करना होगा और इसे सी ड्राइव या किसी अन्य सामान्य निर्देशिका में अपनी सुविधा के लिए रखना होगा। फिर आप विंडोज कमांड प्रॉम्प्ट में नीचे कमांड चला सकते हैं। यदि आप अपने हब के समान मशीन पर भी नोड लॉन्च कर रहे हैं, तो आपको एक और कमांड प्रॉम्प्ट शुरू करके कमांड चलाने की आवश्यकता है।

java -Dwebdriver.chrome.driver = E: chromedriver.exe .jar selenium-server-standalone-3.4.0.jar -role नोड -hub http://192.168.0.11:4444-grid/register

हब को शुरू करने के लिए आवश्यक कमांड की तुलना में इस कमांड में बस कुछ अंतर हैं।
-Dwebdriver.chrome.driver = E: chromedriver.exe ब्राउज़र ड्राइवर का पथ सेट करने के लिए उपयोग किया जाता है। अपने वेबड्राइवर कोड में ब्राउज़र ड्राइवर का पथ सेट करने के समान, आप इसे यहां निर्दिष्ट करते हैं ताकि नोड को परीक्षण करने में सक्षम किया जा सके। सेलेनियम v3 के बाद से, आपको फ़ायरफ़ॉक्स के लिए ड्राइवर ब्राउज़र डाउनलोड करना होगा। फ़ायरफ़ॉक्स के लिए ब्राउज़र ड्राइवर गेको चालक है। हालाँकि, संस्करण 1 और 2 में, आपको फ़ायरफ़ॉक्स के अलावा सभी ब्राउज़र के लिए ब्राउज़र ड्राइवर सेट करने की आवश्यकता है।
-हेलो नोड ध्वज का उपयोग उस विशेष मेजबान मशीन को नोड के रूप में सेट करने के लिए किया जाता है।
-हब http://192.168.0.11:4444/grid/register हब के आईपी पते का उपयोग करके हब से कनेक्ट करने के लिए नोड को सूचित करता है। ध्यान देने वाली एक महत्वपूर्ण बात यह है कि यदि आप अपने हब के समान मशीन पर कोई भी नोड लॉन्च कर रहे हैं, तो आप is निर्दिष्ट कर सकते हैं -हब http: // लोकलहोस्ट: 4444 / ग्रिड / रजिस्टर हब के आईपी पते के बजाय कमांड में instead

जब आप एंट्री मारते हैं, तो आपको कमांड प्रॉम्प्ट पर नीचे आउटपुट मिलेगा।

अब तक, नोड हब से जुड़ा हुआ होता। आप हब को शुरू करने के लिए उपयोग किए जाने वाले कमांड प्रॉम्प्ट पर वापस जाकर सत्यापित कर सकते हैं कि आपको निम्न संदेश दिखाई देगा: going एक नोड पंजीकृत http://192.168.0.11:5555

IP पता और पोर्ट नंबर आपके नोड का है। चूँकि मेरे पास मेरे हब के समान मशीन पर मेरा नोड है, नोड के लिए उपयोग किया जाने वाला पोर्ट 5555 है। जब आप इसे किसी अन्य मशीन पर आरंभ करते हैं, तो डिफ़ॉल्ट पोर्ट का उपयोग किया जाएगा।

जब आप अपने हब की मशीन में निम्न URL लॉन्च करते हैं, तो आपको अपने हब से जुड़े नोड्स की स्थिति मिल जाएगी। नीचे स्क्रीनशॉट में हाइलाइट किया गया भाग देखें।

जावा में टिप्पणी के प्रकार

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

एक सेलेनियम ग्रिड का निर्माण

मैंने अपनी स्क्रिप्ट एक्लिप्स आईडीई में चलाई है। इस स्क्रिप्ट का निष्पादन दो महत्वपूर्ण लाइब्रेरी पैकेजों पर निर्भर करता है। वे वांछनीयताएँ वस्तु और रिमोटवेबड्राइवर वस्तु।

DesiredCapabilities ब्राउज़र प्रकार और हमारे नोड के ओएस को सेट करने के लिए उपयोग किया जाता है। DesiredCapabilities ऑब्जेक्ट आयात करने के लिए, नीचे दिए गए कोड का उपयोग करें।

आयात org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver का उपयोग उस नोड को चुनने के लिए किया जाता है जिस पर हम परीक्षण को निष्पादित करना चाहते हैं। RemoteWebDriver ऑब्जेक्ट को आयात करने के लिए, कोड की निचली पंक्तियों का उपयोग करें।

इंपोर्ट java.net.alformedURLException इंपोर्ट java.net.URL इंपोर्ट org.openqa.selenium.remote.RemoteWebDriver

मैंने अपनी स्क्रिप्ट के लिए TestNG एनोटेशन पैकेज के साथ इन दोनों पैकेजों को आयात किया है जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है। मैंने TestNG एनोटेशन आयात किए हैं क्योंकि मैंने इसे TestNG टेस्ट के रूप में निष्पादित किया है जिसके लिए एक विस्तृत रिपोर्ट तैयार की जाएगी। मैं आपको अपने कोड के लिए पैकेज के समान सेट को आयात करने की सलाह दूंगा।

जब आप सेलेनियम हब कंसोल में मौजूद किसी भी ब्राउज़र के लोगो पर पैंतरेबाज़ी करते हैं, तो आपको विवरण प्राप्त होगा ब्राउज़रनाम और यह मंच जिस नोड को आप स्वचालित करना चाहते हैं। छवि यह भी इंगित करती है कि मैं अपने नोड में कितने ब्राउज़रों को खोल सकता हूं। मैं अधिकतम 5 क्रोम, 5 फ़ायरफ़ॉक्स और 1 इंटरनेट एक्सप्लोरर उदाहरणों को कॉन्फ़िगर कर सकता हूं। ये विवरण नीचे स्क्रीनशॉट में मौजूद हैं।

आप अपना पहला ग्रिड सेटअप करने के लिए नीचे दिए गए स्निपेट में कोड का उपयोग कर सकते हैं।

पैकेज GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net .alformedURLException java.net.URL import org.junit.Assert import org.openqa.selenium आयात करें .Platform आयात org। नोडयूआरएल = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities क्षमताओं = DesiredCapabilities.chrome () क्षमताएं.setBrowserName ('क्रोम') क्षमताएं.setBlatform (प्लेटफ़ॉर्म। विंडो) ड्राइवर = नया RemoteWebDriver (नया URL) ), क्षमताएं)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest सार्वजनिक शून्य afterTest () {driver.quit ()}}

मैंने पूरी परीक्षण स्क्रिप्ट को तीन परीक्षण एनोटेशन में विभाजित किया है। @BeforeTest, @Test और @AfterTest। @BeforeTest में, मैंने अपने नोड को कॉन्फ़िगर करने के लिए DesiredCapablities और RemoteWebDriver ऑब्जेक्ट का उपयोग किया है। @ टेस्ट में, मैंने नोड को एडुर्का के होम पेज पर नेविगेट करने और पेज के शीर्षक पर जोर देने के लिए कहा है। @AfterTest में, मैंने Node को ब्राउज़र इंस्टेंस छोड़ने के लिए कहा है।

जब आपका परीक्षण निष्पादन से गुजरता है, तो आपको नीचे आउटपुट मिलेगा।

May 18, 2017 3:09:07 PM org.openqa.selenium.remote.ProtocolHandshake createSession जानकारी: बोली जाने वाली बोली: OSS PASSED: simpleTest ===================== ======================== डिफ़ॉल्ट परीक्षण टेस्ट चलते हैं: 1, विफलताएं: 0, कौशल: 0 ========== ====================================================== ================================ डिफ़ॉल्ट सूट कुल परीक्षण चलाते हैं: 1, विफलताएं: 0, कौशल: 0 = ================================================

चूंकि यह TestNG परीक्षण के रूप में निष्पादित किया जाता है, इसलिए आपको नीचे दिए गए स्क्रीन शॉट के समान एक विस्तृत परीक्षण रिपोर्ट मिलेगी।

अगर आपको पता नहीं है कि TestNG क्या है और टेस्ट एनोटेशन का उपयोग कैसे करना है, तो मेरा ब्लॉग कैसे उपयोग करें, पढ़ें टेस्टेनजी के साथ सेलेनियम वेबड्राइवर इस सेलेनियम ट्यूटोरियल श्रृंखला से।

सेलेनियम ग्रिड का निर्माण करने के तरीके का प्रदर्शन देखने के लिए आप नीचे वीडियो देख सकते हैं। वीडियो पहुंचाने वाला प्रशिक्षक इस ब्लॉग में बताए गए समान अवधारणाओं की व्याख्या करता है।

शुरुआती के लिए सेलेनियम ग्रिड ट्यूटोरियल | सेलेनियम ट्यूटोरियल | Edureka

तो, यह हमें इस सेलेनियम ग्रिड ब्लॉग के अंत में लाता है। यदि आपको इस ब्लॉग श्रृंखला के किसी भी कोड / सामग्री के साथ कोई संदेह या समस्या है, तो कृपया उन्हें नीचे टिप्पणी अनुभाग में छोड़ दें और मैं आपकी समस्या को जल्द से जल्द हल करूंगा।

यदि आप सेलेनियम सीखना चाहते हैं और परीक्षण डोमेन में अपना कैरियर बनाना चाहते हैं, तो हमारे इंटरैक्टिव, लाइव-ऑनलाइन की जांच करें यहाँ, यह आपके सीखने की अवधि में मार्गदर्शन करने के लिए 24 * 7 समर्थन के साथ आता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और हम आपके पास वापस आ जाएंगे।