پیکربندی
بر اساس تنظیم نوع (مثلاً با استفاده از اتصال پروتکل خام، WebdriverIO به عنوان بسته مستقل و اجرا کننده تست WDIO) مجموعه متفاوتی از گزینه ها برای کنترل محیط وجود دارد.
گزینه های WebDriver
هنگام استفاده از بسته پروتکل webdriver
گزینه های زیر تعریف می شوند:
protocol
پروتکل مورد استفاده در هنگام برقراری ارتباط با سرور درایور.
Type: String
Default: http
hostname
میزبان سرور درایور شما.
Type: String
Default: localhost
port
پورتی که سرور درایور شما روی آن است.
Type: Number
Default: 4444
path
مسیری به سرور درایور شما.
Type: String
Default: /
queryParams
پارامترهای درخواست که به سرور درایور انتشار می یابند.
Type: Object
Default: null
user
نام کاربری سرویس ابری شما (فقط برای اکانت های Sauce Labs, Browserstack, TestingBot or LambdaTest کار می کند). در صورت تنظیم، WebdriverIO به طور خودکار ویژگی های اتصال را برای شما تنظیم می کند. اگر از ارائهدهنده ابری استفاده نمیکنید، میتوان از آن برای احراز هویت هر بک اند WebDriver دیگری استفاده کرد.
Type: String
Default: null
key
کلید دسترسی به سرویس ابری یا کلید مخفی شما (فقط برای اکانت های Sauce Labs, Browserstack, TestingBot or LambdaTest کار می کند). در صورت تنظیم، WebdriverIO به طور خودکار ویژگی های اتصال را برای شما تنظیم می کند. اگر از ارائهدهنده ابری استفاده نمیکنید، میتوان از آن برای احراز هویت هر بک اند WebDriver دیگری استفاده کرد.
Type: String
Default: null
capabilities
قابلیت(Capability) هایی را که می خواهید در جلسه WebDriver خود اجرا کنید را تعریف می کند. برای جزئیات بیشتر، پروتکل WebDriver را بررسی کنید. اگر درایور قدیمیتری را اجرا میکنید که از پروتکل WebDriver پشتیبانی نمیکند، برای اجرای موفقیتآمیز یک جلسه، باید از قابلیتهای JSONWireProtocol استفاده کنید.
در کنار قابلیتهای مبتنی بر WebDriver، میتوانید گزینههایی که خاص یک مرورگر و یا سازنده خاصی است را اعمال کنید که امکان پیکربندی عمیقتر را برای مرورگر یا دستگاه در راه دور فراهم میکند. اینها در اسناد سازنده مربوطه مستند شده اند، به عنوان مثال:
goog:chromeOptions
: for Google Chromemoz:firefoxOptions
: for Mozilla Firefoxms:edgeOptions
: for Microsoft Edgesauce:options
: for Sauce Labsbstack:options
: for BrowserStackselenoid:options
: for Selenoid
علاوه بر این، یک ابزار مفید Sauce Labs Automated Test Configurator است که به شما کمک می کند این شی را با کلیک کردن روی قابلیت های مورد نظر خود ایجاد کنید.
Type: Object
Default: null
مثال:
{
browserName: 'chrome', // options: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // browser version
platformName: 'Windows 10' // OS platform
}
اگر تست های وب یا بومی را روی دستگاه های تلفن همراه اجرا می کنید، قابلیت(Capability)
با پروتکل WebDriver متفاوت است. برای جزئیات بیشتر به Appium Docs مراجعه کنید.
logLevel
سطح و میزان لاگ.
Type: String
Default: info
Options: trace
| debug
| info
| warn
| error
| silent
outputDir
دایرکتوری برای ذخیره همه فایلهای لاگ اجرا کننده تست (از جمله لاگهای گزارشدهنده ها و لاگ wdio
). اگر تنظیم نشود، همه گزارشها به stdout
ارسال میشوند. از آنجایی که اکثر گزارشدهنده ها برای لاگ در stdout
ساخته شده اند، توصیه می شود از این گزینه فقط برای گزارشدهنده های خاصی استفاده شود که در آن انتقال گزارش به یک فایل منطقی تر است (مثلاً گزارشدهنده junit
).
هنگامی که در حالت مستقل اجرا می شود، تنها گزارشی که توسط WebdriverIO ایجاد می شود، گزارش wdio
خواهد بود.
Type: String
Default: null
connectionRetryTimeout
مهلت زمانی برای هر درخواست WebDriver به درایور یا شبکه.
Type: Number
Default: 120000
connectionRetryCount
حداکثر تعداد درخواستهای مجدد به سرور سلنیوم.
Type: Number
Default: 3
agent
به شما امکان می دهد از یک عامل سفارشی http
/https
/http2
برای درخواست استفاده کنید.
Type: Object
Default:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
مشخص کردن headers
های سفارشی برای ارسال با هر درخواست WebDriver و هنگام اتصال به مرورگر از طریق Puppeteer با استفاده از پروتکل CDP.
این header ها به درخواست مرورگر منتقل نمی شوند. اگر به دنبال اصلاح هدر درخواست، برای درخواست های مرورگر هستید، لطفاً در #6361 شرکت کنید!
Type: Object
Default: {}
transformRequest
تابعی برای intercept کردن ویژگی های درخواست HTTP قبل از درخواست WebDriver
Type: (RequestOptions) => RequestOptions
Default: none
transformResponse
تابعی برای intercept اشیاء در پاسخ HTTP پس از رسیدن پاسخ WebDriver. تابع به شیء پاسخ اصلی به عنوان اولین و RequestOptions
مربوطه به عنوان آرگومان دوم ارسال می شود.
Type: (Response, RequestOptions) => Response
Default: none
strictSSL
آیا برای معتبر بودن به گواهی SSL نیاز هست یا خیر. می توان آن را از طریق متغیرهای محیطی به صورت STRICT_SSL
یا strict_ssl
تنظیم کرد.
Type: Boolean
Default: true
enableDirectConnect
فعال کردن ویژگی اتصال مستقیم Appium. اگر در حالی که پرچم فعال است، پاسخ کلیدهای مناسبی نداشته باشد، کاری انجام نمی دهد.
Type: Boolean
Default: true
cacheDir
The path to the root of the cache directory. This directory is used to store all drivers that are downloaded when attempting to start a session.
Type: String
Default: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
WebdriverIO
گزینه های زیر (از جمله موارد ذکر شده در بالا) را می توان با WebdriverIO به صورت مستقل استفاده کرد:
automationProtocol
تعریف پروتکلی که می خواهید برای اتوماسیون مرورگر خود استفاده کنید. در حال حاضر فقط webdriver
و devtools
پشتیبانی می شوند، زیرا اینها فناوری های اصلی اتوماسیون مرورگر موجود هستند.
اگر میخواهید مرورگر را با استفاده از devtools
خودکار کنید، مطمئن شوید که بسته NPM را نصب کردهاید ($ npm install --save-dev devtools
).
Type: String
Default: webdriver
baseUrl
با تنظیم یک URL پایه، فراخوانی دستور های url
را کوتاه کنید.
- اگر پارامتر
url
شما با/
شروع می شود،baseUrl
به قبل اضافه می شود (به جز مسیرbaseUrl
، اگر مسیری وجود داشته باشد دارد). - اگر پارامتر
url
بدون شماتیک یا/
(مثلsome/path
) شروع می شود، سپسbaseUrl
کامل مستقیما اضافه می شود.
Type: String
Default: null
waitforTimeout
مهلت زمانی پیشفرض برای همه دستورات waitFor*
. (به کوچک بودن حرف f
در نام گزینه توجه کنید.) این مهلت فقط بر دستوراتی که با waitFor*
شروع می شوند و در زمان انتظار پیش فرض آنها تأثیر می گذارد.
برای افزایش زمان برای یک تست، لطفاً به اسناد فریمورک مراجعه کنید.
Type: Number
Default: 5000
waitforInterval
فاصله پیشفرض برای همه دستورات waitFor*
برای بررسی اینکه آیا وضعیت مورد انتظار (مثلاً visibility) تغییر کرده است یا خیر.
Type: Number
Default: 500
region
If running on Sauce Labs, you can choose to run tests between different data centers: US or EU. برای تغییر منطقه خود به اتحادیه اروپا، region: 'eu'
را به پیکربندی خود اضافه کنید.
توجه: این فقط در صورتی تأثیر می گذارد که user
و key
را ارائه دهید که به حساب Sauce Labs شما متصل شده باشند.
Type: String
Default: us
(فقط برای vm و یا em/شبیه سازها)
Testrunner Options
گزینههای زیر (از جمله موارد ذکر شده در بالا) فقط برای اجرای WebdriverIO با تستکننده WDIO تعریف شدهاند:
specs
تعریف spec ها برای اجرای تست. یک الگوی glob را برای مطابقت با چندین فایل به صورت یکباره مشخص کنید، یا یک glob یا مجموعه ای از مسیرها را در یک آرایه جمع کنید تا آنها را در یک worker process اجرا کنید. All paths are seen as relative from the config file path.
Type: (String | String[])[]
Default: []
exclude
مستثنی کردن spec ها برای اجرای تست. همه مسیرها از مسیر فایل پیکربندی به صورت نسبی دیده می شوند.
Type: String[]
Default: []
suites
یک شی که مجموعه های مختلفی را توصیف می کند، که سپس می توانید با گزینه --suite
در wdio
CLI آن را مشخص کنید.
Type: Object
Default: {}
capabilities
مانند بخش capabilities
که در بالا توضیح داده شد. با این تفاوت که گزینه ای وجود دارد برای تعیین گزینه multiremote
شیء و یا چندین WebDriver Session در یک آرایه برای اجرای موازی.
میتوانید همان قابلیتهای خاص سازنده و مرورگر را که در بالا توضیح داده شده است، اعمال کنید.
Type: Object
|Object[]
Default: [{ maxInstances: 5, browserName: 'firefox' }]
maxInstances
حداکثر تعداد کل worker ها در حال اجرا موازی.
توجه: ممکن است عددی به زیادی 100
باشد، زمانی که تست ها بر روی برخی از فروشندگان خارجی مانند دستگاه های Sauce Labs انجام می شود. در آنجا، تست ها بر روی یک ماشین واحد آزمایش نمی شوند، بلکه روی چندین ماشین مجازی تست می شوند. اگر قرار است آزمایشها روی یک ماشین توسعه محلی اجرا شوند، از عددی استفاده کنید که معقولتر است، مانند 4
، 3
، یا 5
. اساساً، این تعداد مرورگرهایی است که همزمان راهاندازی میشوند و آزمایشهای شما را همزمان اجرا میکنند، بنابراین بستگی به میزان رم دستگاه شما و تعداد برنامههای دیگر در حال اجرا در دستگاه شما دارد.
Type: Number
Default: 100
maxInstancesPerCapability
حداکثر تعداد کل worker ها در حال اجرا موازی در هر capability.
Type: Number
Default: 100
injectGlobals
اضافه کردن متغییر های جهانی WebdriverIO (مثلاً browser
، $
و $$
). اگر روی false
تنظیم کنید، باید آنها را از @wdio/globals
وارد کنید، به عنوان مثال:
import { browser, $, $$, expect } from '@wdio/globals'
توجه: WebdriverIO کاری با تزریق متغیر های جهانی فریمورک ها ندارد.
Type: Boolean
Default: true
bail
اگر می خواهید اجرای تستهای شما پس از تعداد معینی از شکست متوقف شود، از bail
استفاده کنید. (به طور پیشفرض روی 0
قرار میگیرد، که همه تستها را بدون توجه به هر اتفاقی اجرا میکند.) توجه: لطفاً توجه داشته باشید که هنگام استفاده از اجرا کننده تست شخص ثالث (مانند موکا)، ممکن است به پیکربندی اضافی نیاز باشد.
Type: Number
Default: 0
(don't bail; run all tests)