Перейти к основному содержимому

Сервис 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'
// ИЛИ
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>'
// ИЛИ
app: {
id: 'bs://<app-id>'
}
}]
]

custom_id

используйте custom_id уже загруженных приложений

services: [
['browserstack', {
app: 'custom_id'
// ИЛИ
app: {
custom_id: 'custom_id'
}
}]
]

shareable_id

используйте shareable_id уже загруженных приложений

services: [
['browserstack', {
app: 'username/custom_id'
// ИЛИ
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 (passed/failed).

Тип: 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: Hostname/IP прокси, остальные опции прокси игнорируются, если эта опция отсутствует
  • proxyPort: Порт для прокси, по умолчанию 3128, когда используется -proxyHost
  • proxyUser: Имя пользователя для подключения к прокси (только Basic Auth)
  • proxyPass: Пароль для USERNAME, будет проигнорирован, если USERNAME пуст или не указан
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

Local Proxy

Для использования локального прокси в локальном тестировании -

  • localProxyHost: Hostname/IP прокси, остальные опции прокси игнорируются, если эта опция отсутствует
  • localProxyPort: Порт для прокси, по умолчанию 8081, когда используется -localProxyHost
  • localProxyUser: Имя пользователя для подключения к прокси (только Basic Auth)
  • localProxyPass: Пароль для USERNAME, будет проигнорирован, если USERNAME пуст или не указан
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (Proxy Auto-Configuration)

Для использования PAC (Proxy Auto-Configuration) в локальном тестировании -

  • pac-file: Абсолютный путь к файлу PAC (Proxy Auto-Configuration)
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