سرویس ساس
سرویس WebdriverIO که ادغام بهتری با Sauce Labs ارائه میدهد. این سرویس میتواند برای موارد زیر استفاده شود:
- فضای ابری ماشین مجازی Sauce Labs (دسکتاپ وب/شبیهساز)
- فضای ابری دستگاه واقعی Sauce Labs (iOS و Android)
این سرویس میتواند متادیتای کار را بهروزرسانی کند ('name'*، 'passed'، 'tags'، 'public'، 'build'، 'custom-data') و در صورت نیاز Sauce Connect را اجرا میکند.
این سرویس چه کارهای دیگری برای شما انجام میدهد:
- بهطور پیشفرض، سرویس Sauce هنگام شروع کار، 'name' کار را بهروزرسانی میکند. این به شما امکان میدهد نام را در هر زمان بهروزرسانی کنید.
- میتوانید پارامتر
setJobName
را تعریف کنید و نام کار را مطابق با قابلیتها، گزینهها و عنوان مجموعه آزمون خود سفارشی کنید - سرویس Sauce همچنین استک خطای یک آزمون ناموفق را به برگه دستورات Sauce Labs ارسال میکند
- به شما امکان میدهد بهطور خودکار Sauce Connect را پیکربندی و اجرا کنید
- و نقاط زمینه را در لیست دستورات شما تنظیم میکند تا مشخص شود کدام دستورات در چه آزمونی اجرا شدهاند
نصب
سادهترین راه این است که @wdio/sauce-service
را به عنوان یک devDependency در package.json
خود نگه دارید:
npm install @wdio/sauce-service --save-dev
دستورالعملهای نصب WebdriverIO
را میتوانید اینجا بیابید.
پیکربندی
برای استفاده از سرویس برای ماشین مجازی دسکتاپ/شبیهساز و فضای ابری دستگاه واقعی، باید user
و key
را در فایل wdio.conf.js
خود تنظیم کنید. این بهطور خودکار از Sauce Labs برای اجرای آزمونهای یکپارچهسازی شما استفاده میکند. اگر آزمونهای خود را روی Sauce Labs اجرا میکنید، میتوانید منطقهای را که میخواهید آزمونهای خود را در آن اجرا کنید از طریق ویژگی region
مشخص کنید. راههای میانبر موجود برای مناطق us
(پیشفرض) و eu
هستند. این مناطق برای فضای ابری VM ساس لبز و فضای ابری دستگاه واقعی ساس لبز استفاده میشوند. اگر منطقه را مشخص نکنید، به طور پیشفرض us
خواهد بود.
اگر میخواهید WebdriverIO بهطور خودکار یک تونل Sauce Connect راهاندازی کند، باید sauceConnect: true
را تنظیم کنید. اگر میخواهید مرکز داده را به EU تغییر دهید، region:'eu'
را اضافه کنید زیرا مرکز داده US بهطور پیشفرض تنظیم شده است.
// wdio.conf.js
export const config = {
// ...
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
region: 'us', // یا 'eu'
services: [
['sauce', {
sauceConnect: true,
sauceConnectOpts: {
// ...
}
}]
],
// ...
};
اگر میخواهید از یک تونل Sauce Connect موجود استفاده کنید، فقط نیاز به ارائه یک tunnelName
دارید. اگر از یک تونل اشتراکی استفاده میکنید و شما کاربری نیستید که تونل را ایجاد کرده است، باید کاربر Sauce Labs که تونل را ایجاد کرده است مشخص کنید تا بتوانید از آن برای آزمون خود استفاده کنید. tunnelOwner
را در قابلیتها به این شکل اضافه کنید:
- Tunnel Name
- Tunnel Owner
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// گزینههای Sauce را میتوان در اینجا یافت https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'YourTunnelName',
// گزینههای نمونه
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// گزینههای Sauce را میتوان در اینجا یافت https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'TunnelName',
tunnelOwner: '<username of owner>,
// گزینههای نمونه
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
گزینههای سرویس Sauce
برای تأیید سرویس Sauce Labs، پیکربندی شما باید حاوی گزینه user
و key
باشد.
maxErrorStackLength
این سرویس بهطور خودکار استک خطا را هنگام شکست آزمون به Sauce Labs ارسال میکند. بهطور پیشفرض، فقط ۵ خط اول را ارسال میکند، اما در صورت نیاز میتوان آن را تغییر داد. توجه داشته باشید که خطوط بیشتر منجر به فراخوانیهای WebDriver بیشتری میشود که ممکن است اجرا را کند کند.
نوع: number
پیشفرض: 5
sauceConnect
اگر true
باشد، Sauce Connect را اجرا میکند و یک اتصال امن بین ماشین مجازی Sauce Labs که آزمونهای مرورگر شما را اجرا میکند، باز میکند.
نوع: Boolean
پیشفرض: false
sauceConnectOpts
گزینههای Sauce Connect را اعمال کنید (مثلاً برای تغییر تنظیمات شماره پورت یا فایل گزارش). برای اطلاعات بیشتر این لیست را ببینید.
توجه: هنگام مشخص کردن گزینهها، باید --
حذف شود. همچنین میتواند به camelCase تبدیل شود (مثلاً shared-tunnel
یا sharedTunnel
).
نوع: Object
پیشفرض: { }
uploadLogs
اگر true
باشد، این گزینه تمام فایلهای گزارش WebdriverIO را به پلتفرم Sauce Labs برای بررسی بیشتر آپلود میکند. مطمئن شوید که outputDir
را در پیکربندی wdio خود تنظیم کردهاید تا گزارشها در فایلها نوشته شوند، در غیر این صورت دادهها به stdout جریان مییابند و نمیتوانند آپلود شوند.
نوع: Boolean
پیشفرض: true
setJobName
به کاربران اجازه میدهد نام کار را بر اساس پارامترهای کارگر مانند پیکربندی WebdriverIO، قابلیتهای استفاده شده و عنوان اصلی مجموعه آزمون بهصورت پویا تنظیم کنند.
نوع: Function
پیشفرض: (config, capabilities, suiteTitle) => suiteTitle
لغو متادیتای نام تولیدشده
سرویس بهطور خودکار یک نام برای هر آزمون از نام مجموعه، نام مرورگر و سایر اطلاعات تولید میکند.
میتوانید با ارائه یک مقدار برای قابلیت مورد نظر name
، این را لغو کنید، اما این کار باعث میشود تمام آزمونها نام یکسانی داشته باشند.
برای اطلاعات بیشتر در مورد WebdriverIO، صفحه اصلی را ببینید.