कॉन्फ़िगरेशन
सेटअप प्रकार के आधार पर (जैसे कच्चे प्रोटोकॉल बाइंडिंग्स का उपयोग करना, स्टैंडअलोन पैकेज के रूप में 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
groupLogsByTestSpec
लॉग आउटपुट व्यू चुनें।
यदि false
पर सेट है, तो विभिन्न टेस्ट फ़ाइलों से लॉग रीयल-टाइम में प्रिंट किए जाएंगे। कृपया ध्यान दें कि समानांतर चलने पर यह विभिन्न फ़ाइलों से लॉग आउटपुट के मिश्रण का कारण बन सकता है।
यदि true
पर सेट है, तो लॉग आउटपुट टेस्ट स्पेक द्वारा समूहीकृत किए जाएंगे और केवल तभी प्रिंट किए जाएंगे जब टेस्ट स्पेक पूरा हो गया हो।
डिफ़ॉल्ट रूप से, यह false
पर सेट है ताकि लॉग रीयल-टाइम में प्रिंट हों।
प्रकार: Boolean
डिफ़ॉल्ट: false
services
सेवाएं एक विशिष्ट कार्य को संभालती हैं जिसकी आप देखभाल नहीं करना चाहते। वे लगभग बिना किसी प्रयास के आपके टेस्ट सेटअप को बढ़ाते हैं।
प्रकार: String[]|Object[]
डिफ़ॉल्ट: []
framework
WDIO टेस्टरनर द्वारा उपयोग किए जाने वाले टेस्ट फ्रेमवर्क को परिभाषित करता है।
प्रकार: String
डिफ़ॉल्ट: mocha
विकल्प: mocha
| jasmine
mochaOpts, jasmineOpts और cucumberOpts
विशिष्ट फ्रेमवर्क-संबंधित विकल्प। कौन से विकल्प उपलब्ध हैं, इसके लिए फ्रेमवर्क एडाप्टर दस्तावेज़ देखें। फ्रेमवर्क्स में इस पर अधिक पढ़ें।
प्रकार: Object
डिफ़ॉल्ट: { timeout: 10000 }
cucumberFeaturesWithLineNumbers
लाइन नंबरों (जब cucumber फ्रेमवर्क का उपयोग करते हुए) के साथ खीरे की विशेषताओं की सूची।
प्रकार: String[]
डिफ़ॉल्ट: []
reporters
उपयोग करने के लिए रिपोर्टरों की सूची। एक रिपोर्टर या तो एक स्ट्रिंग हो सकता है, या
['reporterName', { /* reporter options */}]
की एक सरणी जहां पहला तत्व रिपोर्टर के नाम के साथ एक स्ट्रिंग है और दूसरा तत्व रिपोर्टर विकल्पों वाला एक ऑब्जेक्ट है।
प्रकार: String[]|Object[]
डिफ़ॉल्ट: []
उदाहरण:
reporters: [
'dot',
'spec'
['junit', {
outputDir: `${__dirname}/reports`,
otherOption: 'foobar'
}]
]
reporterSyncInterval
निर्धारित करता है कि रिपोर्टर को किस अंतराल पर यह जांचना चाहिए कि क्या वे सिंक्रनाइज़ हैं यदि वे अपने लॉग्स को अतुल्यकालिक रूप से रिपोर्ट करते हैं (उदाहरण के लिए यदि लॉग्स को किसी तृतीय पक्ष विक्रेता को स्ट्रीम किया जाता है)।
प्रकार: Number
डिफ़ॉल्ट: 100
(ms)
reporterSyncTimeout
निर्धारित करता है कि रिपोर्टरों के अपने सभी लॉग्स को अपलोड समाप्त करने के लिए अधिकतम समय है जब तक कि टेस्टरनर द्वारा एक त्रुटि नहीं फेंकी जाती है।
प्रकार: Number
डिफ़ॉल्ट: 5000
(ms)
execArgv
चाइल्ड प्रोसेस लॉन्च करते समय निर्दिष्ट करने के लिए नोड आर्गुमेंट्स।
प्रकार: String[]
डिफ़ॉल्ट: null
filesToWatch
ग्लोब समर्थन करने वाले स्ट्रिंग पैटर्न की एक सूची जो टेस्टरनर को बताती है कि इसे अतिरिक्त रूप से अन्य फ़ाइलों को देखना है, जैसे एप्लिकेशन फ़ाइलें, जब इसे --watch
फ्लैग के साथ चलाया जाता है। डिफ़ॉल्ट रूप से, टेस्टरनर पहले से ही सभी स्पेक फ़ाइलों को देखता है।
प्रकार: String[]
डिफ़ॉल्ट: []
updateSnapshots
यदि आप अपने स्नैपशॉट को अपडेट करना चाहते हैं तो true पर सेट करें। आदर्श रूप से CLI पैरामीटर के भाग के रूप में उपयोग किया जाता है, जैसे wdio run wdio.conf.js --s
।
प्रकार: 'new' | 'all' | 'none'
डिफ़ॉल्ट: none
यदि प्रदान नहीं किया गया और टेस्ट CI में चलते हैं, new
यदि प्रदान नहीं किया गया, अन्यथा जो प्रदान किया गया है
resolveSnapshotPath
डिफ़ॉल्ट स्नैपशॉट पथ को ओवरराइड करता है। उदाहरण के लिए, टेस्ट फाइलों के बगल में स्नैपशॉट स्टोर करने के लिए।
export const config: WebdriverIO.Config = {
resolveSnapshotPath: (testPath, snapExtension) => testPath + snapExtension,
}
प्रकार: (testPath: string, snapExtension: string) => string
डिफ़ॉल्ट: टेस्ट फाइल के बगल में __snapshots__
डायरेक्टरी में स्नैपशॉट फाइल्स स्टोर करता है
tsConfigPath
WDIO टाइपस्क्रिप्ट फाइलों को कंपाइल करने के लिए tsx
का उपयोग करता है। आपका TSConfig वर्तमान वर्किंग डायरेक्टरी से स्वचालित रूप से पता लगाया जाता है लेकिन आप यहां एक कस्टम पथ निर्दिष्ट कर सकते हैं या TSX_TSCONFIG_PATH पर्यावरण चर सेट कर सकते हैं।
tsx
दस्तावेज़ देखें: https://tsx.is/dev-api/node-cli#custom-tsconfig-json-path
प्रकार: String
डिफ़ॉल्ट: null
हुक्स
WDIO टेस्टरनर आपको टेस्ट जीवनचक्र के विशिष्ट समयों पर ट्रिगर होने के लिए हुक्स सेट करने की अनुमति देता है। यह कस्टम एक्शन्स की अनुमति देता है (जैसे यदि कोई टेस्ट विफल हो जाता है तो स्क्रीनशॉट लें)।
प्रत्येक हुक में जीवनचक्र के बारे में विशिष्ट जानकारी पैरामीटर के रूप में होती है (जैसे टेस्ट सूट या टेस्ट के बारे में जानकारी)। हमारे उदाहरण कॉन्फिग में सभी हुक प्रॉपर्टीज के बारे में अधिक पढ़ें।
नोट: कुछ हुक्स (onPrepare
, onWorkerStart
, onWorkerEnd
और onComplete
) एक अलग प्रक्रिया में निष्पादित किए जाते हैं और इसलिए वे अन्य हुक्स के साथ कोई वैश्विक डेटा साझा नहीं कर सकते जो वर्कर प्रक्रिया में रहते हैं।
onPrepare
सभी वर्कर्स लॉन्च होने से पहले एक बार निष्पादित होता है।
पैरामीटर्स:
config
(object
): WebdriverIO कॉन्फिगरेशन ऑब्जेक्टparam
(object[]
): क्षमताओं के विवरण की सूची
onWorkerStart
एक वर्कर प्रोसेस स्पॉन होने से पहले निष्पादित होता है और उस वर्कर के लिए विशिष्ट सेवा को इनिशियलाइज़ करने के साथ-साथ एसिंक तरीके से रनटाइम एनवायरनमेंट को संशोधित करने के लिए उपयोग किया जा सकता है।
पैरामीटर्स:
cid
(string
): क्षमता आईडी (जैसे 0-0)caps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्सargs
(object
): ऑब्जेक्ट जो मुख्य कॉन्फिगरेशन के साथ मर्ज किया जाएगा जब वर्कर इनिशियलाइज़ हो जाएexecArgv
(string[]
): वर्कर प्रोसेस को पास किए गए स्ट्रिंग आर्गुमेंट्स की सूची
onWorkerEnd
वर्कर प्रोसेस बंद होने के तुरंत बाद निष्पादित होता है।
पैरामीटर्स:
cid
(string
): क्षमता आईडी (जैसे 0-0)exitCode
(number
): 0 - सफलता, 1 - विफलspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्सretries
(number
): "स्पेकफाइल के आधार पर पुनः प्रयास जोड़ें" में परिभाषित के रूप में उपयोग किए गए स्पेक-लेवल रिट्राई की संख्या
beforeSession
वेबड्राइवर सत्र और टेस्ट फ्रेमवर्क को इनिशियलाइज़ करने से पहले निष्पादित होता है। यह आपको क्षमता या स्पेक के आधार पर कॉन्फिगरेशन को मैनिपुलेट करने की अनुमति देता है।
पैरामीटर्स:
config
(object
): WebdriverIO कॉन्फिगरेशन ऑब्जेक्टcaps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्स
before
टेस्ट निष्पादन शुरू होने से पहले निष्पादित होता है। इस बिंदु पर आप browser
जैसे सभी ग्लोबल वेरिएबल्स तक पहुंच सकते हैं। यह कस्टम कमांड्स को परिभाषित करने के लिए एकदम सही जगह है।
पैरामीटर्स:
caps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्सbrowser
(object
): बनाए गए ब्राउज़र/डिवाइस सत्र का इंस्टेंस
beforeSuite
हुक जो सूट शुरू होने से पहले निष्पादित होता है (केवल Mocha/Jasmine में)
पैरामीटर्स:
suite
(object
): सूट विवरण
beforeHook
हुक जो सूट के भीतर एक हुक से पहले निष्पादित होता है (जैसे Mocha में beforeEach को कॉल करने से पहले चलता है)
पैरामीटर्स:
test
(object
): टेस्ट विवरणcontext
(object
): टेस्ट कॉन्टेक्स्ट (Cucumber में World ऑब्जेक्ट का प्रतिनिधित्व करता है)
afterHook
हुक जो सूट के भीतर एक हुक के बाद निष्पादित होता है (जैसे Mocha में afterEach को कॉल करने के बाद चलता है)
पैरामीटर्स:
test
(object
): टेस्ट विवरणcontext
(object
): टेस्ट कॉन्टेक्स्ट (Cucumber में World ऑब्जेक्ट का प्रतिनिधित्व करता है)result
(object
): हुक परिणाम (इसमेंerror
,result
,duration
,passed
,retries
प्रॉपर्टीज शामिल हैं)
beforeTest
एक टेस्ट से पहले निष्पादित होने वाला फंक्शन (केवल Mocha/Jasmine में)।
पैरामीटर्स:
test
(object
): टेस्ट विवरणcontext
(object
): स्कोप ऑब्जेक्ट जिसके साथ टेस्ट निष्पादित किया गया था
beforeCommand
WebdriverIO कमांड के निष्पादित होने से पहले चलता है।
पैरामीटर्स:
commandName
(string
): कमांड का नामargs
(*
): आर्गुमेंट्स जो कमांड प्राप्त करेगा
afterCommand
WebdriverIO कमांड के निष्पादित होने के बाद चलता है।
पैरामीटर्स:
commandName
(string
): कमांड का नामargs
(*
): आर्गुमेंट्स जो कमांड प्राप्त करेगाresult
(number
): 0 - कमांड सफलता, 1 - कमांड त्रुटिerror
(Error
): त्रुटि ऑब्जेक्ट यदि कोई हो
afterTest
एक टेस्ट (Mocha/Jasmine में) समाप्त होने के बाद निष्पादित होने वाला फ़ंक्शन।
पैरामीटर्स:
test
(object
): टेस्ट विवरणcontext
(object
): स्कोप ऑब्जेक्ट जिसके साथ टेस्ट निष्पादित किया गया थाresult.error
(Error
): त्रुटि ऑब्जेक्ट यदि टेस्ट विफल होता है, अन्यथाundefined
result.result
(Any
): टेस्ट फंक्शन का रिटर्न ऑब्जेक्टresult.duration
(Number
): टेस्ट की अवधिresult.passed
(Boolean
): यदि टेस्ट पास हो गया है तो true, अन्यथा falseresult.retries
(Object
): Mocha और Jasmine के साथ-साथ Cucumber के लिए परिभाषित एकल टेस्ट से संबंधित रिट्राई के बारे में जानकारी, जैसे{ attempts: 0, limit: 0 }
, देखेंresult
(object
): हुक परिणाम (इसमेंerror
,result
,duration
,passed
,retries
प्रॉपर्टीज शामिल हैं)
afterSuite
हुक जो सूट समाप्त होने के बाद निष्पादित होता है (केवल Mocha/Jasmine में)
पैरामीटर्स:
suite
(object
): सूट विवरण
after
सभी टेस्ट पूरे होने के बाद निष्पादित होता है। आपके पास अभी भी टेस्ट से सभी ग्लोबल वेरिएबल्स तक पहुंच है।
पैरामीटर्स:
result
(number
): 0 - टेस्ट पास, 1 - टेस्ट फेलcaps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्स
afterSession
वेबड्राइवर सत्र समाप्त करने के तुरंत बाद निष्पादित होता है।
पैरामीटर्स:
config
(object
): WebdriverIO कॉन्फिगरेशन ऑब्जेक्टcaps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंspecs
(string[]
): वर्कर प्रोसेस में चलाने के लिए स्पेक्स
onComplete
सभी वर्कर्स बंद होने और प्रक्रिया बंद होने वाली होने के बाद निष्पादित होता है। onComplete हुक में एक त्रुटि होने से टेस्ट रन विफल हो जाएगा।
पैरामीटर्स:
exitCode
(number
): 0 - सफलता, 1 - विफलconfig
(object
): WebdriverIO कॉन्फिगरेशन ऑब्जेक्टcaps
(object
): वर्कर में स्पॉन होने वाले सत्र के लिए क्षमताएंresult
(object
): टेस्ट परिणामों को शामिल करने वाला परिणाम ऑब्जेक्ट
onReload
जब रिफ्रेश होता है तो निष्पादित होता है।
पैरामीटर्स:
oldSessionId
(string
): पुराने सत्र का सत्र आईडीnewSessionId
(string
): नए सत्र का सत्र आईडी
beforeFeature
Cucumber फीचर से पहले चलता है।
पैरामीटर्स:
uri
(string
): फीचर फ़ाइल का पथfeature
(GherkinDocument.IFeature
): Cucumber फीचर ऑब्जेक्ट
afterFeature
Cucumber फीचर के बाद चलता है।
पैरामीटर्स:
uri
(string
): फीचर फ़ाइल का पथfeature
(GherkinDocument.IFeature
): Cucumber फीचर ऑब्जेक्ट
beforeScenario
Cucumber सीनेरियो से पहले चलता है।
पैरामीटर्स:
world
(ITestCaseHookParameter
): वर्ल्ड ऑब्जेक्ट जिसमें pickle और टेस्ट स्टेप पर जानकारी हैcontext
(object
): Cucumber वर्ल्ड ऑब्जेक्ट
afterScenario
Cucumber सीनेरियो के बाद चलता है।
पैरामीटर्स:
world
(ITestCaseHookParameter
): वर्ल्ड ऑब्जेक्ट जिसमें pickle और टेस्ट स्टेप पर जानकारी हैresult
(object
): सीनेरियो परिणामों को शामिल करने वाला परिणाम ऑब्जेक्टresult.passed
(boolean
): यदि सीनेरियो पास हो गया है तो trueresult.error
(string
): त्रुटि स्टैक यदि सीनेरियो विफल हो गयाresult.duration
(number
): मिलीसेकंड में सीनेरियो की अवधिcontext
(object
): Cucumber वर्ल्ड ऑब्जेक्ट
beforeStep
Cucumber स्टेप से पहले चलता है।
पैरामीटर्स:
step
(Pickle.IPickleStep
): Cucumber स्टेप ऑब्जेक्टscenario
(IPickle
): Cucumber सीनेरियो ऑब्जेक्टcontext
(object
): Cucumber वर्ल्ड ऑब्जेक्ट
afterStep
Cucumber स्टेप के बाद चलता है।
पैरामीटर्स:
step
(Pickle.IPickleStep
): Cucumber स्टेप ऑब्जेक्टscenario
(IPickle
): Cucumber सीनेरियो ऑब्जेक्टresult
: (object
): स्टेप परिणामों को शामिल करने वाला परिणाम ऑब्जेक्टresult.passed
(boolean
): यदि सीनेरियो पास हो गया है तो trueresult.error
(string
): त्रुटि स्टैक यदि सीनेरियो विफल हो गयाresult.duration
(number
): मिलीसेकंड में सीनेरियो की अवधिcontext
(object
): Cucumber वर्ल्ड ऑब्जेक्ट
beforeAssertion
हुक जो WebdriverIO असर्शन होने से पहले निष्पादित होता है।
पैरामीटर्स:
params
: असर्शन जानकारीparams.matcherName
(string
): मैचर का नाम (जैसेtoHaveTitle
)params.expectedValue
: मान जो मैचर में पास किया जाता हैparams.options
: असर्शन विकल्प
afterAssertion
हुक जो WebdriverIO असर्शन होने के बाद निष्पादित होता है।
पैरामीटर्स:
params
: असर्शन जानकारीparams.matcherName
(string
): मैचर का नाम (जैसेtoHaveTitle
)params.expectedValue
: मान जो मैचर में पास किया जाता हैparams.options
: असर्शन विकल्पparams.result
: असर्शन परिणाम