Browserstack Сервіс
Сервіс WebdriverIO, який керує локальним тунелем та метаданими завдань для користувачів BrowserStack.
Встановлення
Найпростіший спосіб — зберегти @wdio/browserstack-service
як devDependency у вашому package.json
через:
npm install @wdio/browserstack-service --save-dev
Інструкції щодо встановлення WebdriverIO
можна знайти тут.
Конфігурація
WebdriverIO має вбудовану підтримку BrowserStack. Ви повинні встановити user
та key
у вашому файлі wdio.conf.js
. Цей плагін сервісу надає підтримку для BrowserStack Tunnel. Встановіть також browserstackLocal: true
, щоб активувати цю функцію.
Звітування про статус сесії в BrowserStack буде відповідати налаштуванню strict
в опціях Cucumber.
// wdio.conf.js
export const config = {
// ...
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
},
browserstackLocal: true
}]
],
// ...
};
Опції
Для авторизації в сервісі BrowserStack ваша конфігурація повинна містити опції user
та key
.
testObservability
Test Observability — це розширений інструмент звітування про тести, який надає інформацію для покращення ваших автоматизованих тестів і допомагає швидше відлагоджувати. Він увімкнений за замовчуванням шляхом встановлення прапорця testObservability
як true
для всіх користувачів browserstack-service. Ви можете вимкнути це, встановивши прапорець testObservability
як false
.
Після завершення тестів ви можете відвідати Test Observability для відлагодження своїх збірок з додатковими даними, такими як аналіз унікальних помилок, автоматичне виявлення нестабільних тестів тощо.
Ви можете використовувати Test Observability, навіть якщо не запускаєте тести на інфраструктурі BrowserStack. Навіть якщо ви запускаєте тести в CI, на локальній машині або навіть на інших хмарних провайдерах, Test Observability все одно може генерувати інтелектуальні звіти та розширену аналітику ваших тестів.
Якщо ви хочете використовувати Test Observability без запуску тестів на інфраструктурі BrowserStack, ви можете налаштувати конфігурацію наступним чином:
// wdio.conf.js
export const config = {
// ...
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
}
}]
],
// ...
};
Ви можете вивчити всі функції Test Observability в цій пісочниці або прочитати більше про це тут.
browserstackLocal
Встановіть це значення як true, щоб увімкнути маршрутизацію з'єднань з хмари BrowserStack через ваш комп'ютер.
Тип: Boolean
За замовчуванням: false
forcedStop
Встановіть це значення як true, щоб примусово завершити процес BrowserStack Local при завершенні без очікування виклику зворотного виклику для зупинки BrowserStack Local. Це експериментальна функція і не повинна використовуватися всіма. В основному необхідно як обхідне рішення для цієї проблеми.
Тип: Boolean
За замовчуванням: false
app
Appium встановіть це зі шляхом до файлу додатка, доступного локально на вашій машині, щоб використовувати додаток як додаток для тестування для сесій Appium.
Тип: String
або JsonObject
За замовчуванням: undefined
Список доступних значень app:
path
Використовуйте локально доступний шлях до файлу додатка як додаток для тестування для Appium.
services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OR
app: {
path: '/path/to/local/app.apk'
}
}]
]
Передайте custom_id під час завантаження додатка.
services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]
id
Використовуйте URL додатка, повер нений після завантаження додатка до BrowserStack.
services: [
['browserstack', {
app: 'bs://<app-id>'
// OR
app: {
id: 'bs://<app-id>'
}
}]
]
custom_id
використовуйте custom_id вже завантажених додатків
services: [
['browserstack', {
app: 'custom_id'
// OR
app: {
custom_id: 'custom_id'
}
}]
]
shareable_id
використовуйте shareable_id вже завантажених додатків
services: [
['browserstack', {
app: 'username/custom_id'
// OR
app: {
shareable_id: 'username/custom_id'
}
}]
]
preferScenarioName
Тільки для Cucumber. Встановіть ім'я сесії BrowserStack Automate на ім'я сценарію, якщо виконується лише один сценарій. Корисно при паралельному запуску з wdio-cucumber-parallel-execution.
Тип: Boolean
За замовчуванням: false
sessionNameFormat
Налаштуйте формат імені сесії BrowserStack Automate.
Тип: Function
За замовчуванням (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
За замовчуванням (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle
sessionNameOmitTestTitle
Тільки для Mocha. Не додавати назву тесту до імені сесії BrowserStack Automate.
Тип: Boolean
За замовчуванням: false
sessionNamePrependTopLevelSuiteTitle
Тільки для Mocha. Додати назву верхньорівневого набору тестів до імені сесії BrowserStack Automate.
Тип: Boolean
За за мовчуванням: false
setSessionName
Автоматично встановлювати ім'я сесії BrowserStack Automate.
Тип: Boolean
За замовчуванням: true
setSessionStatus
Автоматично встановлювати статус сесії BrowserStack Automate (пройдено/не пройдено).
Тип: Boolean
За замовчуванням: true
buildIdentifier
buildIdentifier — це унікальний ідентифікатор для розрізнення кожного виконання, який додається до buildName. Виберіть формат вашого buildIdentifier з доступних виразів:
BUILD_NUMBER
: Генерує інкрементний лічильник з кожним виконаннямDATE_TIME
: Генерує часову мітку з кожним виконанням. Напр. 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]
Build Identifier підтримує використання одного або обох виразів разом з будь-якими іншими символами, що дозволяє налаштовувати параметри форматування.
opts
Опції BrowserStack Local.
Тип: Object
За замовчуванням: {}
Список доступних модифікаторів локального тестування, які передаються як opts:
Local Identifier
Якщо виконуєте одночасно кілька локальних тестових з'єднань, встановіть це унікально для різних процесів -
opts = { localIdentifier: "randomstring" };
Verbose Logging
Щоб увімкнути детальне логування -
opts = { verbose: "true" };
Примітка - Можливі значення для модифікатора 'verbose' — '1', '2', '3' та 'true'
Force Local
Щоб маршрутизувати весь трафік через локальну (вашу) машину -
opts = { forceLocal: "true" };
Folder Testing
Щоб тестувати локальну папку, а не внутрішній сервер, вкажіть шлях до папки як значення цієї опції -
opts = { f: "/my/awesome/folder" };
Force Start
Щоб завершити інші запущені екземпляри BrowserStack Local -
opts = { force: "true" };
Only Automate
Щоб вимкнути локальне тестування для Live та Screenshots і увімкнути лише Automate -
opts = { onlyAutomate: "true" };
Proxy
Щоб використовувати проксі для локального тестування -
- proxyHost: Ім'я хоста/IP проксі, інші опції проксі ігноруються, якщо ця опція відсутня
- proxyPort: Порт для проксі, за замовчуванням 3128, коли використовується -proxyHost
- proxyUser: Ім'я користувача для підключення до проксі (тільки базова аутентифік ація)
- proxyPass: Пароль для USERNAME, буде проігноровано, якщо USERNAME порожній або не вказано
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};
Local Proxy
Щоб використовувати локальний проксі в локальному тестуванні -
- localProxyHost: Ім'я хоста/IP проксі, інші опції проксі ігноруються, якщо ця опція відсутня
- localProxyPort: Порт для проксі, за замовчуванням 8081, коли використовується -localProxyHost
- localProxyUser: Ім'я користувача для підключення до проксі (тільки базова аутентифікація)
- localProxyPass: Пароль для USERNAME, буде проігноровано, якщо USERNAME порожній або не вказано
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};
PAC (Proxy Auto-Configuration)
Щоб використовувати PAC (Автоматична конфігурація проксі) в локальному тестуванні -
- pac-file: Абсолютний шлях до файлу PAC (Автоматична конфігурація проксі)
opts = { "pac-file": "<pac_file_abs_path>" };
Binary Path
За замовчуванням, обгортки BrowserStack local намагаються завантажити та виконати останню версію двійкового файлу BrowserStack у ~/.browserstack, поточному робочому каталозі або тимчасовій папці за порядком. Але ви можете перевизначити це, передавши аргумент -binarypath. Шлях для вказівки локального двійкового шляху -
opts = { binarypath: "/path/to/binary" };
Logfile
Щоб зберегти журнали у файл під час запуску з аргументом '-v', ви можете вказати шлях до файлу. За замовчуванням журнали зберігаються у файлі local.log у поточному робочому каталозі. Щоб вказати шлях до файлу, де будуть збережені журнали -
opts = { verbose: "true", logFile: "./local.log" };
Для отримання додаткової інформації про WebdriverIO відвідайте домашню сторінку.