प्रोटोकॉल कमांड
WebdriverIO एक ऑटोमेशन फ्रेमवर्क है जो एक रिमोट एजेंट को नियंत्रित करने के लिए विभिन्न ऑटोमेशन प्रोटोकॉल पर निर्भर करता है, उदाहरण के लिए एक ब्राउज़र, मोबाइल डिवाइस या टेलीविजन के लिए। रिमोट डिवाइस के आधार पर विभिन्न प्रोटोकॉल चलन में आते हैं। ये आदेश दूरस्थ सर्वर (जैसे ब्राउज़र ड्राइवर) द्वारा सत्र की जानकारी के आधार पर ब्राउज़र या तत्व ऑब्जेक्ट को असाइन किए जाते हैं।
आंतरिक रूप से WebdriverIO रिमोट एजेंट के साथ लगभग सभी इंटरैक्शन के लिए प्रोटोकॉल कमांड का उपयोग करता है। हालाँकि ब्राउज़र या एलिमेंट ऑब्जेक्ट को सौंपे गए अतिरिक्त कमांड WebdriverIO के उपयोग को सरल करते हैं, उदाहरण के ल िए प्रोटोकॉल कमांड का उपयोग करके किसी तत्व का टेक्स्ट प्राप्त करना इस तरह दिखेगा:
const searchInput = await browser.findElement('css selector', '#lst-ib')
await client.getElementText(searchInput['element-6066-11e4-a52e-4f735466cecf'])
ब्राउज़र या एलिमेंट ऑब्जेक्ट के सुविधाजनक कमांड का उपयोग करके इसे कम किया जा सकता है:
$('#lst-ib').getText()
निम्नलिखित खंड प्रत्येक व्यक्तिगत प्रोटोकॉल की व्याख्या करता है।
वेबड्राइवर प्रोटोकॉल
वेबड्राइवर प्रोटोकॉल ब्राउज़र को स्वचालित करने के लिए एक वेब मानक है। कुछ अन्य E2E उपकरणों के विपरीत यह गारंटी देता है कि स्वचालन वास्तविक ब्राउज़र पर किया जा सकता है जो आपके उपयोगकर्ताओं द्वारा उपयोग किया जाता है, जैसे फ़ायरफ़ॉक्स, सफारी और क्रोम और क्रोमि यम आधारित ब्राउज़र जैसे एज, और न केवल ब्राउज़र इंजन पर, जैसे वेबकिट, जो बहुत अलग।
Chrome DevTools जैसे डिबगिंग प्रोटोकॉल के विरोध में WebDriver प्रोटोकॉल का उपयोग करने का लाभ यह है कि आपके पास कमांड का एक विशिष्ट सेट होता है जो ब्राउज़र के साथ उसी तरह से इंटरैक्ट करने की अनुमति देता है जो सभी ब्राउज़र में फ़्लैकनेस की संभावना को कम करता है। इसके अलावा सॉस लैब्स, ब्राउज़रस्टैक और अन्यजैसे क्लाउड विक्रेताओं का उपयोग करके बड़े पैमाने पर मापनीयता के लिए इस प्रोटोकॉल क्षमताओं की पेशकश करता है।
वेबड्राइवर बीड़ी प्रोटोकॉल
वेबड्राइवर बीड़ी प्रोटोकॉल प्रोटोकॉल की दूसरी पीढ़ी है और वर्तमान में अधिकांश ब्राउज़र विक्रेताओं द्वारा इस पर काम किया जा रहा है। अपने पूर्ववर्ती की तुलना में प्रोटोकॉल फ्रेमवर्क और रिमोट डिवाइस के बीच द्वि-दिशात्मक संचार (इसलिए "बीड़ी") का समर्थन करता है। यह ब्राउज़र में आधुनिक वेब अनुप्रयोगों को बेहतर ढंग से स्वचालित करने के लिए बेहतर ब्राउज़र आत्मनिरीक्षण के लिए अतिरिक्त आदिम भी प्रस्तुत करता है।
इस प्रोटोकॉल को देखते हुए वर्तमान में कार्य प्रगति पर है और अधिक सुविधाएँ समय के साथ जोड़ी जाएँगी और ब्राउज़र द्वारा समर्थित होंगी। यदि आप WebdriverIOs के सुविधाजनक आदेशों का उपयोग करते हैं तो आपके लिए कुछ भी नहीं बदलेगा। WebdriverIO ब्राउज़र में उपलब्ध और समर्थित होते ही इन नई प्रोटोकॉल क्षमताओं का उपयोग करेगा।
Appium
Appium प्रोजेक्ट मोबाइल, डेस्कटॉप और अन्य सभी प्रकार के IoT उपकरणों को स्वचालित करने की क्षमता प्रदान करता है। जबकि वेबड्राइवर ब्राउज़र और वेब पर ध्यान केंद्रित करता है, एपियम की दृष्टि समान दृष्टिकोण का उपयोग करना है लेकिन किसी भी मनमाने उपकरण के लिए। वेबड्राइवर द्वारा परिभाषित आदेशों के अतिरिक्त, इसमें विशेष आदेश होते हैं जो अक्सर स्वचालित होने वाले रिमोट डिवाइस के लिए विशिष्ट होते हैं। मोबाइल परीक्षण परिदृश्यों के लिए यह आदर्श है जब आप Android और iOS दोनों अनुप्रयोगों के लिए समान परीक्षण लिखना और चलाना चाहते हैं।
According to Appium documentation it was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets:
- इसे स्वचालित करने के लिए आपको अपने ऐप को फिर से कंपाइल या किसी भी तरह से संशोधित नहीं करना चाहिए।
- अपने परीक्षण लिखने और चलाने के लिए आपको किसी विशिष्ट भाषा या ढांचे में बंद नहीं किया जाना चाहिए।
- जब ऑटोमेशन एपीआई की बात आती है तो एक मोबाइल ऑटोमेशन फ्रेमवर्क को व्हील को फिर से शुरू नहीं करना चाहिए।
- एक मोबाइल ऑटोमेशन ढांचा खुला स्रोत होना चाहिए, आत्मा और अभ्यास के साथ-साथ नाम में भी!
Chromium
क्रोमियम प्रोटोकॉल वेबड्राइवर प्रोटोकॉल के शीर्ष पर आदेशों का एक सुपर सेट प्रदान करता है जो केवल क्रोमड्राइवरके माध्यम से स्वचालित सत्र चलाते समय समर्थित होता है।
Firefox
फ़ायरफ़ॉक्स प्रोटोकॉल वेबड्राइवर प्रोटोकॉल के शीर्ष पर आदेशों का एक सुपर सेट प्रदान करता है जो केवल गेकोड्राइवरके माध्यम से स्वचालित सत्र चलाने पर समर्थित होता है।
Sauce Labs
सॉस लैब्स प्रोटोकॉल वेबड्राइवर प्रोटोकॉल के शीर्ष पर आदेशों का एक सुपर सेट प्रदान करता है जो सॉस लैब्स क्लाउड का उपयोग करके स्वचालित सत्र चलाने पर ही समर्थित होता है।
Selenium Standalone
सेलेनियम स्टैंडअलोन प्रोटोकॉल वेबड्राइवर प्रोटोकॉल के शीर्ष पर आदेशों का एक सुपर सेट प्रदान करता है जो केवल सेलेनियम ग्रिड का उपयोग करके स्वचालित सत्र चलाते समय समर्थित होता है।
JSON Wire Protocol
JSON वायर प्रोटोकॉल वेबड्राइवर प्रोटोकॉल का पूर्व-पूर्ववर्ती है और आज ____ दिया गया है। जबकि कुछ कमांड अभी भी कुछ वातावरणों में समर्थित हो सकते हैं, इसकी किसी भी कमांड का उपयोग करने की अनुशंसा नहीं की जाती है।
Mobile JSON Wire Protocol
मोबाइल JSON वायर प्रोटोकॉल JSON वायर प्रोटोकॉल के शीर्ष पर मोबाइल कमांड का सुपर सेट है। यह देखते हुए कि मोबाइल JSON वायर प्रोटोकॉल को पदावनत कर दिया गया है, को __पदावनत__भी मिला है। एपियम अभी भी इसके कुछ आदेशों का समर्थन कर सकता है लेकिन उनका उपयोग करने की अनुशंसा नहीं की जाती है।