परीक्षण सूट व्यवस्थित करना
जैसे-जैसे प्रोजेक्ट बढ़ते हैं, अनिवार्य रूप से अधिक से अधिक इंटीग्रेशन टेस्ट जोड़े जाते हैं। यह बिल्ड टाइम बढ़ाता है और उत्पादकता को धीमा करता है।
इसे रोकने के लिए, आपको अपने टेस्ट समानांतर में चलाने चाहिए। WebdriverIO पहले से ही प्रत्येक स्पेक (या Cucumber में फीचर फाइल) को एक सत्र के भीतर समानांतर में परीक्षण करता है। सामान्य तौर पर, प्रति स्पेक फ़ाइल केवल एक सुविधा का परीक्षण करने का प्रयास करें। एक फाइल में बहुत अधिक या बहुत कम परीक्षण न रखें। (हालांकि, यहां कोई स्वर्ण नियम नहीं है।)
एक बार जब आपके परीक्षणों में कई स्पेक फाइलें हों, तो आपको अपने परीक्षणों को एक साथ चलाना शुरू कर देना चाहिए। ऐसा करने के लिए, अपनी कॉन्फिग फाइल में maxInstances प्रॉपर्टी को समायोजित करें। WebdriverIO आपको अपने परीक्षणों को अधिकतम समवर्तिता के साथ चलाने की अनुमति देता है—जिसका अर्थ है कि चाहे आपके पास कितनी भी फाइलें और परीक्षण हों, वे सभी समानांतर में चल सकते हैं। (यह अभी भी कुछ सीमाओं के अधीन है, जैसे आपके कंप्यूटर का CPU, समवर्तिता प्रतिबंध, आदि।)
मान लीजिए कि आपके पास 3 अलग-अलग क्षमताएँ (Chrome, Firefox, और Safari) हैं और आपने
maxInstancesको1पर सेट किया है। WDIO टेस्ट रनर 3 प्रक्रियाएँ शुरू करेगा। इसलिए, यदि आपके पास 10 स्पेक फाइलें हैं और आपmaxInstancesको10पर सेट करते हैं, तो सभी स्पेक फाइलों का एक साथ परीक्षण किया जाएगा, और 30 प्रक्रियाएँ शुरू की जाएंगी।
आप सभी ब्राउज़रों के लिए विशेषता सेट करने के लिए maxInstances प्रॉपर्टी को वैश्विक रूप से परिभाषित कर सकते हैं।
यदि आप अपना स्वयं का WebDriver ग्रिड चलाते हैं, तो आपके पास (उदाहरण के लिए) एक ब्राउज ़र के लिए दूसरे की तुलना में अधिक क्षमता हो सकती है। उस स्थिति में, आप अपने क्षमता ऑब्जेक्ट में maxInstances को सीमित कर सकते हैं:
// wdio.conf.js
export const config = {
// ...
// set maxInstance for all browser
maxInstances: 10,
// ...
capabilities: [{
browserName: 'firefox'
}, {
// maxInstances can get overwritten per capability. So if you have an in-house WebDriver
// grid with only 5 firefox instance available you can make sure that not more than
// 5 instance gets started at a time.
browserName: 'chrome'
}],
// ...
}