सेलेनियम क्या है?
स्क्रेपलेस एजेंट ब्राउज़र समर्थित स्वचालन क्लाइंटों के लिए क्लाउड ब्राउज़र अवसंरचना प्रदान करता है, जिसमें प्रलेखित प्लेइनराइट और पपेटियर कनेक्शन शामिल हैं।
सेलेनियम एक ओपन-सोर्स प्रोजेक्ट है जो ब्राउज़र स्वचालन के लिए उपकरण और पुस्तकालय प्रदान करता है। इसके मुख्य घटकों में प्रोग्रामेटिक ब्राउज़र नियंत्रण के लिए वेबड्राइवर, दूरस्थ और वितरित निष्पादन के लिए ग्रिड, और ब्राउज़र इंटरैक्शन को रिकॉर्ड और विकसित करने के लिए आईडीई शामिल हैं। सेलेनियम को व्यापक रूप से वेब परीक्षण से जोड़ा गया है, लेकिन ब्राउज़र नियंत्रण परत एकल परीक्षण पैटर्न से परे उपयोगी है।
यह प्रोजेक्ट ब्राउज़र को एक अनुकरण HTML पार्सर के साथ प्रतिस्थापित नहीं करता है। वेबड्राइवर अपने स्वचालन इंटरफेस के माध्यम से एक वास्तविक समर्थित ब्राउज़र को चलाता है। आपका परीक्षण कोड क्रियाएँ और जाँचें निर्दिष्ट करता है, जबकि ब्राउज़र एप्लिकेशन लोड करता है। यह पृथक्करण परीक्षणों को लागू करने की अनुमति देता है जैसे कि यह तैनात है इससे पहले कि सेलेनियम को एप्लिकेशन के स्रोत में शामिल किया जाए।
सेलेनियम के घटक कैसे एक साथ फिट होते हैं
सेलेनियम के घटक स्वचालन कार्यप्रवाह के विभिन्न हिस्सों को संबोधित करते हैं। सेलेनियम परियोजना अवलोकन वेबड्राइवर, आईडीई, और ग्रिड में भिन्नता करता है। भिन्नता को समझने से एक टीम केवल उन सुविधाओं को चुनने में मदद मिलती है जिसकी उसे आवश्यकता होती है बजाय इसके कि हर सेलेनियम कार्य को एक वितरित परीक्षण परियोजना के रूप में देखा जाए।
| घटक | प्राथमिक भूमिका | टीम अभी भी जो परिभाषित करती है |
|---|---|---|
| वेबड्राइवर | ब्राउज़र सत्रों को नियंत्रित करें | कार्य तर्क और सत्यापन |
| ग्रिड | दूरस्थ ब्राउज़र सत्र वितरित करें | निष्पादन क्षमता और परीक्षण स्वामित्व |
| आईडीई | इंटरएक्शन रिकॉर्ड और विकसित करें | स्थिर लक्ष्य और स्वीकृति मानदंड |
एक स्थानीय परीक्षण ग्रिड के बिना वेबड्राइवर का उपयोग कर सकता है। एक बड़ा सूट ब्राउज़र सत्रों को अन्य मशीनों या प्लेटफ़ॉर्म संयोजनों पर रखने के लिए ग्रिड का उपयोग कर सकता है। एक रिकॉर्ड की गई इंटरैक्शन एक यात्रा को दस्तावेज़ करने में मदद कर सकती है, लेकिन केवल एक रिकॉर्डिंग यह स्थापित नहीं करती है कि यात्रा सही परिणाम की जाँच करती है या एप्लिकेशन के परिवर्तनों के साथ स्थिर रहती है।
वेबड्राइवर क्या मानकीकरण करता है
वेबड्राइवर ब्राउज़र व्यवहार जैसे नेविगेशन और तत्व इंटरैक्शन के लिए एक दूरस्थ नियंत्रण इंटरफ़ेस मानकीकरण करता है। वेबड्राइवर विनिर्देशन सत्र, कमांड और ब्राउज़र-फेसिंग सेमांटिक्स का वर्णन करता है। भाषा बाइंडिंग डेवलपर्स को परिचित प्रोग्रामिंग इंटरफेस के माध्यम से उन संचालन को व्यक्त करने की अनुमति देती है।
एक सत्र परीक्षण के कमांड को चयनित कॉन्फ़िगरेशन के साथ एक ब्राउज़र इंस्टेंस से जोड़ता है। परीक्षण नेविगेट कर सकता है, तत्वों की स्थिति बता सकता है, और इंटरैक्शन का अनुरोध कर सकता है। परिणाम और त्रुटियाँ स्वचालन इंटरफ़ेस के माध्यम से वापस आती हैं। एक दूरस्थ तैनाती ब्राउज़र को कहीं और ले जाती है लेकिन एक सहमत कमांड प्रोटोकॉल की आवश्यकता को बनाए रखती है।
प्रोटोकॉल का भेद महत्वपूर्ण होता है जब सेवाओं का मूल्यांकन किया जाता है। एक ब्राउज़र एंडपॉइंट जिसे डिबगिंग-प्रोटोकॉल कनेक्शन के रूप में वर्णित किया गया है, स्वचालित रूप से वेबड्राइवर एंडपॉइंट नहीं होता है। एक वेबसोकेट परिवहन अकेला दो प्रोटोकॉल को विनिमेय नहीं बनाता है। एक सर्विस का उपयोग करने से पहले प्रलेखित इंटरफ़ेस और क्लाइंट समर्थन को सत्यापित करें।
एक सेलेनियम परीक्षण एक उपयोगकर्ता यात्रा को कैसे वर्णित करता है
एक सेलेनियम परीक्षण ब्राउज़र इंटरैक्शन को आसपास के परीक्षण कोड और ढांचे द्वारा प्रदान किए गए सत्यापनों के साथ जोड़ता है। क्रियाएँ एक परिदृश्य स्थापित करती हैं; सत्यापन यह निर्धारित करता है कि अवलोकित व्यवहार आवश्यकता से मेल खाता है या नहीं। एक स्वीकृति स्थिति के बिना, एक स्क्रिप्ट सफलतापूर्वक समाप्त हो सकती है जबकि एप्लिकेशन दोष से चूक जाती है।
एक चित्रणात्मक स्टेजिंग लॉगिन परीक्षण के लिए, मान्य परीक्षण प्रमाण-पत्र दर्ज करना और सबमिट बटन दबाना क्रियाएँ हैं। यह सुनिश्चित करना कि अपेक्षित परीक्षण उपयोगकर्ता सही खाता पृष्ठ पर पहुँचता है, परिणाम जाँच है। एक सामान्य सफलता संदेश असंयोग हो सकता है यदि यह किसी अन्य खाते या पहले की क्रिया के लिए प्रकट हो सकता है।
तत्व लक्ष्यों को इंटरैक्शन के उद्देश्य को दर्शाना चाहिए। एक अर्थपूर्ण पहचानकर्ता या लेबल आमतौर पर लेआउट कंटेनरों के माध्यम से लंबे पथ की तुलना में बनाए रखना आसान होता है। जब एक पृष्ठ में दोहराए जाने वाले नियंत्रण होते हैं, तो लक्षित लक्ष्य को प्रासंगिक फॉर्म या अनुभाग तक सीमित करें। अस्पष्टता को एक परीक्षण-डिज़ाइन समस्या के रूप में मानें बजाय इसके कि एक मनमाना मेल खाने वाले तत्व को चुनें।
समन्वय एक परीक्षण डिजाइन समस्या क्यों है
समन्वय एक सेलेनियम कमांड को उस एप्लिकेशन स्थिति के साथ संरेखित करता है जिसमें उसे चलाना चाहिए। नेविगेशन की पूर्णता यह सुनिश्चित नहीं करती है कि हर गतिशील रूप से निर्मित तत्व उपलब्ध है। एक स्क्रिप्ट जो आवश्यक स्थिति के अस्तित्व से पहले कार्य करती है, वह सही तरीके से व्यवहार कर रहे एप्लिकेशन के होने पर भी विफल हो सकती है।
अर्थपूर्ण परिस्थितियों के चारों ओर प्रतीक्षा निर्धारित करें। एक परिणाम पैनल को एक चयनित खाते या पूर्ण स्थिति को दिखाने की आवश्यकता हो सकती है, केवल दस्तावेज़ में कहीं मौजूद नहीं। एक तत्व उपस्थित हो सकता है लेकिन छिपा हुआ, और एक दृश्यमान नियंत्रण वर्तमान चरण के लिए अनुपयुक्त हो सकता है। आवश्यक स्थिति को कार्य के अगले मान्य संक्रमण का वर्णन करना चाहिए।
लंबी फिक्स्ड नींद इस तर्क को अस्पष्ट करती है। वे एक अनुमानित अवधि को एन्कोड करते हैं बजाय इसके कि एक अवलोकित स्थिति को पहचानें और दोनों धीमी और तेज़ वातावरण को इंटरप्रेट करना कठिन बना सकते हैं। एक सीमित स्थिति स्थापित करें और एक विफलता रिपोर्ट को उस स्थिति की पहचान करने दें जो गायब थी। इससे टीम को एप्लिकेशन के बारे में सबूत मिलता है बजाय इसके कि एक रहस्यमय समय संबंधी लक्षण मिले।
ग्रिड दूरस्थ निष्पादन में क्या जोड़ता है
सेलेनियम ग्रिड सत्रों को दूरस्थ निष्पादन वातावरण में रूट करता है ताकि एक सूट विभिन्न मशीनों और ब्राउज़र कॉन्फ़िगरेशन का उपयोग कर सके। वितरण उपलब्ध निष्पादन क्षमता को बढ़ा सकता है, लेकिन यह संसाधन शेड्यूलिंग और साझा राज्य के मुद्दों को भी पेश करता है। एक वितरित सूट को अभी भी परीक्षणों की आवश्यकता होती है जो स्वतंत्र रूप से चल सकते हैं जहां स्वतंत्रता की अपेक्षा की जाती है।
समानांतर परीक्षण सर्वर-साइड डेटा के माध्यम से संघर्ष कर सकते हैं भले ही उनके ब्राउज़र अलग हों। एक ही परीक्षण खाता या संसाधन को संपादित करने वाले दो सत्र एक-दूसरे के अनुमान को अमान्य कर सकते हैं। उपयुक्त डेटा स्वामित्व के अनुसार परिदृश्यों का परिचय दें, या यदि समवर्ती प्रदर्शन ही परीक्षण के तहत व्यवहार है तो जानबूझकर साझा संचालन का समन्वय करें।
क्षमता योजना को कार्यभार के ब्राउज़र और मशीन आवश्यकताओं का उपयोग करना चाहिए। एक पृष्ठ जिसमें भारी रेंडरिंग कार्य होता है, वह एक छोटे फॉर्म परीक्षण की तुलना में एक मेज़बान पर विभिन्न मांगें डाल सकता है। प्रतिनिधि परिदृश्यों के लिए पूर्णता और संसाधन उपयोग को मापें। केवल अनुरोधित समवर्ती सत्रों की संख्या बढ़ाने से यह साबित नहीं होता है कि बुनियादी ढांचा उन्हें अच्छे से निष्पादित कर सकता है।
WebDriver BiDi कहाँ फिट होता है
WebDriver BiDi एक द्विदिश स्वचालन प्रोटोकॉल को परिभाषित करता है जो आदेशों और ब्राउज़र घटनाओं को एक लगातार कनेक्शन के माध्यम से प्रवाहित करने की अनुमति देता है। WebDriver BiDi विशेषण यह इवेंट-उन्मुख मॉडल का कवर करता है। ब्राउज़र इवेंट्स एक नियंत्रक को गतिविधियों का अवलोकन करने में मदद कर सकते हैं बिना हर अवलोकन को एक अलग एकतरफा आदेश में कम किए।
प्रोटोकॉल उपलब्धता और फीचर समर्थन को वास्तविक ब्राउज़र, क्लाइन्ट संस्करण, और रिमोट सेवा के लिए सत्यापित किया जाना चाहिए। एक मानक के अस्तित्व से यह साबित नहीं होता कि प्रत्येक कार्यान्वयन हर संचालन को उजागर करता है। एक परीक्षण जो किसी विशेष घटना पर निर्भर करता है, उसे अपने तैनात वातावरण में उस घटना के लिए एक संगतता जांच की आवश्यकता होती है।
प्रोटोकॉल विकास को परीक्षण के उद्देश्य से अलग करें। यदि आवश्यकता है कि उपयोगकर्ता एक कार्यप्रवाह पूरा कर सके, तो इसका अंतिम आवेदन स्थिति स्वीकृति मानदंड बनी रहती है। अतिरिक्त नेटवर्क या कंसोल प्रमाण किसी विफलता को स्पष्ट कर सकते हैं, लेकिन इसे परीक्षण किए जा रहे उपयोगकर्ता-दृश्यमान परिणाम को चुपचाप प्रतिस्थापित नहीं करना चाहिए।
टीम के लिए सेलेनियम चुनना
Selenium एक उचित विकल्प है जब एक टीम को ब्राउज़र स्वचालन की आवश्यकता होती है जो उसके समर्थित भाषाओं, मौजूदा परीक्षण अवसंरचना, और ब्राउज़र आवश्यकताओं के साथ मेल खाता हो। उन आवश्यकताओं का सीधे मूल्यांकन करें। किसी भी रूपरेखा का चयन केवल सामान्य रैंकिंग या अनधिकृत गति तुलना से करने से बचें।
एक मौजूदा सूट में इसके फ़िक्स्चर और आश्वासन में महत्वपूर्ण डोमेन ज्ञान हो सकता है। ब्राउज़र नियंत्रण पुस्तकालय को बदलने से स्वचालित रूप से उस ज्ञान में सुधार नहीं होता है। पहले वास्तविक समस्या की पहचान करें: परीक्षण डेटा टकराव, अस्पष्ट प्रतीक्षा, अनुपलब्ध ब्राउज़र, या संचालन रखरखाव। समाधान एक पूर्ण माइग्रेशन की तुलना में एक संकीर्ण परिवर्तन हो सकता है।
संबंधित चर्चा का Selenium-आधारित वेब डेटा संग्रह एक इंटरफेस रिग्रेशन टेस्ट से परे उपयोग की खोज करता है। निष्कर्ष की सहीता को परीक्षण की सहीता से अलग रखें: एक स्क्रिप्ट जो एक पृष्ठ को पढ़ सकती है, उसे पूर्ण खोज, गायब क्षेत्रों और स्रोत संदर्भ के लिए नियमों की अभी भी आवश्यकता होती है।
सिलेनियम के साथ एक क्लाउड ब्राउज़र का मूल्यांकन करना
एक क्लाउड ब्राउज़र को एक अलग निष्पादन विकल्प के रूप में मूल्यांकित किया जा सकता है, लेकिन इसे एक Selenium रनटाइम के प्रतिस्थापन के रूप में कॉल करने से पहले संगतता स्थापित करनी चाहिए। स्क्रेपलेस एजेंट ब्राउज़र दस्तावेज़ों ने इसके नियंत्रण कनेक्शन के लिए ब्राउज़र का समर्थन किया ब्राउज़र अवसंरचना अवलोकन.
दस्तावेज़ किए गए Playwright और Puppeteer कनेक्शन Selenium Grid अंत बिंदु के लिए प्रमाण नहीं हैं। यदि एक कार्यप्रवाह किसी अन्य समर्थित क्लाइंट पर जाता है, तो पोर्ट की गई इंटरैक्शंस और आसर्ट्स का स्पष्ट रूप से मूल्यांकन करें। तुलना करें वर्तमान सेवा मूल्य निर्धारण केवल वास्तुकला की पुष्टि करने के बाद आवश्यक कार्य निष्पादित किया जा सकता है।
निष्कर्ष
Selenium एक ब्राउज़र स्वचालन परियोजना है जिसमें नियंत्रण, रिकॉर्डिंग और वितरित निष्पादन के लिए विशिष्ट उपकरण होते हैं। प्रभावी उपयोग महत्वपूर्ण आश्वासनों, स्पष्ट समन्वय और सत्यापित वातावरण समर्थन पर निर्भर करता है। ब्राउज़र यात्रा और इसके स्वीकृति मानदंड के साथ शुरू करें, फिर उन पर निर्भर करने वाले Selenium घटकों और तैनाती का चयन करें।
अपने ब्राउज़र कार्यप्रवाह को लागू करें
एजेंट ब्राउज़र के प्रलेखित क्लाइंट्स का मूल्यांकन करें ताकि एक उपयुक्त ब्राउज़र वर्कफ़्लो मिल सके।
आज ही साइन अप करें और प्राप्त करें $5 में मुफ्त क्रेडिट — कोई क्रेडिट कार्ड की आवश्यकता नहीं.
अपने $5 क्रेडिट का दावा करें →अक्सर पूछे जाने वाले प्रश्न
क्या सलेनियम एक ब्राउज़र है या एक प्रोग्रामिंग भाषा?
Selenium न तो एक ब्राउज़र है और न ही एक प्रोग्रामिंग भाषा। यह एक प्रोजेक्ट है जो ब्राउज़र ऑटोमेशन उपकरण और भाषा बाइंडिंग प्रदान करता है। परीक्षण एक समर्थित भाषा का उपयोग करके लिखे जाते हैं और एक समर्थित ब्राउज़र के खिलाफ निष्पादित होते हैं।
क्या सभी Selenium परीक्षणों के लिए Grid की आवश्यकता है?
Selenium परीक्षणों को सभी ग्रिड की आवश्यकता नहीं होती है। एक स्थानीय WebDriver सत्र एक ही मशीन पर एक ब्राउज़र चला सकता है। ग्रिड तब उपयोगी हो जाता है जब दूरस्थ वितरण या कई निष्पादन वातावरण परीक्षण आवश्यकता का हिस्सा होते हैं।
क्या एक परीक्षण का रिकॉर्ड करना यह साबित करता है कि यह विश्वसनीय है?
रिकॉर्डिंग एक परीक्षण एक इंटरएक्शन अनुक्रम को कैप्चर करता है, लेकिन विश्वसनीयता के लिए स्थिर लक्ष्य, नियंत्रित डेटा, समन्वय और महत्वपूर्ण दावे भी आवश्यक हैं। समीक्षा करें कि रिकॉर्डिंग क्या जांचती है और कैसे यह तब व्यवहार करती है जब पृष्ठ मूल सत्र से भिन्न होता है।
क्या सेलेनियम किसी भी ब्राउज़र वेब्सॉकेट से कनेक्ट कर सकता है?
Selenium एक मनमानी ब्राउज़र WebSocket का उपयोग नहीं कर सकता क्योंकि यह एक नेटवर्क कनेक्शन है। एंडपॉइंट को अपेक्षित क्लाइंट ऑपरेशन द्वारा समर्थित प्रोटोकॉल से बात करनी चाहिए। CDP समकक्षता मानने के बजाय WebDriver या संबंधित BiDi संगतता की पुष्टि करें।