Перейти до основного вмісту

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 відвідайте домашню сторінку.

Welcome! How can I help?

WebdriverIO AI Copilot