پیکربندی
بر اساس نوع راهاندازی (مثلاً استفاده از پروتکل خام، 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 Chromemoz:firefoxOptions
: برای Mozilla Firefoxms:edgeOptions
: برای Microsoft Edgesauce:options
: برای Sauce Labsbstack:options
: برای BrowserStackselenoid:options
: برای Selenoid
علاوه بر این، یک ابزار مفید، پیکربندی خودکار تست Sauce Labs است که به شما کمک میکند با کلیک کردن روی قابلیتهای مورد نظر خود، این شیء را ایجاد کنید.
نوع: Object
پیشفرض: null
مثال:
{
browserName: 'chrome', // گزینهها: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // نسخه مرورگر
platformName: 'Windows 10' // پلتفرم سیستم عامل
}
اگر تستهای وب یا بومی را روی دستگاههای موبایل اجرا میکنید، 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
حداکثر تعداد تلاشهای مجدد درخواست به سرور Selenium.
نوع: Number
پیشفرض: 3
agent
به شما امکان میدهد از یک عامل سفارشی http
/https
/http2
agent برای ارسال درخواستها استفاده کنید.
نوع: Object
پیشفرض:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
سرآیندهای سفارشی را برای ارسال در هر درخواست WebDriver مشخص کنید. اگر شبکه Selenium شما نیاز به احراز هویت پایه دارد، توصیه میکنیم یک سرآیند Authorization
را از طریق این گزینه برای احراز هویت درخواستهای WebDriver خود ارسال کنید، به عنوان مثال:
import { Buffer } from 'buffer';
// خواندن نام کاربری و رمز عبور از متغیرهای محیطی
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// ترکیب نام کاربری و رمز عبور با جداکننده دو نقطه
const credentials = `${username}:${password}`;
// رمزنگاری اعتبارنامهها با استفاده از Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
نوع: Object
پیشفرض: {}
transformRequest
تابعی که گزینههای درخواست HTTP را قبل از ارسال درخواست WebDriver رهگیری میکند.
نوع: (RequestOptions) => RequestOptions
پیشفرض: هیچ
transformResponse
تابعی که اشیاء پاسخ HTTP را پس از دریافت پاسخ WebDriver رهگیری میکند. این تابع با دریافت شیء پاسخ اصلی به عنوان اولین پارامتر و RequestOptions
مربوطه به عنوان پارامتر دوم فراخوانی میشود.
نوع: (Response, RequestOptions) => Response
پیشفرض: هیچ