Sauce Service
Сервіс WebdriverIO, що забезпечує кращу інтеграцію з Sauce Labs. Цей сервіс можна використовувати для:
- Хмари віртуальних машин Sauce Labs (Desktop Web/Emulator/Simulator)
- Хмари реальних пристроїв Sauce Labs (iOS та Android)
Він може оновлювати метадані завдання ('name'*, 'passed', 'tags', 'public', 'build', 'custom-data') та запускати Sauce Connect за потреби.
Що ще цей сервіс зробить для вас:
- За замовчуванням, Sauce Service оновлює 'name' завдання, коли воно починається. Це надає вам можливість оновлювати назву в будь-який момент часу.
- Ви можете визначити параметр
setJobName
та налаштувати назву завдання відповідно до ваших можливостей, опцій та назви набору тестів - Sauce Service також надсилає стек помилок невдалого тесту до вкладки команд 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
. Ці регіони використовуються для хмари віртуальних машин Sauce Labs та хмари реальних пристроїв Sauce Labs. Якщо ви не вказуєте регіон, за замовчуванням використовується us
.
Якщо ви хочете, щоб WebdriverIO автоматично запускав тунель Sauce Connect, вам потрібно встановити sauceConnect: true
. Якщо ви хочете змінити центр обробки даних на ЄС, додайте region:'eu'
, оскільки центр обробки даних у США встановлено за замовчуванням.
// 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 options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'YourTunnelName',
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'TunnelName',
tunnelOwner: '<username of owner>,
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
Опції Sauce Service
Для авторизації сервісу Sauce Labs ваша конфігурація повинна містити опції user
та key
.
maxErrorStackLength
Цей сервіс автоматично надсилає стек помилок до Sauce Labs, коли тест не вдається. За замовчуванням, він буде надсилати лише перші 5 рядків, але за потреби це можна змінити. Майте на увазі, що більше рядків призведе до більшої кількості викликів WebDriver, що може сповільнити виконання.
Тип: number
За замовчуванням: 5
sauceConnect
Якщо true
, запускає Sauce Connect і відкриває захищене з'єднання між віртуальною машиною Sauce Labs, яка запускає ваші тести браузера.
Тип: Boolean
За замовчуванням: false
sauceConnectOpts
Застосовуйте опції Sauce Connect (наприклад, щоб змінити номер порту або налаштування logFile). Дивіться цей список для отримання додаткової інформації.
ПРИМІТКА: При вказанні опцій --
слід опускати. Їх також можна перетворити на camelCase (наприклад, shared-tunnel
або sharedTunnel
).
Тип: Object
За замовчуванням: { }
uploadLogs
Якщо true
, ця опція завантажує всі файли журналів WebdriverIO на платформу Sauce Labs для подальшого огляду. Переконайтеся, що у вашій конфігурації wdio налаштовано outputDir
для запису журналів у файли, інакше дані будуть надсилатися до stdout і не зможуть бути завантажені.
Тип: Boolean
За замовчуванням: true
setJobName
Дозволяє користувачам динамічно встановлювати назву завдання на основі параметрів робочого процесу, таких як конфігурація WebdriverIO, використані можливості та оригінальна назва набору тестів.
Тип: Function
За замовчуванням: (config, capabilities, suiteTitle) => suiteTitle
Перевизначення створених метаданих назви
Сервіс автоматично генерує назву для кожного тесту з назви набору тестів, назви браузера та іншої інформації.
Ви можете перевизначити це, надавши значення для можливості name
, але це матиме побічний ефект у вигляді надання всім тестам однакової назви.
Для отримання додаткової інформації про WebdriverIO відвідайте домашню сторінку.