कॉन्फ़िगरेशन
सेटअप प्रकार (जैसे कि रॉ प्रोटोकॉल बाइंडिंग्स का उपयोग करना, स्टैंडअलोन पैकेज के रूप में 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 स्वचालित टेस्ट कॉन्फ़िगरेटर है, जो आपकी वांछित क्षमताओ ं को क्लिक करके इस ऑब्जेक्ट को बनाने में मदद करता है।
प्रकार: Object
डिफ़ॉल्ट: null
उदाहरण:
{
browserName: 'chrome', // विकल्प: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // ब्राउज़र संस्करण
platformName: 'Windows 10' // OS प्लेटफॉर्म
}
यदि आप मोबाइल डिवाइस पर वेब या नेटिव टेस्ट चला रहे हैं, तो capabilities
WebDriver प्रोटोकॉल से भिन्न होता है। अधिक विवरण के लिए Appium दस्तावेज़ देखें।
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
agent का उपयोग करने की अनुमति देता है।
प्रकार: 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
डिफ़ॉल्ट: कोई नहीं
transformResponse
WebDriver प्रतिक्रिया आने के बाद HTTP प्रतिक्रिया ऑब्जेक्ट्स को इंटरसेप्ट करने वाला फंक्शन। फंक्शन को मूल प्रतिक्रिया ऑब्जेक्ट पहले और संबंधित RequestOptions
को दूसरे आर्गुमेंट के रूप में पारित किया जाता है।
प्रकार: (Response, RequestOptions) => Response
डिफ़ॉल्ट: कोई नहीं
strictSSL
क्या यह SSL प्रमाणपत्र के वैध होने की आवश्यकता नहीं करता है।
इसे STRICT_SSL
या strict_ssl
पर्यावरण चर के माध्यम से सेट किया जा सकता है।
प्रकार: Boolean
डिफ़ॉल्ट: true
enableDirectConnect
क्या Appium डायरेक्ट कनेक्शन फीचर सक्षम करें। यदि फ्लैग सक्षम होने पर प्रतिक्रिया में उचित कुंजियां नहीं थीं, तो यह कुछ नहीं करता है।
प्रकार: Boolean
डिफ़ॉल्ट: true
cacheDir
कैश डायरेक्टरी के रू ट का पथ। इस डायरेक्टरी का उपयोग सभी ड्राइवरों को स्टोर करने के लिए किया जाता है जो सत्र शुरू करने का प्रयास करते समय डाउनलोड किए जाते हैं।
प्रकार: String
डिफ़ॉल्ट: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
maskingPatterns
अधिक सुरक्षित लॉगिंग के लिए, maskingPatterns
के साथ सेट रेगुलर एक्सप्रेशन लॉग से संवेदनशील जानकारी को अस्पष्ट कर सकते हैं।
- स्ट्रिंग फॉर्मेट फ्लैग के साथ या बिना एक रेगुलर एक्सप्रेशन है (जैसे
/.../i
) और कई रेगुलर एक्सप्रेशन के लिए कॉमा से अलग किया गया है। - मास्किंग पैटर्न के बारे में अधिक जानकारी के लिए, WDIO लॉगर README में मास्किंग पैटर्न सेक्शन देखें।
प्रकार: String
डिफ़ॉल्ट: undefined
उदाहरण:
{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}
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/सिम् युलेटर्स के लिए)
टेस्टरनर विकल्प
निम्नलिखित विकल्प (ऊपर सूचीबद्ध विकल्पों सहित) केवल WDIO टेस्टरनर के साथ WebdriverIO चलाने के लिए परिभाषित किए गए हैं:
specs
टेस्ट निष्पादन के लिए स्पेक्स परिभाषित करें। आप या तो एक साथ कई फाइलों से मेल खाने के लिए ग्लोब पैटर्न निर्दिष्ट कर सकते हैं या एक ग्लोब या पथों के सेट को एक सिंगल वर्कर प्रोसेस के भीतर चलाने के लिए एक ऐरे में लपेट सकते हैं। सभी पथ कॉन्फिग फाइल पथ से सापेक्ष माने जाते हैं।
प्रकार: (String | String[])[]
डिफ़ॉल्ट: []