क्लाउड सेवाओं का उपयोग
WebdriverIO के साथ Sauce Labs, Browserstack, TestingBot, TestMu AI (पहले LambdaTest) या Perfecto जैसी ऑन-डिमांड सेवाओं का उपयोग करना बहुत आसान है। आपको केवल अपने विकल्पों में अपनी सेवा के user और key सेट करने की आवश्यकता है।
वैकल्पिक रूप से, आप build जैसी क्लाउड-विशिष्ट क्षमताओं को सेट करके अपने टेस्ट को पैरामीटराइज़ भी कर सकते हैं। यदि आप क्लाउड सेवाओं को केवल Travis में चलाना चाहते हैं, तो आप यह जांचने के लिए CI पर्यावरण चर का उपयोग कर सकते हैं कि क्या आप Travis में हैं और उसके अनुसार कॉन्फिगरेशन को संशोधित कर सकते हैं।
// wdio.conf.js
export let config = {...}
if (process.env.CI) {
config.user = process.env.SAUCE_USERNAME
config.key = process.env.SAUCE_ACCESS_KEY
}
Sauce Labs
आप अपने टेस्ट को Sauce Labs में रिमोटली चलाने के लिए सेट कर सकते हैं।
केवल आवश्यकता यह है कि आप अपने कॉन्फिगरेशन में user और key को अपने Sauce Labs उपयोगकर्ता नाम और एक्सेस की पर सेट करें (या तो wdio.conf.js द्वारा एक्सपोर्ट किया गया हो या webdriverio.remote(...) में पास किया गया हो)।
आप किसी भी ब्राउज़र के लिए क्षमताओं में की/वैल्यू के रूप में कोई भी वैकल्पिक टेस्ट कॉन्फिगरेशन विकल्प भी पास कर सकते हैं।
Sauce Connect
यदि आप एक ऐसे सर्वर के विरुद्ध टेस्ट चलाना चाहते हैं जो इंटरनेट से सुलभ नहीं है (जैसे localhost पर), तो आपको Sauce Connect का उपयोग करने की आवश्यकता होगी।
यह WebdriverIO के दायरे से बाहर है, इसलिए आपको इसे स्वयं शुरू करना होगा।
यदि आप WDIO टेस्टरनर का उपयोग कर रहे हैं, तो अपने wdio.conf.js में @wdio/sauce-service को डाउनलोड और कॉन्फिगर करें। यह Sauce Connect को चलाने में मदद करता है और अतिरिक्त सुविधाओं के साथ आता है जो आपके टेस्ट को Sauce सेवा में बेहतर तरीके से एकीकृत करता है।
Travis CI के साथ
हालांकि, Travis CI में प्रत्येक टेस्ट से पहले Sauce Connect शुरू करने का समर्थन है, इसलिए उनके निर्देशों का पालन करना एक विकल्प है।
यदि आप ऐसा करते हैं, तो आपको प्रत्येक ब्राउज़र की capabilities में tunnel-identifier टेस्ट कॉन्फिगरेशन विकल्प सेट करना होगा। Travis इसे डिफ़ॉल्ट रूप से TRAVIS_JOB_NUMBER पर्यावरण चर पर सेट करता है।
इसके अतिरिक्त, यदि आप चाहते हैं कि Sauce Labs आपके टेस्ट को बिल्ड नंबर द्वारा समूहित करे, तो आप build को TRAVIS_BUILD_NUMBER पर सेट कर सकते हैं।
अंत में, यदि आप name सेट करते हैं, तो यह इस बिल्ड के लिए Sauce Labs में इस टेस्ट का नाम बदल देता है। यदि आप WDIO टेस्टरनर को @wdio/sauce-service के साथ संयोजित कर रहे हैं, तो WebdriverIO स्वचालित रूप से टेस्ट के लिए एक उचित नाम सेट करता है।
उदाहरण capabilities:
browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER
टाइमआउट
चूंकि आप अपने टेस्ट रिमोटली चला रहे हैं, इसलिए कुछ टाइमआउट बढ़ाना आवश्यक हो सकता है।
आप idle timeout को टेस्ट कॉन्फिगरेशन विकल्प के रूप में idle-timeout पास करके बदल सकते हैं। यह नियंत्रित करता है कि कनेक्शन बंद करने से पहले Sauce कमांड के बीच कितनी देर तक प्रतीक्षा करेगा।