what is headless browser
यह ट्यूटोरियल बताता है कि एक हेडलेस ब्राउज़र क्या है, इसके फायदे, उदाहरण और सेलेनियम के साथ हेडलेस ब्राउज़र परीक्षण। आप HtmlUnitDrvier के बारे में भी जानेंगे:
पिछले कुछ वर्षों में, हमने देखा है कि वेब सुंदर यूआई के साथ निर्मित सरल से अत्यधिक उन्नत वेबसाइटों से विकसित हो रहा है। संक्षेप में, आजकल जावास्क्रिप्ट वेब को बहुत अच्छी तरह से नियंत्रित करता है ताकि यह वेबसाइटों पर लगभग हर बातचीत को संभाल सके।
आज, हम देख सकते हैं कि ब्राउज़र इतने कुशल हैं कि वे आसानी से समझ सकते हैं कि जावास्क्रिप्ट को कैसे संसाधित किया जाए। जावास्क्रिप्ट के साथ समन्वय में, एक ब्राउज़र को प्रोग्रामेटिक रूप से ध्यान रखा जाता है। वेब ब्राउजर टेस्टिंग के लिए हेडलेस ब्राउजर्स को बहुत उपयोगी माना जा रहा है क्योंकि वे हमारे प्रयासों में सुधार करते हैं।
सबसे अच्छा मुक्त पॉप अप अवरोधक क्रोम
आप क्या सीखेंगे:
- एक सिर रहित ब्राउज़र क्या है?
- निष्कर्ष
एक सिर रहित ब्राउज़र क्या है?
हेडलेस - ओह हां, आपने इसे सही पढ़ा। बिना मतलब, यूजर इंटरफेस के बिना एक वेब ब्राउज़र का मतलब है। विस्तृत करने के लिए, हेडलेस ब्राउजर वे हैं जो वास्तव में वेब पेज तक पहुंचते हैं, लेकिन GUI उपयोगकर्ता से छिपा हुआ है।
एक हेडलेस ब्राउजर किसी भी अन्य ब्राउजर की तरह है, फर्क सिर्फ इतना है कि हम स्क्रीन पर कुछ भी नहीं देख सकते हैं। यहां हम कह सकते हैं कि कार्यक्रम वास्तव में बैकएंड में चलता है और स्क्रीन पर कुछ भी नहीं देखा जा सकता है। इस प्रकार, यह हेड / GUI के बिना एक के रूप में जाना जाता है।
एक सामान्य ब्राउज़र की तरह ही एक हेडलेस ब्राउज़र हमारे प्रोग्राम के अनुसार सभी निर्देशों को निष्पादित करके लिंक पर क्लिक करने, पृष्ठों को नेविगेट करने, दस्तावेज़ों को डाउनलोड करने, दस्तावेज़ को अपलोड करने आदि जैसे सभी कार्य करता है।
एक सामान्य ब्राउज़र GUI प्रस्तुति के साथ कार्यक्रम के प्रत्येक चरण के साथ आगे बढ़ेगा, जबकि एक Headless ब्राउज़र के लिए कार्यक्रम के सभी चरणों को क्रमिक रूप से और सही तरीके से किया जाता है और हम इसे कंसोल या कमांड की मदद से ट्रैक कर सकते हैं- लाइन इंटरफ़ेस।
बिना सिर के ब्राउज़र के फायदे
# 1) हेडलेस ब्राउजर का उपयोग तब किया जाता है जब मशीन में कोई जीयूआई नहीं होता है, जो कि लिनक्स (जीयूआई के बिना एक ओएस) का उपयोग करते समय कमांड-लाइन इंटरफ़ेस के माध्यम से निष्पादित होता है और वास्तव में प्रदर्शित करने के लिए कोई इंटरफ़ेस नहीं होता है।
#दो) इसके अलावा, इनका उपयोग ऐसे मामले में किया जा सकता है, जहां कुछ भी देखने की आवश्यकता नहीं है और हमारा उद्देश्य सिर्फ यह सुनिश्चित करना है कि सभी परीक्षणों को लाइन द्वारा सफलतापूर्वक निष्पादित किया जा रहा है।
# 3) जब समानांतर परीक्षणों को निष्पादित करने की आवश्यकता होती है, तो यूआई आधारित ब्राउज़र बहुत अधिक मेमोरी और / या संसाधनों का उपभोग करते हैं। इसलिए, यहाँ हेडलेस ब्राउज़र का उपयोग करना पसंद किया जाता है।
# 4) यदि हम निरंतर एकीकरण के साथ अगले आने वाले रिलीज़ के लिए प्रतिगमन परीक्षण करना चाहते हैं और हमें क्रॉस ब्राउज़र परीक्षण के साथ किया जाता है, तो हेडलेस ब्राउज़र परीक्षण का उपयोग किया जा सकता है।
# 5) यदि हम एक ही मशीन पर कई ब्राउज़रों का अनुकरण करना चाहते हैं या केवल डेटा निर्माण के लिए परीक्षण मामलों को चलाना चाहते हैं, तो हम हेडलेस ब्राउज़र का उपयोग करते हैं।
# 6) रियल ब्राउजर की तुलना में, हेडलेस ब्राउजर तेज होते हैं। तो, ये तेजी से निष्पादन के लिए चुने जाते हैं।
बिना सिर के ब्राउज़र के नुकसान
# 1) हालांकि हेडलेस ब्राउजर बहुत तेज हैं, फिर भी कुछ नुकसान भी हैं। अपनी तेज़ पृष्ठ लोडिंग क्षमता के कारण, कभी-कभी मुद्दों को डीबग करना मुश्किल होता है।
#दो) वास्तविक ब्राउज़र परीक्षण में GUI की उपस्थिति में परीक्षण मामलों को शामिल करना शामिल है। इसके अलावा, ये परीक्षण उपयोगकर्ता के सामने किए जाते हैं, इसलिए उपयोगकर्ता टीम के साथ बातचीत कर सकता है, जीयूआई का जिक्र कर सकता है और चर्चा कर सकता है कि कभी भी बदलाव या सुधार की आवश्यकता है। ऐसे मामले में, हेडलेस ब्राउजर का उपयोग नहीं किया जा सकता है।
# 3) चूंकि हेडलेस ब्राउजर जीयूआई का प्रतिनिधित्व नहीं करते हैं, इसलिए स्क्रीनशॉट की मदद से त्रुटियों की रिपोर्ट करना परेशानी भरा है। एक वास्तविक ब्राउज़र स्क्रीनशॉट उत्पन्न करके दोषों को प्रस्तुत करने में मदद करता है क्योंकि स्क्रीनशॉट परीक्षण में बहुत आवश्यक हैं।
# 4) ऐसे मामले में जहां बहुत सारे ब्राउज़र डिबगिंग की आवश्यकता होती है, हेडलेस ब्राउजर का उपयोग चुनौतीपूर्ण हो सकता है।
बिना सिर वाले ब्राउज़रों के उदाहरण
विभिन्न हेडलेस ब्राउजर उपलब्ध हैं।
नीचे सूचीबद्ध कुछ उदाहरण हैं:
- Html Unit Browsers
- फ़ायर्फ़ॉक्स
- क्रोम
- फैंटमजस
- ज़ोंबी .js
- TrifleJS
- स्लिमरजेएस
- छप छप
- SimpleBrowser
- NodeJS
सेलेनियम के साथ Headless परीक्षण
सेलेनियम एक स्वतंत्र, ओपन-सोर्स परीक्षण उपकरण है। यह स्वचालन परीक्षण करने के लिए एक काफी प्रसिद्ध और कुशल स्वचालन उपकरण है।
सेलेनियम हमें कई भाषाओं जैसे जावा, पाइथन, C #, रूबी, पर्ल, स्काला, आदि में कई स्क्रिप्ट, जैसे फ़ायरफ़ॉक्स, क्रोम, इंटरनेट एक्सप्लोरर, ओपेरा, सफारी आदि का समर्थन करके परीक्षण स्क्रिप्ट लिखने की अनुमति देता है और विंडोज पर चलने में सक्षम है। , लिनक्स और macOS।
सेलेनियम वेबड्राइवर गतिशील वेब पेजों को अच्छा समर्थन प्रदान करता है, जहां विभिन्न वेब तत्व पृष्ठ को फिर से लोड किए बिना बदल जाते हैं।
हेडलेस क्रोम और फ़ायरफ़ॉक्स
दोनों फ़ायरफ़ॉक्स, साथ ही क्रोम ब्राउज़र, हेडलेस ऑटोमेशन टेस्टिंग का समर्थन करते हैं जो कि GUI के बिना फ़ायरफ़ॉक्स और क्रोम में कोड का कार्यान्वयन है।
हेडलेस फ़ायरफ़ॉक्स उदाहरण
हेडलेस फ़ायरफ़ॉक्स 56 से शुरू होने वाले संस्करणों के लिए समर्थन प्रदान करता है और विंडोज, लिनक्स और मैकओएस पर उपलब्ध है। हमें फ़ायरफ़ॉक्स के नवीनतम संस्करण की जेकोड्राइवर। Exe फ़ाइल डाउनलोड करनी होगी और यह सुनिश्चित करना होगा कि जिस संस्करण का हम उपयोग कर रहे हैं वह न्यूनतम समर्थित संस्करण से अधिक हो। फ़ायरफ़ॉक्स हेडलेस मोड में हेडलेस () पद्धति से चलता है।
आइए हेडलेस मोड में फ़ायरफ़ॉक्स ब्राउज़र के लिए कोड देखें:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class HeadlessFirefox { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.gecko.driver',' E://Selenium/latest firefox exe/geckodriver.exe'); FirefoxOptions options = new FirefoxOptions(); options.setHeadless(true); WebDriver driver = new FirefoxDriver(options); driver.get('www.google.com/'); System.out.println('Executing Firefox Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
फ़ायरफ़ॉक्स ब्राउज़र के लिए हेडलेस मोड में उपरोक्त कोड को निष्पादित करने पर, पृष्ठ और उसके URL का शीर्षक प्रदर्शित किया जाता है। कोड को हेडलेस मोड में निष्पादित किया जाता है और कंसोल पर ट्रैक किया जा सकता है।
ऑपरेटिंग सिस्टम जो विंडोज़ प्रोग्राम चलाते हैं
जैसे हेडलेस फ़ायरफ़ॉक्स सेलेनियम द्वारा समर्थित है, यह स्लिमरजेएस और डब्ल्यू 3 सी वेबडायर पर भी चलता है।
बिना सिर का क्रोम उदाहरण
हेडलेस क्रोम क्रोम संस्करणों के लिए 60 पर बाद में समर्थन प्रदान करता है और विंडोज, लिनक्स और मैकओएस के लिए उपलब्ध है। हमें क्रोम ब्राउज़र के नवीनतम संस्करण की .exe फ़ाइल डाउनलोड करनी होगी।
नीचे हेडलेस मोड में क्रोम का उपयोग करने के लिए सिंटैक्स दिया गया है:
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
आइए, क्रोम ब्राउज़र के लिए हेडलेस मोड में कोड देखें:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class HeadlessChrome { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','E://Selenium/latest chrome exe/chromedriver.exe'); ChromeOptions options = new ChromeOptions(); options.addArguments('--headless'); WebDriver driver = new ChromeDriver(options); driver.get('www.google.com/'); System.out.println('Executing Chrome Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
हेडलेस मोड में क्रोम ब्राउज़र के लिए उपरोक्त कोड निष्पादित करने पर, पृष्ठ और उसके URL का शीर्षक प्रदर्शित किया जाता है। कोड निष्पादित है और निष्पादन कंसोल पर ट्रैक किया जा सकता है।
हेडल्ट HtmlUnitDriver
HtmlUnitDriver क्या है?
HtmlUnitDriver जावा में लिखा गया एक हेडलेस वेब ब्राउज़र है। नाम से पता चलता है कि यह एक हेडलेस ड्राइवर है जो HtmlUnit पर आधारित है। HtmlUnitDriver सेलेनियम वेबड्राइवर में एक अंतर्निहित हेडलेस ब्राउज़र है। यह सबसे हल्का और तेज़ ब्राउज़र माना जाता है।
HtmlUnitDriver के कार्यान्वयन के लिए आगे बढ़ते हैं। HtmlUnitDriver JAR फाइलें सेलेनियम की आधिकारिक वेबसाइट से डाउनलोड की जा सकती हैं।
HtmlUnitDriver हेडलेस मोड में
HtmlUnitDriver के लिए अन्य सभी ब्राउज़रों की तरह, हमें भी हेडलेस मोड में कोड चलाने के लिए क्लास के लिए एक ऑब्जेक्ट बनाने की आवश्यकता है।
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class HtmUnitDriver { public static void main(String() args) { // TODO Auto-generated method stub WebDriver driver = new HtmlUnitDriver(); driver.get('https://www.google.com/'); System.out.println('Executing HtmlUnitDriver in Headless mode..
'); System.out.println('>> Page Title : '+ driver.getTitle()); System.out.println('>> Page URL : '+ driver.getCurrentUrl()); } }
इस प्रकार हेडल मोड में HtmlUnitDriver के लिए उपरोक्त कोड निष्पादित करने पर, प्राप्त आउटपुट पेज और उसके URL के शीर्षक को प्रदर्शित करता है। आउटपुट कंसोल के माध्यम से प्राप्त होता है जहां कार्यक्रम में किए गए सभी कार्यों को चरणबद्ध तरीके से देखा जा सकता है।
नीचे दिए गए कोड के स्क्रीनशॉट दिए गए हैं:
HtmlUnitDriver की विशेषताएं / लाभ
(छवि स्रोत )
- HTTPS और HTTP प्रोटोकॉल के लिए समर्थन प्रदान करता है।
- जावास्क्रिप्ट के लिए महान समर्थन।
- मल्टीटास्किंग में मदद करता है, जिससे कई परीक्षण चलाने की अनुमति मिलती है।
- कुकीज़ के लिए समर्थन प्रदान करता है। इसके अलावा, प्रॉक्सी सर्वर का समर्थन करता है।
- परीक्षण स्क्रिप्ट के प्रदर्शन और गति में सुधार करता है, क्योंकि इसमें वेबड्राइवर का सबसे तेज़ कार्यान्वयन है।
- HtmlUnitDriver प्लेटफ़ॉर्म-स्वतंत्र है।
- चूंकि यह डिफ़ॉल्ट रूप से हेडलेस है, यह हेडलेस टेस्टिंग का समर्थन करता है।
HtmlUnitDriver के नुकसान
- जटिल वेबसाइटों के लिए HtmlUnitDriver का उपयोग संभव नहीं है।
- HtmlUnitDriver जैसे हेडलेस ब्राउजर्स के लिए असली ब्राउजर टेस्टिंग के साथ तुलना करते समय, स्क्रिप्ट को डीबग करना बहुत मुश्किल हो जाता है।
- स्क्रीनशॉट की पीढ़ी HtmlUnitDriver के साथ संभव नहीं है।
- हेडलेस ब्राउजर अन्य ब्राउज़रों का अनुकरण करता है।
निष्कर्ष
हेडलेस ब्राउजर परीक्षण वास्तव में बड़ी तेजी से और दक्षता प्रदान करके होता है, लेकिन यह कुछ विशिष्ट विशेषताओं तक पहुंचने में विफल रहता है जो वास्तव में एक गैर-हेडलेस / रियल ब्राउजर द्वारा पूरी की जाती हैं।
Headless Browser के अपने फायदे हैं जबकि Real Browser के अपने। परीक्षण की आवश्यकता के अनुसार, जो भी तकनीक का चयन कर सकता है वह परीक्षक के लिए बेहतर और लाभदायक है।
यूट्यूब को एमपी 3 में बदलने के लिए सबसे अच्छी वेबसाइट
उदाहरण के लिए: ऐसे मामले में जहां उपयोगकर्ता की भागीदारी मौजूद है, रियल ब्राउज़र परीक्षण को चुना जा सकता है। यदि परीक्षण को जल्दी करने के लिए कोई UI प्रस्तुति आवश्यकताएं नहीं हैं, तो कोई भी हेडलेस ब्राउज़र परीक्षण के लिए जा सकता है।
अधिक कुशल परीक्षण दोनों हेडलेस के साथ-साथ रियल ब्राउज़र का एक संयोजन होगा। जिससे व्यक्तिगत रूप से प्रत्येक की सीमाओं पर काबू पाया जा सके।
आशा है कि इस ट्यूटोरियल ने हेडलेस ब्राउज़र और हेडलेस ब्राउज़र परीक्षण पर आपके सभी प्रश्नों को स्पष्ट किया होगा !!
अनुशंसित पाठ
- Geb Tutorial - Geb टूल का उपयोग करके ब्राउज़र ऑटोमेशन परीक्षण
- तोता क्यूए ट्यूटोरियल: क्रॉस ब्राउज़र फंक्शनल टेस्टिंग टूल रिव्यू
- ब्राउज़रस्टैक ट्यूटोरियल: ऐप और ब्राउज़र परीक्षण प्लेटफार्म (गाइड)
- IE परीक्षक ट्यूटोरियल - इंटरनेट एक्सप्लोरर ब्राउज़र परीक्षण ऑनलाइन
- ट्राइकेंटिस फ्लड एलिमेंट का उपयोग करके वास्तविक ब्राउज़रों के साथ लोड परीक्षण
- सेलेनियम ग्रिड ट्यूटोरियल: सेटअप और क्रॉस ब्राउज़र परीक्षण का उदाहरण
- शीर्ष 10 क्रॉस ब्राउज़र परीक्षण उपकरण 2021 में (नवीनतम रैंकिंग)
- क्रॉस ब्राउजर टेस्टिंग क्या है और इसे कैसे करें: एक पूर्ण गाइड