सेटअप प्रकार
WebdriverIO का उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। यह WebDriver प्रोटोकॉल API को लागू करता है और स्वचालित तरीके से एक ब्राउज़र चला सकता है। फ्रेमवर्क को किसी भी वातावरण में और किसी भी प्रकार के कार्य के लिए काम करने के लिए डिज़ाइन किया गया है। यह किसी भी तीसरे पक्ष के फ्रेमवर्क से स्वतंत्र है और चलाने के लिए केवल Node.js की आवश्यकता होती है।
प्रोटोकॉल बाइंडिंग्स
WebDriver और अन्य ऑटोमेशन प्रोटोकॉल के साथ बुनियादी इंटरैक्शन के लिए WebdriverIO अपने स्वयं के प्रोटोकॉल बाइंडिंग्स का उपयोग करता है जो webdriver
NPM पैकेज पर आधारित हैं:
- WebDriver
- Chrome DevTools
loading...
loading...
सभी प्रोटोकॉल कमांड्स ऑटोमेशन ड्राइवर से कच्ची प्रतिक्रिया लौटाते हैं। यह पैकेज बहुत हल्का है और प्रोटोकॉल उपयोग के साथ इंटरैक्शन को सरल बनाने के लिए ऑटो-वेट्स जैसी कोई स्मार्ट लॉजिक नहीं है।
इंस्टेंस पर लागू प्रोटोकॉल कमांड्स ड्राइवर की प्रारंभिक सत्र प्रतिक्रिया पर निर्भर करते हैं। उदाहरण के लिए, यदि प्रतिक्रिया इंगित करती है कि मोबाइल सत्र शुरू किया गया था, तो पैकेज इंस्टेंस प्रोटोटाइप पर सभी Appium और मोबाइल JSON वायर प्रोटोकॉल कमांड्स लागू करता है।
आप जब devtools
NPM पैकेज को इम्पोर्ट करते हैं तो Chrome DevTools प्रोटोकॉल का उपयोग करके समान कमांड्स (मोबाइल वाले को छोड़कर) चला सकते हैं। इसका इंटरफेस webdriver
पैकेज के समान है लेकिन अपना ऑटोमेशन Puppeteer पर आधारित करता है।
इन पैकेज इंटरफेस के बारे में अधिक जानकारी के लिए, मॉड्यूल्स API देखें।
स्टैंडअलोन मोड
WebDriver प्रोटोकॉल के साथ इंटरैक्शन को सरल बनाने के लिए, webdriverio
पैकेज प्रोटोकॉल के ऊपर विभिन्न कमांड्स (जैसे dragAndDrop
कमांड) और कोर कॉन्सेप्ट्स जैसे स्मार्ट सिलेक्टर्स या ऑटो-वेट्स को लागू करता है। ऊपर दिए गए उदाहरण को इस प्रकार सरल बनाया जा सकता है:
loading...
स्टैंडअलोन मोड में WebdriverIO का उपयोग करने से आपको सभी प्रोटोकॉल कमांड्स तक पहुंच मिलती है, लेकिन यह ब्राउज़र के साथ उच्च स्तरीय इंटरैक्शन प्रदान करने वाले अतिरिक्त कमांड्स का एक सुपर सेट भी प्रदान करता है। यह आपको अपने स्वयं के (टेस्ट) प्रोजेक्ट में इस ऑटोमेशन टूल को एकीकृत करने की अनुमति देता है ताकि एक नई ऑटोमेशन लाइब्रेरी बनाई जा सके। लोकप्रिय उदाहरणों में Oxygen या CodeceptJS शामिल हैं। आप सामग्री के लिए वेब को स्क्रैप करने के लिए सादे Node स्क्रिप्ट भी लिख सकते हैं (या कुछ भी अन्य जिसके लिए एक चलते ब्राउज़र की आवश्यकता होती है)।
यदि कोई विशिष्ट विकल्प सेट नहीं किए गए हैं, तो WebdriverIO हमेशा आपकी क्षमताओं में browserName
गुण से मेल खाने वाले ब्राउज़र ड्राइवर को डाउनलोड और सेटअप करने का प्रयास करेगा। Chrome और Firefox के मामले में, यह उन्हें भी स्थापित कर सकता है, यह इस बात पर निर्भर करता है कि क्या यह मशीन पर संबंधित ब्राउज़र ढूंढ सकता है।
webdriverio
पैकेज इंटरफेस के बारे में अधिक जानकारी के लिए, मॉड्यूल्स API देखें।
WDIO टेस्टरनर
हालांकि, WebdriverIO का मुख्य उद्देश्य बड़े पैमाने पर एंड-टू-एंड टेस्टिंग है। इसलिए हमने एक टेस्ट रनर लागू किया है जो आपको एक विश्वसनीय टेस्ट सूट बनाने में मदद करता है जिसे पढ़ना और बनाए रखना आसान है।
टेस्ट रनर कई समस्याओं का ध्यान रखता है जो सादे ऑटोमेशन लाइब्रेरीज के साथ काम करते समय आम हैं। एक तो, यह आपके टेस्ट रन को व्यवस्थित करता है और टेस्ट स्पेक्स को विभाजित करता है ताकि आपके टेस्ट अधिकतम समवर्तिता के साथ निष्पादित किए जा सकें। यह सत्र प्रबंधन भी संभालता है और आपको समस्याओं का निवारण करने और अपने टेस्ट में त्रुटियों को खोजने में मदद करने के लिए बहुत सारी सुविधाएँ प्रदान करता है।
यहां ऊपर से वही उदाहरण है, एक टेस्ट स्पेक के रूप में लिखा गया और WDIO द्वारा निष्पादित किया गया:
loading...
टेस्ट रनर Mocha, Jasmine, या Cucumber जैसे लोकप्रिय टेस्ट फ्रेमवर्क का एक अब्स्ट्रैक्शन है। WDIO टेस्ट रनर का उपयोग करके अपने टेस्ट चलाने के लिए, अधिक जानकारी के लिए आरंभ करना अनुभाग देखें।
@wdio/cli
टेस्टरनर पैकेज इंटरफेस के बारे में अधिक जानकारी के लिए, मॉड्यूल्स API देखें।