कॉन्फ़िगरेशन
सेटअप प्रकार के आधार पर (जैसे कच्चे प्रोटोकॉल बाइंडिंग्स का उपयोग करना, स्टैंडअलोन पैकेज के रूप में WebdriverIO या WDIO टेस्टरनर), पर्यावरण को नियंत्रित करने के लिए विकल्पों का एक अलग सेट उपलब्ध है।
WebDriver विकल्प
webdriver
प्रोटोकॉल पैकेज का उपयोग करते समय निम्नलिखित विकल्प परिभाषित किए जाते हैं:
protocol
ड्राइवर सर्वर के साथ संवाद करते समय उप योग करने के लिए प्रोटोकॉल।
प्रकार: String
डिफ़ॉल्ट: http
hostname
आपके ड्राइवर सर्वर का होस्ट।
प्रकार: String
डिफ़ॉल्ट: 0.0.0.0
port
आपका ड्राइवर सर्वर जिस पोर्ट पर है।
प्रकार: Number
डिफ़ॉल्ट: undefined
path
ड्राइवर सर्वर एंडपॉइंट का पथ।
प्रकार: String
डिफ़ॉल्ट: /
queryParams
क्वेरी पैरामीटर जो ड्राइवर सर्वर को प्रोपेगेट किए जाते हैं।
प्रकार: Object
डिफ़ॉल्ट: undefined
user
आपका क्लाउड सेवा उपयोगकर्ता नाम (केवल Sauce Labs, Browserstack, TestingBot या LambdaTest खातों के लिए काम करता है)। यदि सेट है, तो WebdriverIO स्वचालित रूप से आपके लिए कनेक्शन विकल्प सेट करेगा। यदि आप क्लाउड प्रदाता का उपयोग नहीं करते हैं तो इसका उपयोग किसी अन्य WebDriver बैकएंड को प्रमाणित करने के लिए किया जा सकता है।
प्रकार: String
डिफ़ॉल्ट: undefined
key
आपकी क्लाउड सेवा एक्सेस कुंजी या गुप्त कुंजी (केवल Sauce Labs, Browserstack, TestingBot या LambdaTest खातों के लिए काम करता है)। यदि सेट है, तो WebdriverIO स्वचालित रूप से आपके लिए कनेक्शन विकल्प सेट करेगा। यदि आप क्लाउड प्रदाता का उपयोग नहीं करते हैं तो इसका उपयोग किसी अन्य WebDriver बैकएंड को प्रमाणित करने के लिए किया जा सकता है।
प्रकार: String
डिफ़ॉल्ट: undefined
capabilities
आपके WebDriver सत्र में चलाने की क्षमताओं को परिभाषित करता है। अधिक विवरण के लिए WebDriver प्रोटोकॉल देखें। यदि आप एक पुराने ड्राइवर को चलाते हैं जो WebDriver प्रोटोकॉल का समर्थन नहीं करता है, तो आपको सफलतापूर्वक सत्र चलाने के लिए JSONWireProtocol क्षमताओं का उपयोग करने की आवश्यकता होगी।
WebDriver आधारित क्षमताओं के अलावा आप ब्राउज़र और विक्रेता विशिष्ट विकल्प लागू कर सकते हैं ज ो रिमोट ब्राउज़र या डिवाइस के गहरे कॉन्फ़िगरेशन की अनुमति देते हैं। ये संबंधित विक्रेता दस्तावेज़ों में प्रलेखित हैं, जैसे:
goog:chromeOptions
: Google Chrome के लिएmoz:firefoxOptions
: Mozilla Firefox के लिएms:edgeOptions
: Microsoft Edge के लिएsauce:options
: Sauce Labs के लिएbstack:options
: BrowserStack के लिएselenoid:options
: Selenoid के लिए
इसके अतिरिक्त, एक उपयोगी उपकरण Sauce Labs Automated Test Configurator है, जो आपको अपनी वांछित क्षमताओं को क्लिक करके इस ऑब्जेक्ट को बनाने में मदद करता है।
प्रकार: Object
डिफ़ॉल्ट: null
उदाहरण:
{
browserName: 'chrome', // विकल्प: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // ब्राउज़र संस्करण
platformName: 'Windows 10' // OS प्लेटफॉर्म
}
यदि आप मोबाइल डिवाइस पर वेब या नेटिव टेस्ट चला रहे हैं, तो capabilities
WebDriver प्रोटोकॉल से अलग हैं। अधिक विवरण के लिए Appium Docs देखें।
logLevel
लॉगिंग वर्बोसिटी का स्तर।
प्रकार: String
डिफ़ॉल्ट: info
विकल्प: trace
| debug
| info
| warn
| error
| silent
outputDir
सभी टेस्टरनर लॉग फ़ाइलों (रिपोर्टर लॉग और wdio
लॉग सहित) को स्टोर करने के लिए डायरेक्टरी। यदि सेट नहीं है, तो सभी लॉग stdout
पर स्ट्रीम किए जाते हैं। चूंकि अधिकांश रिपोर्टर stdout
पर लॉग करने के लिए बनाए गए हैं, इसलिए यह अनुशंसा की जाती है कि आप इस विकल्प का उपयोग केवल विशिष्ट रिपोर्टरों के लिए करें जहां रिपोर्ट को फ़ाइल में पुश करना अधिक समझदारी है (जैसे junit
रिपोर्टर, उदाहरण के लिए)।
स्टैंडअलोन मोड में चलते समय, WebdriverIO द्वारा उत्पन्न एकमात्र लॉग wdio
लॉग होगा।
प्रकार: String
डिफ़ॉल्ट: null
connectionRetryTimeout
ड्राइवर या ग्रिड को किसी भी WebDriver अनुरोध के लिए टाइमआउट।
प्रकार: Number
डिफ़ॉल्ट: 120000
connectionRetryCount
सेलेनियम सर्वर के लिए अनुरोध पुनः प्रयासों की अधिकतम संख्या।
प्रकार: Number
डिफ़ॉल्ट: 3
agent
आपको अनुरोध करने के लिए एक कस्टम http
/https
/http2
एजेंट का उपयोग करने की अनुमति देता है।
प्रकार: Object
डिफ़ॉल्ट:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
हर WebDriver अनुरोध में पास करने के लिए कस्टम headers
निर्दिष्ट करें। यदि आपके सेलेनियम ग्रिड को बेसिक ऑथेंटिकेशन की आवश्यकता है, तो हम आपके WebDriver अनुरोधों को प्रमाणित करने के लिए इस विकल्प के माध्यम से एक Authorization
हेडर पास करने की अनुशंसा करते हैं, उदाहरण के लिए:
import { Buffer } from 'buffer';
// Read the username and password from environment variables
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// Combine the username and password with a colon separator
const credentials = `${username}:${password}`;
// Encode the credentials using Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
प्रकार: Object
डिफ़ॉल्ट: {}
transformRequest
WebDriver अनुरोध करने से पहले HTTP अनुरोध विकल्पों को अवरोधित करने वाला फंक्शन
प्रकार: (RequestOptions) => RequestOptions
डिफ़ॉल्ट: none
transformResponse
HTTP प्रतिक्रिया ऑब्जेक्ट्स को WebDriver प्रतिक्रिया आने के बाद अवरोधित करने वाला फंक्शन। फंक्शन को मूल प्रतिक्रिया ऑब्जेक्ट पहले और संबंधित RequestOptions
को दूसरे आर्गुमेंट के रूप में पास किया जाता है।
प्रकार: (Response, RequestOptions) => Response
डिफ़ॉल ्ट: none
strictSSL
क्या SSL प्रमाणपत्र के मान्य होने की आवश्यकता नहीं है।
इसे पर्यावरण चर के रूप में STRICT_SSL
या strict_ssl
के माध्यम से सेट किया जा सकता है।
प्रकार: Boolean
डिफ़ॉल्ट: true
enableDirectConnect
क्या Appium डायरेक्ट कनेक्शन फीचर को सक्षम करें। यदि फ्लैग सक्षम है तो प्रतिक्रिया में उचित कुंजियां नहीं थीं तो यह कुछ नहीं करता है।
प्रकार: Boolean
डिफ़ॉल्ट: true
cacheDir
कैश डायरेक्टरी के रूट का पथ। इस डायरेक्टरी का उपयोग सभी ड्राइवरों को स्टोर करने के लिए किया जाता है जो सत्र शुरू करने का प्रयास करते समय डाउनलोड किए जाते हैं।
प्रकार: String
डिफ़ॉल्ट: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
WebdriverIO
निम्नलिखित विकल्प (ऊपर सूचीबद्ध लोगों सहित) WebdriverIO के साथ स्टैंडअलोन में उपयोग किए जा सकते हैं:
automationProtocol
उस प्रोटोकॉल को परिभाषित करें जिसका उपयोग आप अपने ब्राउज़र ऑटोमेशन के लिए करना चाहते हैं। वर्तमान में केवल webdriver
समर्थित है, क्योंकि यह मुख्य ब्राउज़र ऑटोमेशन तकनीक है जिसका उपयोग WebdriverIO करता है।
यदि आप एक अलग ऑटोमेशन तकनीक का उपयोग करके ब्राउज़र को स्वचालित करना चाहते हैं, तो आप इस प ्रॉपर्टी को एक पथ पर सेट करें जो एक ऐसे मॉड्यूल का समाधान करता है जो निम्नलिखित इंटरफेस का पालन करता है:
import type { Capabilities } from '@wdio/types';
import type { Client, AttachOptions } from 'webdriver';
export default class YourAutomationLibrary {
/**
* Start a automation session and return a WebdriverIO [monad](https://github.com/webdriverio/webdriverio/blob/940cd30939864bdbdacb2e94ee6e8ada9b1cc74c/packages/wdio-utils/src/monad.ts)
* with respective automation commands. See the [webdriver](https://www.npmjs.com/package/webdriver) package
* as a reference implementation
*
* @param {Capabilities.RemoteConfig} options WebdriverIO options
* @param {Function} hook that allows to modify the client before it gets released from the function
* @param {PropertyDescriptorMap} userPrototype allows user to add custom protocol commands
* @param {Function} customCommandWrapper allows to modify the command execution
* @returns a WebdriverIO compatible client instance
*/
static newSession(
options: Capabilities.RemoteConfig,
modifier?: (...args: any[]) => any,
userPrototype?: PropertyDescriptorMap,
customCommandWrapper?: (...args: any[]) => any
): Promise<Client>;
/**
* allows user to attach to existing sessions
* @optional
*/
static attachToSession(
options?: AttachOptions,
modifier?: (...args: any[]) => any, userPrototype?: {},
commandWrapper?: (...args: any[]) => any
): Client;
/**
* Changes The instance session id and browser capabilities for the new session
* directly into the passed in browser object
*
* @optional
* @param {object} instance the object we get from a new browser session.
* @returns {string} the new session id of the browser
*/
static reloadSession(
instance: Client,
newCapabilities?: WebdriverIO.Capabilitie
): Promise<string>;
}
प्रकार: String
डिफ़ॉल्ट: webdriver
baseUrl
एक बेस URL सेट करके url
कमांड कॉल को छोटा करें।
- यदि आपका
url
पैरामीटर/
से शुरू होता है, तोbaseUrl
आगे जोड़ा जाता है (सिवायbaseUrl
पथ, यदि इसमें कोई है)। - यदि आपका
url
पैरामीटर स्कीम या/
(जैसेsome/path
) के बिना शुरू होता है, तो पूराbaseUrl
सीधे आगे जोड़ा जाता है।
प्रकार: String
डिफ़ॉल्ट: null
waitforTimeout
सभी waitFor*
कमांड्स के लिए डिफ़ॉल्ट टाइमआउट। (विकल्प नाम में छोटे f
पर ध्यान दें।) यह टाइमआउट केवल waitFor*
से शुरू होने वाले कमांड्स और उनके डिफ़ॉल्ट प्रतीक्षा समय को प्रभावित करता है।
टेस्ट के लिए टाइमआउट बढ़ाने के लिए, कृपया फ्रेमवर्क दस्तावेज़ देखें।
प्रकार: Number
डिफ़ॉल्ट: 5000
waitforInterval
सभी waitFor*
कमांड्स के लिए डिफ़ॉल्ट अंतराल यह जांचने के लिए कि क्या किसी अपेक्षित स्थिति (जैसे, दृश्यता) को बदल दिया गया है।
प्रकार: Number
डिफ़ॉल्ट: 100
region
यदि Sauce Labs पर चल रहे हैं, तो आप विभिन्न डेटा केंद्रों के बीच टेस्ट चलाने का चयन कर सकते हैं: US या EU।
अपने क्षेत्र को EU में बदलने के लिए, अपने कॉन्फिग में region: 'eu'
जोड़ें।
नोट: यह केवल तभी प्रभाव डालता है जब आप user
और key
विकल्प प्रदान करते हैं जो आपके Sauce Labs खाते से जुड़े हैं।
प्रकार: String
डिफ़ॉल्ट: us
(केवल vm और या em/simulators के लिए)
टेस्टरनर विकल्प
निम्न विकल्प (ऊपर सूचीबद्ध लोगों सहित) केवल WDIO टेस्टरनर के साथ WebdriverIO चलाने के लिए परिभाषित किए गए हैं:
specs
टेस्ट निष्पादन के लिए स्पेक्स परिभाषित करें। आप या तो एक ग्लोब पैटर्न निर्दिष्ट कर सकते हैं जो एक बार में कई फ़ाइलों से मेल खाता है या एक अकेल ी वर्कर प्रक्रिया के भीतर उन्हें चलाने के लिए एक ग्लोब या पथों के सेट को एक सरणी में लपेट सकते हैं। सभी पथों को कॉन्फिग फ़ाइल पथ से सापेक्ष माना जाता है।
प्रकार: (String | String[])[]
डिफ़ॉल्ट: []
exclude
टेस्ट निष्पादन से स्पेक्स को बाहर करें। सभी पथों को कॉन्फिग फ़ाइल पथ से सापेक्ष माना जाता है।
प्रकार: String[]
डिफ़ॉल्ट: []
suites
विभिन्न सूट्स का वर्णन करने वाला एक ऑब्जेक्ट, जिसे आप फिर wdio
CLI पर --suite
विकल्प के साथ निर्दिष्ट कर सकते हैं।
प्रकार: Object
डिफ़ॉल्ट: {}
capabilities
ऊपर वर्णित capabilities
अनुभाग के समान, सिवाय इसके कि multiremote
ऑब्जेक्ट, या समानांतर निष्पादन के लिए एक सरणी में कई WebDriver सत्र निर्दिष्ट करने का विकल्प है।
आप ऊपर परिभाषित के रूप में समान विक्रेता और ब्राउज़र विशिष्ट क्षमताओं को लागू कर सकते हैं।
प्रकार: Object
|Object[]
डिफ़ॉल्ट: [{ 'wdio:maxInstances': 5, browserName: 'firefox' }]
maxInstances
समानांतर चलने वाले कार्यकर्ताओं की कुल अधिकतम संख्या।
नोट: यह 100
जैसी उच्च संख्या हो सकती है, जब परीक्षण Sauce Labs की मशीनों जैसे किसी बाहरी विक्रेताओं पर किए जा रहे हों। वहां, परीक्षण एक ही मशीन पर नहीं, बल्कि कई VM पर किए जाते हैं। यदि परीक्षण स्थानीय विकास मशीन पर चलाए जाने हैं, तो 3
, 4
, या 5
जैसी अधिक उचित संख्या का उपयोग करें। अनिवार्य रूप से, यह उन ब्राउज़रों की संख्या है जो एक साथ शुरू होंगे और एक साथ आपके परीक्षण चलाएंगे, इसलिए यह आपकी मशीन पर कितना RAM है और आपकी मशीन पर कितने अन्य ऐप्स चल रहे हैं, इस पर निर्भर करता है।
आप wdio:maxInstances
क्षमता का उपयोग करके अपनी क्षमता ऑब्जेक्ट्स के भीतर maxInstances
भी लागू कर सकते हैं। यह उस विशेष क्षमता के लिए समानांतर सत्रों की मात्रा को सीमित करेगा।
प्रकार: Number
डिफ़ॉल्ट: 100
maxInstancesPerCapability
प्रति क्षमता समानांतर चलने वाले कार्यकर्ताओं की कुल अधिकतम संख्या।
प्रकार: Number
डिफ़ॉल्ट: 100
injectGlobals
WebdriverIO के ग्लोबल्स (जैसे browser
, $
और $$
) को ग्लोबल एनवायरनमेंट में डालता है।
यदि आप false
पर सेट करते हैं, तो आपको @wdio/globals
से इम्पोर्ट करना चाहिए, उदाहरण के लिए:
import { browser, $, $$, expect } from '@wdio/globals'
नोट: WebdriverIO टेस्ट फ्रेमवर्क विशिष्ट ग्लोबल्स के इंजेक्शन को संभालता नहीं है।
प्रकार: Boolean
डिफ़ॉल्ट: true
bail
यदि आप चाहते हैं कि आपका टेस्ट रन विशिष्ट संख्या में टेस्ट विफलताओं के बाद रुक जाए, तो bail
का उपयोग करें।
(यह डिफ़ॉल्ट रूप से 0
पर है, जो सभी टेस्ट चलाता है चाहे कुछ भी हो।) नोट: इस संदर्भ में एक टेस्ट एक स्पेक फ़ाइल (Mocha या Jasmine का उपयोग करते समय) के भीतर सभी टेस्ट या एक फीचर फ़ाइल (Cucumber का उपयोग करते समय) के भीतर सभी स्टेप्स हैं। यदि आप एक ही टेस्ट फ़ाइल के टेस्ट के भीतर बेल व्यवहार को नियंत्रित करना चाहते हैं, तो उपलब्ध फ्रेमवर्क विकल्पों पर एक नज़र डालें।
प्रकार: Number
डिफ़ॉल्ट: 0
(बेल नहीं करें; सभी टेस्ट चलाएं)
specFileRetries
किसी पूरी specfile को पुनः प्रयास करने के लिए बार, जब वह पूरी तरह से विफल हो जाती है।
प्रकार: Number
डिफ़ॉल्ट: 0
specFileRetriesDelay
स्पेक फ़ाइल पुनः प्रयास प्रयासों के बीच सेकंड में देरी
प्रकार: Number
डिफ़ॉल्ट: 0
specFileRetriesDeferred
क्या पुनः प्रयास किए गए स्पेक फ़ाइलों को तुरंत पुनः प्रयास किया जाना चाहिए या कतार के अंत तक स्थगित किया जाना चाहिए।
प्रकार: Boolean
डिफ़ॉल्ट: true