हेडलेस ब्राउज़र Selenium (HTMLUnitड्राइवर)
हेडलेस ब्राउज़र एक ऐसा वेब ब्राउज़र है जिसमें ग्राफ़िकल यूज़र इंटरफ़ेस नहीं होता। यह बिना किसी विज़ुअल डिस्ट्रक्शन के बैकग्राउंड में चल सकता है। यह समय और संसाधनों की बचत करते हुए वेब एप्लिकेशन का परीक्षण करने का एक कुशल और प्रभावी तरीका प्रदान करता है। इस ट्यूटोरियल में, हम जानेंगे कि हेडलेस ब्राउज़र क्या है, हेडलेस ब्राउज़र परीक्षण का उपयोग कब करना है, और इसका उपयोग करके इसे कैसे करना है Selenium.
हेडलेस ब्राउज़र क्या है?
हेडलेस ब्राउज़र एक वेब-ब्राउज़र है बिना ग्राफिकल यूजर इंटरफेस केयह प्रोग्राम ब्राउज़र की तरह ही व्यवहार करेगा लेकिन कोई GUI नहीं दिखाएगा।
हेडलेस ड्राइवर्स के कुछ उदाहरणों में शामिल हैं
- एचटीएमएलयूनिट
- भूत
- फैंटमजस
- ज़ोंबीजेएस
- Watir-वेबड्राइवर
हेडलेस ब्राउज़र परीक्षण का उपयोग कब करें?
आज के डिजिटल युग में, वेब एप्लिकेशन को कई तरह के उपकरणों और प्लेटफ़ॉर्म के साथ संगत होने के लिए विकसित किया जाता है। यह अक्सर वेबसाइट डेवलपर्स के लिए एक चुनौती पेश करता है, जिन्हें यह सुनिश्चित करने की आवश्यकता होती है कि उनके एप्लिकेशन इन प्लेटफ़ॉर्म पर निर्बाध रूप से काम करें। हेडलेस ब्राउज़र परीक्षण इस समस्या के लिए एक आदर्श समाधान है क्योंकि यह डेवलपर्स को ग्राफ़िक यूज़र इंटरफ़ेस की आवश्यकता के बिना अपने वेब एप्लिकेशन का परीक्षण करने की अनुमति देता है। हेडलेस ब्राउज़र परीक्षण का उपयोग करके, डेवलपर्स कई घटकों और निर्भरताओं के साथ जटिल वेब एप्लिकेशन का आसानी से परीक्षण कर सकते हैं, जिससे तेज़ विकास, बग-मुक्त कोड और खुश उपयोगकर्ता का मार्ग प्रशस्त होता है।
हेडलेस ब्राउज़र परीक्षण Selenium
Selenium हेडलेस ब्राउज़र परीक्षण के लिए एक शक्तिशाली उपकरण है, जो डेवलपर्स को दृश्यमान उपयोगकर्ता इंटरफ़ेस की आवश्यकता के बिना स्वचालित परीक्षण चलाने की अनुमति देता है। पृष्ठभूमि में परीक्षण चलाकर, Selenium समय और संसाधनों की बचत कर सकते हैं, साथ ही उन मुद्दों की पहचान करने में भी मदद कर सकते हैं जो पारंपरिक UI-आधारित परीक्षण वातावरण में स्पष्ट नहीं हो सकते हैं। इसमें प्रदर्शन-संबंधी मुद्दे और लेआउट समस्याएं शामिल हैं जो केवल हेडलेस सेटिंग में ही स्पष्ट हो सकती हैं। हालाँकि, हेडलेस परीक्षण की सीमाओं को ध्यान में रखना और व्यापक परीक्षण कवरेज सुनिश्चित करने के लिए पारंपरिक UI-आधारित विधियों के साथ इसे संतुलित करना महत्वपूर्ण है।
हेडलेस ब्राउज़र के लोकप्रिय उदाहरण
कई हेडलेस ब्राउज़र उपलब्ध हैं, जिनमें से प्रत्येक की अपनी अनूठी विशेषताएं और लाभ हैं, जो उन्हें विभिन्न उपयोग मामलों के लिए उपयुक्त बनाते हैं। हम नीचे उनकी चर्चा करते हैं:-
फैंटमजस
फैंटमजेएस एक हेडलेस ब्राउज़र है जो वेबकिट को अपने रेंडरिंग इंजन के रूप में उपयोग करता है और HTML5, CSS3 और जैसे विभिन्न वेब मानकों का समर्थन करता है। Javaस्क्रिप्ट। इसका उपयोग स्क्रीन कैप्चर और पेज ऑटोमेशन कार्यों के लिए किया जा सकता है। यह ओपन-सोर्स है और कई ऑपरेटिंग सिस्टम के साथ संगत है।
इसका उदाहरण Selenium हेडलेस फैंटमजेएस के साथ Python
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # Set up PhantomJS options phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy() phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' # Set up the PhantomJS driver driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
Chrome
क्रोम दुनिया का सबसे लोकप्रिय ब्राउज़र है और इसमें हेडलेस सुविधा भी है। इसे कई प्लेटफ़ॉर्म पर इस्तेमाल किया जा सकता है और यह प्रोग्रामिंग भाषाओं और फ़्रेमवर्क का समर्थन करता है। इसके बिल्ट-इन डिबगिंग टूल और विस्तृत दस्तावेज़ीकरण इसे इस्तेमाल करना आसान बनाते हैं और परीक्षण के दौरान आने वाली किसी भी समस्या का निवारण करते हैं।
हेडलेस क्रोम का उदाहरण Selenium in Python
from selenium import webdriver from selenium.webdriver.chrome.options import Options # Set up Chrome options chrome_options = Options() chrome_options.add_argument('--headless') # Run Chrome in headless mode chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # Set up the Chrome driver driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
Firefox
Firefox एक लोकप्रिय वेब ब्राउज़र है जिसका परीक्षण उद्देश्यों के लिए हेडलेस ब्राउज़र के रूप में भी उपयोग किया जा सकता है। Firefox हेडलेस ब्राउज़र के रूप में इसकी खासियत इसकी हल्की प्रकृति है, जो इसे विभिन्न ऑपरेटिंग सिस्टम पर परीक्षण के लिए एक बहुमुखी विकल्प बनाती है। इसके अतिरिक्त, इसके व्यापक दस्तावेज़ीकरण और सामुदायिक समर्थन के साथ, Firefox यह उन लोगों के लिए एक उत्कृष्ट विकल्प है जो हेडलेस ब्राउज़र तकनीक के साथ प्रयोग करना चाहते हैं।
हेडलेस का उदाहरण Firefox साथ में Selenium in Python
from selenium import webdriver from selenium.webdriver.firefox.options import Options # Set up Firefox options firefox_options = Options() firefox_options.add_argument('--headless') # Run Firefox in headless mode # Set up the Firefox driver driver = webdriver.Firefox(options=firefox_options) # Perform actions using the driver driver.get('https://www.example.com') print(driver.title) # Close the driver driver.quit()
हेडलेस ब्राउज़र परीक्षण के लाभ
- तेज़ परीक्षण निष्पादन
- लागत प्रभावी परीक्षण
- बेहतर परीक्षण कवरेज
- परीक्षण चलाने में लचीलापन
- CI/CD पाइपलाइनों के साथ एकीकरण
हेडलेस ब्राउज़र परीक्षण के नुकसान
- GUI का अभाव
- डिबगिंग में कठिनाइयाँ
- सीमित ब्राउज़र समर्थन
HTMLयूनिटड्राइवर
HTML UnitDriver, WebDriver का सबसे हल्का और सबसे तेज़ कार्यान्वयन वाला हेडलेस ब्राउज़र है। यह HtmlUnit पर आधारित है। इसे इस नाम से जाना जाता है हेडलेस ब्राउज़र ड्राइवरयह क्रोम, IE या फायर जैसा ही हैFox ड्राइवर, लेकिन इसमें GUI नहीं है इसलिए कोई स्क्रीन पर परीक्षण निष्पादन नहीं देख सकता है।
HTML यूनिट ड्राइवर की विशेषताएं
- HTTPS और HTTP प्रोटोकॉल के लिए समर्थन
- HTML प्रतिक्रियाओं के लिए समर्थन (लिंक पर क्लिक करना, फॉर्म सबमिट करना, HTML दस्तावेज़ के DOM मॉडल पर चलना आदि)
- कुकीज़ के लिए समर्थन
- प्रॉक्सी सर्वर समर्थन
- बुनियादी और NTLM प्रमाणीकरण के लिए समर्थन
- उत्कृष्ट Javaलिपि समर्थन
- सबमिट विधियों GET और POST के लिए समर्थन
- सर्वर को भेजे जाने वाले अनुरोध हेडर को अनुकूलित करने की क्षमता
- यह निर्धारित करने की क्षमता कि सर्वर से असफल प्रतिक्रियाओं को अपवाद फेंकना चाहिए या उचित प्रकार के पृष्ठों के रूप में वापस किया जाना चाहिए
HTMLUnit ड्राइवर का उपयोग करने के चरण Selenium
चरण 1) In Eclipse, निम्न कोड को कॉपी करें। प्रोजेक्ट में मानक सेलेनियम लाइब्रेरी फ़ाइलें जोड़ें। किसी अतिरिक्त jar फ़ाइल की आवश्यकता नहीं है।
package htmldriver; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class htmlUnitYest { public static void main(String[] args) { // Creating a new instance of the HTML unit driver WebDriver driver = new HtmlUnitDriver(); // Navigate to Google driver.get("http://www.google.com"); // Locate the searchbox using its name WebElement element = driver.findElement(By.name("q")); // Enter a search query element.sendKeys("Guru99"); // Submit the query. Webdriver searches for the form using the text input element automatically // No need to locate/find the submit button element.submit(); // This code will print the page title System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
चरण 2) कोड चलाएँ. आप देखेंगे कि कोई भी ब्राउज़र लॉन्च नहीं होता है और परिणाम कंसोल में दिखाए जाते हैं।
HTML यूनिट ड्राइवर के लाभ:
- चूंकि यह परीक्षण के लिए किसी GUI का उपयोग नहीं कर रहा है, इसलिए आपके परीक्षण बिना किसी दृश्य व्यवधान के पृष्ठभूमि में चलेंगे
- अन्य सभी उदाहरणों की तुलना में निष्पादन तेज़ है
- HtmlUnit ड्राइवर के माध्यम से अपने परीक्षण चलाने के लिए आप अन्य ब्राउज़र संस्करण भी चुन सकते हैं
-
यह प्लेटफ़ॉर्म स्वतंत्र है और एक साथ कई परीक्षण चलाना आसान है। लोड परीक्षण.
सीमाएं:
- यह अन्य ब्राउज़रों का अनुकरण नहीं कर सकता Javaस्क्रिप्ट व्यवहार
फैंटमजस
PhantomJS एक हेडलेस ब्राउज़र है Javaस्क्रिप्ट एपीआई। यह हेडलेस वेबसाइट परीक्षण, वेबपेजों तक पहुंच और हेरफेर के लिए एक इष्टतम समाधान है और मानक DOM API के साथ आता है।
सेलेनियुन के साथ फैंटमजेएस का उपयोग करने के लिए, घोस्टड्राइवर का उपयोग करना होगा। घोस्टड्राइवर फैंटमजेएस के लिए सरल जेएस में वेबड्राइवर वायर प्रोटोकॉल का कार्यान्वयन है।
PhatomJS का नवीनतम संस्करण जारी किया गया है। एकीकृत घोस्टड्राइवर और इसे अलग से स्थापित करने की कोई आवश्यकता नहीं है.
यह प्रणाली इस प्रकार काम करती है-
दौड़ने के चरण Selenium PhatomJS के साथ
चरण 1) आप की जरूरत है Eclipse साथ में Selenium installed
चरण 2) PhantomJS डाउनलोड करें यहाँ उत्पन्न करें
चरण 3) डाउनलोड किए गए फ़ोल्डर को प्रोग्राम फ़ाइलों में निकालें
चरण 4) PhantomJS ड्राइवर को यहां से डाउनलोड करें यहाँ उत्पन्न करें. जार को अपने प्रोजेक्ट में जोड़ें
चरण 5) निम्नलिखित कोड को एक्लिप्स में पेस्ट करें
package htmldriver; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.phantomjs.PhantomJSDriver; public class phantom { public static void main(String[] args) { File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe"); System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); WebDriver driver = new PhantomJSDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Guru99"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
चरण 6) कोड चलाएँ। आप देखेंगे कि आउटपुट कंसोल में दिखाया गया है और कोई ब्राउज़र लॉन्च नहीं हुआ है।
ध्यान दें: पहली बार चलाने पर, आपकी सेटिंग के आधार पर, आपको सुरक्षा चेतावनी मिल सकती है Windows PhantomJS चलाने की अनुमति देने के लिए Allow Access पर क्लिक करें।
कई संगठन विभिन्न उद्देश्यों के लिए Phantom.JS का उपयोग करते हैं, उदाहरण के लिए,
- हेडलेस परीक्षण
- स्क्रीन पर कब्जा
- पृष्ठ स्वचालन
- नेटवर्क मॉनिटरिंग
- अपने उपयोगकर्ताओं के लिए डैशबोर्ड स्क्रीनशॉट प्रस्तुत करना
- कमांड लाइन पर यूनिट परीक्षण चलाने के लिए
- HTML से PDF में कर्मचारी पुस्तिका तैयार करना
- परीक्षण सूट के लिए QUnit के साथ संयुक्त
सारांश
विभिन्न ब्राउज़रों में और बिना किसी दृश्य व्यवधान के तेजी से एप्लिकेशन का परीक्षण करने के लिए, हेडलेस ब्राउज़र परीक्षण का उपयोग किया जाता है। अपनी गति, सटीकता और आसानी से उपयोग की जाने वाली सुविधाओं के कारण, HTML यूनिट ड्राइवर और PhantomJS हेडलेस ब्राउज़र ऑटोमेशन परीक्षण के लिए लोकप्रियता प्राप्त कर रहे हैं। कुछ सरल चरणों का पालन करके आप जान सकते हैं कि इन उपकरणों को अन्य उपकरणों के साथ कितनी आसानी से एकीकृत किया जा सकता है और परीक्षण कोड निष्पादित किया जा सकता है।