मुख्य सामग्री पर जाएं

v5 से v6 तक

यह ट्यूटोरियल उन लोगों के लिए है जो अभी भी WebdriverIO के v5 का उपयोग कर रहे हैं और v6 या WebdriverIO के नवीनतम संस्करण में माइग्रेट करना चाहते हैं। जैसा कि हमारे रिलीज़ ब्लॉग पोस्ट में उल्लेख किया गया है, इस संस्करण अपग्रेड के लिए परिवर्तनों को निम्नानुसार संक्षेपित किया जा सकता है:

  • हमने कुछ कमांड्स के पैरामीटर्स को समेकित किया है (जैसे newWindow, react$, react$$, waitUntil, dragAndDrop, moveTo, waitForDisplayed, waitForEnabled, waitForExist) और सभी वैकल्पिक पैरामीटर्स को एक एकल ऑब्जेक्ट में स्थानांतरित किया है, उदाहरण के लिए:

    // v5
    browser.newWindow(
    'https://webdriver.io',
    'WebdriverIO window',
    'width=420,height=230,resizable,scrollbars=yes,status=1'
    )
    // v6
    browser.newWindow('https://webdriver.io', {
    windowName: 'WebdriverIO window',
    windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1'
    })
  • सेवाओं के लिए कॉन्फ़िगरेशन सेवा सूची में स्थानांतरित किया गया, उदाहरण के लिए:

    // v5
    exports.config = {
    services: ['sauce'],
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' },
    }
    // v6
    exports.config = {
    services: [['sauce', {
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' }
    }]],
    }
  • सरलीकरण उद्देश्यों के लिए कुछ सेवा विकल्पों का नाम बदला गया

  • हमने Chrome WebDriver सत्रों के लिए launchApp कमांड का नाम बदलकर launchChromeApp कर दिया है

जानकारी

यदि आप WebdriverIO v4 या उससे नीचे का उपयोग कर रहे हैं, तो कृपया पहले v5 में अपग्रेड करें।

हालांकि हम इसके लिए पूरी तरह से स्वचालित प्रक्रिया रखना चाहते हैं, वास्तविकता अलग दिखती है। हर किसी का सेटअप अलग होता है। प्रत्येक चरण को मार्गदर्शन के रूप में देखा जाना चाहिए और कम से कम चरण-दर-चरण निर्देश के रूप में। यदि आपको माइग्रेशन के साथ समस्याएं हैं, तो हमसे संपर्क करने में संकोच न करें।

सेटअप

अन्य माइग्रेशन के समान, हम WebdriverIO codemod का उपयोग कर सकते हैं। codemod इंस्टॉल करने के लिए, चलाएं:

npm install jscodeshift @wdio/codemod

WebdriverIO डिपेंडेंसीज अपग्रेड करें

यह देखते हुए कि सभी WebdriverIO संस्करण एक-दूसरे से जुड़े हुए हैं, हमेशा एक विशिष्ट टैग में अपग्रेड करना सबसे अच्छा है, जैसे 6.12.0। यदि आप v5 से सीधे v7 में अपग्रेड करने का निर्णय लेते हैं तो आप टैग छोड़ सकते हैं और सभी पैकेज के नवीनतम संस्करण इंस्टॉल कर सकते हैं। ऐसा करने के लिए हम अपने package.json से सभी WebdriverIO संबंधित डिपेंडेंसीज को कॉपी करते हैं और उन्हें फिर से इंस्टॉल करते हैं:

npm i --save-dev @wdio/allure-reporter@6 @wdio/cli@6 @wdio/cucumber-framework@6 @wdio/local-runner@6 @wdio/spec-reporter@6 @wdio/sync@6 wdio-chromedriver-service@6 webdriverio@6

आमतौर पर WebdriverIO डिपेंडेंसीज डेव डिपेंडेंसीज का हिस्सा होती हैं, हालांकि आपके प्रोजेक्ट के आधार पर यह अलग हो सकता है। इसके बाद आपका package.json और package-lock.json अपडेट हो जाना चाहिए। नोट: ये उदाहरण डिपेंडेंसीज हैं, आपकी अलग हो सकती हैं। नवीनतम v6 संस्करण का पता लगाने के लिए, उदाहरण के लिए:

npm show webdriverio versions

सभी कोर WebdriverIO पैकेज के लिए उपलब्ध नवीनतम संस्करण 6 इंस्टॉल करने का प्रयास करें। कम्युनिटी पैकेज के लिए यह पैकेज से पैकेज के लिए अलग हो सकता है। यहां हम यह जानकारी प्राप्त करने के लिए चेंजलॉग की जांच करने की सलाह देते हैं कि कौन सा संस्करण अभी भी v6 के साथ संगत है।

कॉन्फिग फाइल को ट्रांसफॉर्म करें

एक अच्छा पहला कदम कॉन्फिग फाइल से शुरू करना है। सभी ब्रेकिंग चेंजेस को कोडमोड का उपयोग करके पूरी तरह से स्वचालित रूप से हल किया जा सकता है:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./wdio.conf.js
सावधानी

कोडमोड अभी तक टाइपस्क्रिप्ट प्रोजेक्ट्स का समर्थन नहीं करता है। देखें @webdriverio/codemod#10। हम जल्द ही इसके लिए समर्थन लागू करने पर काम कर रहे हैं। यदि आप टाइपस्क्रिप्ट का उपयोग कर रहे हैं तो कृपया शामिल हों!

स्पेक फाइल्स और पेज ऑब्जेक्ट्स अपडेट करें

सभी कमांड परिवर्तनों को अपडेट करने के लिए, अपनी सभी e2e फाइलों पर कोडमोड चलाएं जिनमें WebdriverIO कमांड हैं, उदाहरण के लिए:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./e2e/*

बस इतना ही! कोई और परिवर्तन आवश्यक नहीं 🎉

निष्कर्ष

हम आशा करते हैं कि यह ट्यूटोरियल आपको WebdriverIO v6 के लिए माइग्रेशन प्रक्रिया के माध्यम से थोड़ा मार्गदर्शन करेगा। हम दृढ़ता से नवीनतम संस्करण में अपग्रेड जारी रखने की सिफारिश करते हैं क्योंकि लगभग कोई ब्रेकिंग चेंजेस न होने के कारण v7 में अपडेट करना मामूली है। कृपया v7 में अपग्रेड करने के लिए माइग्रेशन गाइड देखें।

समुदाय विभिन्न संगठनों में विभिन्न टीमों के साथ परीक्षण करते समय कोडमोड को सुधारना जारी रखता है। यदि आपके पास प्रतिक्रिया है तो एक मुद्दा उठाने में संकोच न करें या यदि आप माइग्रेशन प्रक्रिया के दौरान संघर्ष करते हैं तो एक चर्चा शुरू करें

Welcome! How can I help?

WebdriverIO AI Copilot