रनर
WebdriverIO में एक रनर ऑर्केस्ट्रेट करता है कि टेस्टरनर का उपयोग करते समय परीक्षण कैसे और कहाँ चलाए जा रहे हैं। WebdriverIO वर्तमान में दो अलग-अलग प्रकार के रनर का समर्थन करता है: स्थानीय और ब्राउज़र रनर।
स्थानीय धावक
लोकल रनर आपके ढांचे (जैसे मोचा, जैस्मीन या ककड़ी) को कार्यकर्ता के भीतर एक प्रक्रिया शुरू करता है और आपकी सभी परीक्षण फ़ाइल ों को आपके Node.js वातावरण में चलाता है। अधिकतम संगामिति के लिए अनुमति देने वाली क्षमता के अनुसार प्रत्येक परीक्षण फ़ाइल को एक अलग कार्यकर्ता प्रक्रिया में चलाया जा रहा है। प्रत्येक कार्यकर्ता प्रक्रिया एकल ब्राउज़र उदाहरण का उपयोग करती है और इसलिए अधिकतम अलगाव की अनुमति देते हुए अपना स्वयं का ब्राउज़र सत्र चलाती है।
यह देखते हुए कि प्रत्येक परीक्षण अपनी पृथक प्रक्रिया में चलाया जाता है, परीक्षण फ़ाइलों में डेटा साझा करना संभव नहीं है। इसके आसपास काम करने के दो तरीके हैं:
- सभी कर्मचारियों के बीच डेटा साझा करने के लिए
@wdio/shared-store-service
का उपयोग करें - समूह कल्पना फ़ाइलें ( आयोजन टेस्ट सूटमें और पढ़ें)
यदि wdio.conf.js
में और कुछ भी परिभाषित नहीं किया गया है तो स्थानीय रनर WebdriverIO में डिफ़ॉल्ट रनर है।
इनस्टॉल
स्थानीय धावक का उपयोग करने के लिए आप इसे इसके माध्यम से स्थापित कर सकते हैं:
npm install --save-dev @wdio/local-runner
सेटअप
स्थानीय धावक WebdriverIO में डिफ़ॉल ्ट धावक है इसलिए इसे आपके wdio.conf.js
में परिभाषित करने की कोई आवश्यकता नहीं है। यदि आप इसे स्पष्ट रूप से सेट करना चाहते हैं, तो आप इसे निम्नानुसार परिभाषित कर सकते हैं:
// wdio.conf.js
export const {
// ...
runner: 'local',
// ...
}
ब्राउज़र रनर
लोकल रनर के विपरीत ब्राउज़र रनर ब्राउज़र के भीतर फ्रेमवर्क को आरंभ और निष्पादित करता है। यह आपको JSDOM के बजाय कई अन्य परीक्षण ढाँचों की तरह एक वास्तविक ब्राउज़र में इकाई परीक्षण या घटक परीक्षण चलाने की अनुमत ि देता है।
जबकि JSDOM व्यापक रूप से परीक्षण उद्देश्यों के लिए उपयोग किया जाता है, यह अंत में एक वास्तविक ब्राउज़र नहीं है और न ही आप इसके साथ मोबाइल वातावरण का अनुकरण कर सकते हैं। इस रनर के साथ WebdriverIO आपको ब्राउज़र में अपने परीक्षण आसानी से चलाने और पृष्ठ पर प्रदान किए गए तत्वों के साथ इंटरैक्ट करने के लिए WebDriver कमांड का उपयोग करने में सक्षम बनाता है।
यहाँ JSDOM बनाम WebdriverIOs ब्राउज़र रनर के भीतर चल रहे परीक्षणों का अवलोकन है
जेएसडीओएम | WebdriverIO ब्राउज़र रनर | |
---|---|---|
1. | वेब मानकों, विशेष रूप से WHATWG DOM और HTML मानकों के पुन: कार्यान्वयन का उपयोग करके Node.js के भीतर अपने परीक्षण चलाता है | आपके परीक्षण को एक वास्तविक ब्राउज़र में निष्पादित करता है और आपके उपयोगकर्ताओं द्वारा उपयोग किए जाने वाले वातावरण में कोड चलाता है |
2. | घटकों के साथ सहभागिता केवल जावास्क्रिप्ट के माध्यम से नकल की जा सकती है | आप वेबड्राइवर प्रोटोकॉल के माध्यम से तत्वों के साथ इंटरैक्ट करने के लिए WebdriverIO API का उपयोग कर सकते हैं |
3. | कैनवास समर्थन के लिए अतिरिक्त निर्भरताओं की आवश्यकता होती है और की सीमाएँ होती हैं | आपके पास वास्तविक कैनवस एपीआईतक पहुंच है |
4. | JSDOM में कुछ चेतावनियाँ और असमर्थित वेब API हैं | सभी वेब एपीआई एक वास्तविक ब्राउज़र में टेस्ट रन के रूप में समर्थित हैं |
5. | ब्राउज़र में त्रुटियों का पता लगाना असंभव है | मोबाइल ब्राउज़र सहित सभी ब्राउज़रों के लिए समर्थन |
6. | तत्व छद्म राज्यों के लिए नहीं परीक्षण कर सकते हैं | छद्म राज्यो ं के लिए समर्थन जैसे : hover या : active |
यह रनर आपके परीक्षण कोड को संकलित करने और इसे ब्राउज़र में लोड करने के लिए Vite का उपयोग करता है। यह निम्नलिखित घटक ढांचे के लिए प्रीसेट के साथ आता है:
- React
- Preact
- Vue.js
- Svelte
- SolidJS
- Stencil
प्रत्येक परीक्षण फ़ाइल / परीक्षण फ़ाइल समूह एक पृष्ठ के भीतर चलता है जिसका अर्थ है कि प्रत्येक परीक्षण के बीच पृष्ठ को परीक्षणों के बीच अलगाव की गारंटी देने के लिए पुनः लोड किया जा रहा है।
इनस्टॉल
ब्राउज़र रनर का उपयोग करने के लिए आप इसे इसके माध्यम से इंस्टाल कर सकते हैं:
npm install --save-dev @wdio/browser-runner
सेटअप
ब्राउज़र रनर का उपयोग करने के लिए, आपको अपनी wdio.conf.js
फ़ाइल में runner
गुण परिभाषित करना होगा, उदाहरण के लिए:
// wdio.conf.js
निर्यात कॉन्स्ट कॉन्फ़िगरेशन = {
// ...
runner: 'browser',
// ...
}