メインコンテンツへスキップ

Browserstackサービス

BrowserStackユーザー向けのローカルトンネルとジョブメタデータを管理するWebdriverIOサービス。

インストール

最も簡単な方法は、@wdio/browserstack-servicepackage.jsonのdevDependencyとして保持することです。以下を使用します。

npm install @wdio/browserstack-service --save-dev

WebdriverIOのインストール方法については、こちらをご覧ください。

設定

WebdriverIOは、BrowserStackをすぐにサポートしています。wdio.conf.jsファイルでuserkeyを設定する必要があります。このサービスプラグインは、BrowserStackトンネルをサポートします。この機能を有効にするには、browserstackLocal: trueも設定します。BrowserStackでのセッションステータスのレポートは、Cucumberオプションのstrict設定を尊重します。

// 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サービスを認証するには、設定にuserkeyオプションが含まれている必要があります。

testObservability

テスト可観測性は、自動化テストを改善するための洞察を提供し、より迅速なデバッグを支援する高度なテストレポートツールです。browserstack-serviceのすべてのユーザーに対してtestObservabilityフラグをtrueに設定することで、デフォルトで有効になります。testObservabilityフラグをfalseに設定することで、これを無効にできます。

テストの実行が終了したら、テスト可観測性にアクセスして、ユニークエラー分析、自動フレークテスト検出などの追加の洞察を使用してビルドをデバッグできます。

BrowserStackインフラストラクチャでテストを実行していない場合でも、テスト可観測性を使用できます。CI、ローカルマシン、または他のクラウドサービスプロバイダーでテストを実行している場合でも、テスト可観測性は、テストに関するインテリジェントなテストレポートと高度な分析を生成できます。

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"
}
}]
],
// ...
};

このサンドボックスでテスト可観測性のすべての機能を調べたり、こちらで詳細を確認したりできます。

browserstackLocal

BrowserStackクラウドからの接続をコンピューター経由でルーティングするには、これをtrueに設定します。

タイプ: Boolean
デフォルト: false

forcedStop

BrowserStackローカル停止コールバックが呼び出されるのを待たずに、完了時にBrowserStackローカルプロセスを強制終了するには、これをtrueに設定します。これは実験的なものであり、すべての人に使用すべきではありません。主にこの問題の回避策として必要です。

タイプ: Boolean
デフォルト: false

app

Appiumの場合、Appiumセッションのテスト対象アプリケーションとしてアプリを使用するには、マシンでローカルに利用可能なアプリファイルパスをこれで設定します。

タイプ: StringまたはJsonObject
デフォルト: undefined

利用可能なアプリ値のリスト

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

BrowserStackにアプリをアップロードした後に返されるアプリURLを使用します。

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に追加されるすべての実行を区別するためのユニークIDです。使用可能な式からbuildIdentifierの形式を選択します。

  • BUILD_NUMBER: 実行ごとにインクリメンタルカウンターを生成します
  • DATE_TIME: 実行ごとにタイムスタンプを生成します。例:05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

ビルド識別子は、他の文字とともに、いずれかまたは両方の式の使用をサポートし、カスタム書式設定オプションを有効にします。

opts

BrowserStackローカルオプション。

タイプ: Object
デフォルト: {}

optsとして渡される使用可能なローカルテスト修飾子のリスト

ローカル識別子

複数のローカルテスト接続を同時に行う場合は、異なるプロセスに対してこれを一意に設定します -

opts = { localIdentifier: "randomstring" };

詳細ログ

詳細ログを有効にするには -

opts = { verbose: "true" };

注意 - 「verbose」修飾子の可能な値は、「1」、「2」、「3」、および「true」です。

強制ローカル

すべてのトラフィックをローカル(自分)マシン経由でルーティングするには -

opts = { forceLocal: "true" };

フォルダーテスト

内部サーバーではなくローカルフォルダーをテストするには、このオプションの値としてフォルダーへのパスを指定します -

opts = { f: "/my/awesome/folder" };

強制開始

実行中の他のBrowserStackローカルインスタンスを強制終了するには -

opts = { force: "true" };

Automateのみ

Liveとスクリーンショットのローカルテストを無効にし、Automateのみを有効にするには -

opts = { onlyAutomate: "true" };

プロキシ

ローカルテストでプロキシを使用するには -

  • proxyHost: プロキシのホスト名/IP。このオプションがない場合、残りのプロキシオプションは無視されます。
  • proxyPort: プロキシのポート。-proxyHost が使用されている場合、デフォルトは 3128 です。
  • proxyUser: プロキシに接続するためのユーザー名(基本認証のみ)
  • proxyPass: USERNAME のパスワード。USERNAME が空または指定されていない場合は無視されます。
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

ローカルプロキシ

ローカルテストでローカルプロキシを使用するには -

  • localProxyHost: プロキシのホスト名/IP。このオプションがない場合、残りのプロキシオプションは無視されます。
  • localProxyPort: プロキシのポート。-localProxyHost が使用されている場合、デフォルトは 8081 です。
  • localProxyUser: プロキシに接続するためのユーザー名(基本認証のみ)
  • localProxyPass: USERNAME のパスワード。USERNAME が空または指定されていない場合は無視されます。
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (プロキシ自動構成)

ローカルテストで PAC (プロキシ自動構成) を使用するには -

  • pac-file: PAC (プロキシ自動構成) ファイルの絶対パス
opts = { "pac-file": "<pac_file_abs_path>" };

バイナリパス

デフォルトでは、BrowserStack ローカルラッパーは、~/.browserstack または現在の作業ディレクトリ、または tmp フォルダの順に BrowserStack バイナリの最新バージョンをダウンロードして実行しようとします。ただし、-binarypath 引数を渡すことでこれらを上書きできます。ローカルバイナリパスを指定するパス -

opts = { binarypath: "/path/to/binary" };

ログファイル

'-v' 引数を付けて実行中にログをファイルに保存するには、ファイルのパスを指定できます。デフォルトでは、ログは現在の作業ディレクトリの local.log ファイルに保存されます。ログが保存されるファイルのパスを指定するには -

opts = { verbose: "true", logFile: "./local.log" };

WebdriverIO の詳細については、ホームページを参照してください。

ようこそ!ご質問はありますか?

WebdriverIO AI Copilot