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

設定

セットアップタイプ(例:生のプロトコルバインディング、スタンドアロンパッケージとしてのWebdriverIO、またはWDIOテストランナーの使用)に基づいて、環境を制御するために利用できるオプションのセットが異なります。

WebDriverオプション

次のオプションは、webdriverプロトコルパッケージを使用する場合に定義されます。

protocol

ドライバサーバーと通信する際に使用するプロトコル。

型: String
デフォルト: http

hostname

ドライバサーバーのホスト。

型: String
デフォルト: 0.0.0.0

port

ドライバサーバーが稼働しているポート。

型: Number
デフォルト: undefined

path

ドライバサーバーエンドポイントへのパス。

型: String
デフォルト: /

queryParams

ドライバサーバーに伝播されるクエリパラメータ。

型: Object
デフォルト: undefined

user

クラウドサービスのユーザー名(Sauce LabsBrowserstackTestingBot、またはLambdaTestアカウントでのみ機能します)。設定した場合、WebdriverIOは自動的に接続オプションを設定します。クラウドプロバイダーを使用しない場合は、他のWebDriverバックエンドを認証するために使用できます。

型: String
デフォルト: undefined

key

クラウドサービスのアクセスキーまたはシークレットキー(Sauce LabsBrowserstackTestingBot、またはLambdaTestアカウントでのみ機能します)。設定した場合、WebdriverIOは自動的に接続オプションを設定します。クラウドプロバイダーを使用しない場合は、他のWebDriverバックエンドを認証するために使用できます。

型: String
デフォルト: undefined

capabilities

WebDriverセッションで実行したいケイパビリティを定義します。詳細については、WebDriverプロトコルを確認してください。WebDriverプロトコルをサポートしない古いドライバを実行する場合は、セッションを正常に実行するためにJSONWireProtocolケイパビリティを使用する必要があります。

WebDriverベースのケイパビリティに加えて、リモートブラウザまたはデバイスへのより深い設定を可能にするブラウザ固有およびベンダー固有のオプションを適用できます。これらは、対応するベンダーのドキュメントに記載されています。例:

さらに、便利なユーティリティとして、Sauce Labsの自動テスト構成ツールがあります。これにより、必要なケイパビリティをクリックしてオブジェクトを作成できます。

型: Object
デフォルト: null

{
browserName: 'chrome', // options: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // browser version
platformName: 'Windows 10' // OS platform
}

モバイルデバイスでWebテストまたはネイティブテストを実行している場合、capabilitiesはWebDriverプロトコルとは異なります。詳細については、Appiumドキュメントを参照してください。

logLevel

ログ出力の詳細度。

型: String
デフォルト: info
オプション: trace | debug | info | warn | error | silent

outputDir

すべてのテストランナーログファイル(レポーターログとwdioログを含む)を保存するディレクトリ。設定されていない場合、すべてのログはstdoutにストリーミングされます。ほとんどのレポーターはstdoutにログを記録するように作られているため、レポートをファイルにプッシュすることがより理にかなっている特定のレポーター(たとえば、junitレポーターなど)にのみこのオプションを使用することをお勧めします。

スタンドアロンモードで実行する場合、WebdriverIOによって生成されるログはwdioログのみです。

型: String
デフォルト: null

connectionRetryTimeout

ドライバまたはグリッドへのWebDriverリクエストのタイムアウト。

型: Number
デフォルト: 120000

connectionRetryCount

Seleniumサーバーへのリクエスト再試行の最大回数。

型: Number
デフォルト: 3

agent

カスタムhttp/https/http2エージェントを使用してリクエストを行うことができます。

型: Object
デフォルト

{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}

headers

すべてのWebDriverリクエストに渡すカスタムheadersを指定します。Selenium GridでBasic認証が必要な場合は、このオプションを使用してWebDriverリクエストを認証するためのAuthorizationヘッダーを渡すことをお勧めします。例:

import { Buffer } from 'buffer';
// Read the username and password from environment variables
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;

// Combine the username and password with a colon separator
const credentials = `${username}:${password}`;
// Encode the credentials using Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');

export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}

型: Object
デフォルト: {}

transformRequest

WebDriverリクエストが行われる前に、HTTPリクエストオプションをインターセプトする関数

型: (RequestOptions) => RequestOptions
デフォルト: なし

transformResponse

WebDriver応答が到着した後、HTTP応答オブジェクトをインターセプトする関数。関数には、最初の引数として元の応答オブジェクト、2番目の引数として対応するRequestOptionsが渡されます。

型: (Response, RequestOptions) => Response
デフォルト: なし

strictSSL

SSL証明書が有効である必要がないかどうか。環境変数としてSTRICT_SSLまたはstrict_sslで設定できます。

型: Boolean
デフォルト: true

enableDirectConnect

Appiumダイレクト接続機能を有効にするかどうか。フラグが有効になっている間、応答に適切なキーがない場合、何も行いません。

型: Boolean
デフォルト: true

cacheDir

キャッシュディレクトリのルートへのパス。このディレクトリは、セッションの開始を試みるときにダウンロードされるすべてのドライバを保存するために使用されます。

型: String
デフォルト: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()


WebdriverIO

次のオプション(上記にリストされているオプションを含む)は、スタンドアロンのWebdriverIOで使用できます。

automationProtocol

非推奨

WebdriverIOは、WebDriverのようなインターフェースを介した自動化プロトコルとしてのChrome Devtoolsの使用を非推奨としています。代わりに、webdriverを使用する必要があります。

ブラウザ自動化に使用するプロトコルを定義します。現在、利用可能な主要なブラウザ自動化技術であるwebdriverdevtoolsのみがサポートされています。

devtoolsを使用してブラウザを自動化する場合は、NPMパッケージがインストールされていることを確認してください($ npm install --save-dev devtools)。

型: String
デフォルト:webdriver

baseUrl

ベースURLを設定することで、urlコマンドの呼び出しを短縮します。

  • urlパラメータが/で始まる場合、baseUrlbaseUrlにパスがある場合はパスを除く)が先頭に追加されます。
  • urlパラメータがスキームまたは/なし(some/pathなど)で始まる場合、完全なbaseUrlが直接先頭に追加されます。

型: String
デフォルト: null

waitforTimeout

すべてのwaitFor*コマンドのデフォルトのタイムアウト。(オプション名に小文字のfがあることに注意してください。)このタイムアウトは、waitFor*で始まるコマンドとそのデフォルトの待機時間にのみ影響します。

テストのタイムアウトを増やすには、フレームワークのドキュメントを参照してください。

型: Number
デフォルト:5000

waitforInterval

期待される状態(例:可視性)が変更されたかどうかを確認するための、すべてのwaitFor*コマンドのデフォルトの間隔。

型: Number
デフォルト:500

region

Sauce Labsで実行している場合、異なるデータセンター(USまたはEU)間でテストを実行するように選択できます。リージョンをEUに変更するには、構成にregion: 'eu'を追加します。

注意:これは、Sauce Labsアカウントに接続されているuserオプションとkeyオプションを指定した場合にのみ有効です。

型: String
デフォルト:us

(VMまたはエミュレーター/シミュレーターの場合のみ)


Testrunner Options

以下のオプション(上記のオプションを含む)は、WDIOテストランナーでWebdriverIOを実行する場合にのみ定義されます。

specs

テスト実行の仕様を定義します。グロブパターンを指定して複数のファイルを一度に一致させるか、グロブまたはパスのセットを配列にラップして、単一のワーカープロセス内で実行することができます。すべてのパスは、構成ファイルのパスからの相対パスとして認識されます。

タイプ:(String | String[])[]
デフォルト:[]

exclude

テスト実行から仕様を除外します。すべてのパスは、構成ファイルのパスからの相対パスとして認識されます。

タイプ:String[]
デフォルト:[]

suites

さまざまなスイートを記述したオブジェクト。これは、wdio CLIで--suiteオプションを指定して指定できます。

型: Object
デフォルト: {}

capabilities

上記のcapabilitiesセクションと同じですが、multiremoteオブジェクト、または並列実行のための配列内の複数のWebDriverセッションを指定するオプションがあります。

上記で定義されているのと同じベンダーおよびブラウザ固有の機能も適用できます。

タイプ:Object|Object[]
デフォルト:[{ maxInstances: 5, browserName: 'firefox' }]

maxInstances

合計で並列実行するワーカーの最大数。

注意:Sauce Labsのマシンのような一部の外部ベンダーでテストを実行する場合、100もの高い数値になる可能性があります。そこでは、テストは単一のマシンではなく、複数のVMでテストされます。テストをローカルの開発マシンで実行する場合は、34、または5などのより適切な数値を使用してください。基本的に、これは同時に起動してテストを実行するブラウザの数なので、マシンにどれだけのRAMがあるか、およびマシンで他のアプリがどれだけ実行されているかによって異なります。

型: Number
デフォルト:100

maxInstancesPerCapability

機能ごとの合計で並列実行するワーカーの最大数。

型: Number
デフォルト:100

injectGlobals

WebdriverIOのグローバル変数(例:browser$$$)をグローバル環境に挿入します。falseに設定した場合、@wdio/globalsからインポートする必要があります(例:)。

import { browser, $, $$, expect } from '@wdio/globals'

注:WebdriverIOは、テストフレームワーク固有のグローバル変数の注入を処理しません。

型: Boolean
デフォルト: true

bail

特定の数のテスト失敗後にテスト実行を停止したい場合は、bailを使用します。(デフォルトは0で、テスト結果に関係なくすべてのテストを実行します。)注意:このコンテキストでのテストは、単一のスペックファイル(MochaまたはJasmineを使用する場合)内のすべてのテスト、またはフィーチャーファイル(Cucumberを使用する場合)内のすべてのステップです。単一のテストファイルのテスト内でbailの動作を制御する場合は、利用可能なフレームワークオプションを参照してください。

型: Number
デフォルト:0(bailしない。すべてのテストを実行する)

specFileRetries

スペックファイル全体が失敗した場合に、スペックファイル全体を再試行する回数。

型: Number
デフォルト:0

specFileRetriesDelay

スペックファイルの再試行試行間の遅延(秒単位)

型: Number
デフォルト:0

specFileRetriesDeferred

再試行されたスペックファイルをすぐに再試行するか、キューの最後に延期するかどうか。

型: Boolean
デフォルト: true

groupLogsByTestSpec

ログ出力ビューを選択します。

falseに設定すると、異なるテストファイルからのログがリアルタイムで出力されます。並列で実行する場合、異なるファイルからのログ出力が混ざる可能性があることに注意してください。

trueに設定すると、ログ出力はテストスペックごとにグループ化され、テストスペックが完了したときにのみ出力されます。

デフォルトでは、ログがリアルタイムで出力されるようにfalseに設定されています。

型: Boolean
デフォルト:false

services

サービスは、対応したくない特定のジョブを引き継ぎます。サービスは、ほとんど労力をかけずにテスト設定を強化します。

タイプ:String[]|Object[]
デフォルト:[]

framework

WDIOテストランナーで使用されるテストフレームワークを定義します。

型: String
デフォルト:mocha
オプション:mocha | jasmine

mochaOpts, jasmineOpts and cucumberOpts

特定のフレームワーク関連のオプション。どのオプションが利用可能かについては、フレームワークアダプタのドキュメントを参照してください。詳細については、フレームワークを参照してください。

型: Object
デフォルト:{ timeout: 10000 }

cucumberFeaturesWithLineNumbers

行番号付きのCucumberフィーチャのリスト(Cucumberフレームワークを使用する場合)。

タイプ:String[] デフォルト:[]

reporters

使用するレポーターのリスト。レポーターは文字列、または['reporterName', { /* reporter options */}]の配列にすることができます。ここで、最初の要素はレポーター名を持つ文字列で、2番目の要素はレポーターオプションを持つオブジェクトです。

タイプ:String[]|Object[]
デフォルト:[]

reporters: [
'dot',
'spec'
['junit', {
outputDir: `${__dirname}/reports`,
otherOption: 'foobar'
}]
]

reporterSyncInterval

レポーターが非同期でログを報告する場合(たとえば、ログがサードパーティベンダーにストリーミングされる場合)に、同期されているかどうかを確認する間隔を決定します。

型: Number
デフォルト:100(ミリ秒)

reporterSyncTimeout

テストランナーがエラーをスローするまで、レポーターがすべてのログのアップロードを完了するまでの最大時間を決定します。

型: Number
デフォルト:5000(ミリ秒)

execArgv

子プロセスを起動するときに指定するNode引数。

タイプ:String[]
デフォルト: null

filesToWatch

--watchフラグを使用して実行するときに、テストランナーに他のファイル(たとえば、アプリケーションファイル)も監視させるグロブ対応の文字列パターンのリスト。デフォルトでは、テストランナーはすでにすべてのスペックファイルを監視しています。

タイプ:String[]
デフォルト:[]

updateSnapshots

スナップショットを更新する場合はtrueに設定します。理想的には、CLIパラメータの一部として使用します(例:wdio run wdio.conf.js --s)。

タイプ:'new' | 'all' | 'none'
デフォルト:提供されておらず、テストがCIで実行される場合はnone、提供されていない場合はnew、それ以外の場合は提供されたもの

resolveSnapshotPath

デフォルトのスナップショットパスをオーバーライドします。たとえば、テストファイルの隣にスナップショットを保存する場合。

wdio.conf.ts
export const config: WebdriverIO.Config = {
resolveSnapshotPath: (testPath, snapExtension) => testPath + snapExtension,
}

タイプ:(testPath: string, snapExtension: string) => string
デフォルト:スナップショットファイルをテストファイルの隣の__snapshots__ディレクトリに保存します

tsConfigPath

WDIOはtsxを使用してTypeScriptファイルをコンパイルします。TSConfigは現在の作業ディレクトリから自動的に検出されますが、ここでカスタムパスを指定するか、TSX_TSCONFIG_PATH環境変数を設定することで指定できます。

tsxのドキュメントを参照してください:https://tsx.is/usage#custom-tsconfig-json-path

型: String
デフォルト: null

Hooks

WDIOテストランナーでは、テストライフサイクルの特定のタイミングでトリガーされるフックを設定できます。これにより、カスタムアクション(たとえば、テストが失敗した場合のスクリーンショットの撮影)が可能になります。

すべてのフックには、ライフサイクルに関する特定の情報(たとえば、テストスイートまたはテストに関する情報)がパラメータとして含まれています。すべてのフックプロパティの詳細については、設定例を参照してください。

注意:一部のフック(onPrepareonWorkerStartonWorkerEnd、およびonComplete)は別のプロセスで実行されるため、ワーカープロセス内にある他のフックとグローバルデータを共有できません。

onPrepare

すべてのワーカーが起動される前に一度実行されます。

パラメータ

  • configobject):WebdriverIO設定オブジェクト
  • paramobject[]):機能の詳細のリスト

onWorkerStart

ワーカープロセスが生成される前に実行され、そのワーカーの特定のサービスを初期化したり、ランタイム環境を非同期的に変更したりするために使用できます。

パラメータ

  • cidstring):機能ID(例:0-0)
  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • specs (string[]): ワーカープロセスで実行されるスペック
  • args (object): ワーカーの初期化時にメイン構成とマージされるオブジェクト
  • execArgv (string[]): ワーカープロセスに渡される文字列引数のリスト

onWorkerEnd

ワーカープロセスが終了した直後に実行されます。

パラメータ

  • cidstring):機能ID(例:0-0)
  • exitCode (number): 0 - 成功、1 - 失敗
  • specs (string[]): ワーカープロセスで実行されるスペック
  • retries (number): "スペックファイルごとのリトライの追加"で定義されているスペックレベルのリトライ回数

beforeSession

WebDriverセッションとテストフレームワークを初期化する直前に実行されます。これにより、ケーパビリティまたはスペックに応じて構成を操作できます。

パラメータ

  • configobject):WebdriverIO設定オブジェクト
  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • specs (string[]): ワーカープロセスで実行されるスペック

before

テストの実行が始まる前に実行されます。この時点で、browserのようなすべてのグローバル変数にアクセスできます。カスタムコマンドを定義するのに最適な場所です。

パラメータ

  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • specs (string[]): ワーカープロセスで実行されるスペック
  • browser (object): 作成されたブラウザ/デバイスセッションのインスタンス

beforeSuite

スイートの開始前に実行されるフック(Mocha/Jasmineのみ)

パラメータ

  • suite (object): スイートの詳細

beforeHook

スイート内のフックが開始されるに実行されるフック(例:MochaでbeforeEachを呼び出す前に実行されます)

パラメータ

  • test (object): テストの詳細
  • context (object): テストコンテキスト(CucumberにおけるWorldオブジェクトを表します)

afterHook

スイート内のフックが終了したに実行されるフック(例:MochaでafterEachを呼び出した後に実行されます)

パラメータ

  • test (object): テストの詳細
  • context (object): テストコンテキスト(CucumberにおけるWorldオブジェクトを表します)
  • result (object): フックの結果(errorresultdurationpassedretriesプロパティが含まれます)

beforeTest

テストの前に実行される関数(Mocha/Jasmineのみ)。

パラメータ

  • test (object): テストの詳細
  • context (object): テストが実行されたスコープオブジェクト

beforeCommand

WebdriverIOコマンドが実行される前に実行されます。

パラメータ

  • commandName (string): コマンド名
  • args (*): コマンドが受け取る引数

afterCommand

WebdriverIOコマンドが実行された後に実行されます。

パラメータ

  • commandName (string): コマンド名
  • args (*): コマンドが受け取る引数
  • result (number): 0 - コマンド成功、1 - コマンドエラー
  • error (Error): エラーオブジェクト(存在する場合)

afterTest

テスト(Mocha/Jasmine)が終了した後に実行される関数。

パラメータ

  • test (object): テストの詳細
  • context (object): テストが実行されたスコープオブジェクト
  • result.error (Error): テストが失敗した場合のエラーオブジェクト、それ以外の場合はundefined
  • result.result (Any): テスト関数の戻り値オブジェクト
  • result.duration (Number): テストの実行時間
  • result.passed (Boolean): テストが合格した場合true、それ以外の場合はfalse
  • result.retries (Object): MochaとJasmine、およびCucumberで定義された、単一テスト関連のリトライに関する情報。例:{ attempts: 0, limit: 0 }、参照
  • result (object): フックの結果(errorresultdurationpassedretriesプロパティが含まれます)

afterSuite

スイートが終了した後に実行されるフック(Mocha/Jasmineのみ)

パラメータ

  • suite (object): スイートの詳細

after

すべてのテストが完了した後に実行されます。テストからのすべてのグローバル変数に引き続きアクセスできます。

パラメータ

  • result (number): 0 - テスト合格、1 - テスト失敗
  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • specs (string[]): ワーカープロセスで実行されるスペック

afterSession

WebDriverセッションを終了した直後に実行されます。

パラメータ

  • configobject):WebdriverIO設定オブジェクト
  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • specs (string[]): ワーカープロセスで実行されるスペック

onComplete

すべてのワーカーがシャットダウンされ、プロセスが終了しようとしているときに実行されます。onCompleteフックでスローされたエラーは、テスト実行の失敗につながります。

パラメータ

  • exitCode (number): 0 - 成功、1 - 失敗
  • configobject):WebdriverIO設定オブジェクト
  • capsobject):ワーカーで生成されるセッションの機能を含みます
  • result (object): テスト結果を含む結果オブジェクト

onReload

リフレッシュが発生したときに実行されます。

パラメータ

  • oldSessionId (string): 古いセッションのセッションID
  • newSessionId (string): 新しいセッションのセッションID

beforeFeature

CucumberのFeatureの前に実行されます。

パラメータ

  • uri (string): Featureファイルへのパス
  • feature (GherkinDocument.IFeature): Cucumberのfeatureオブジェクト

afterFeature

CucumberのFeatureの後に実行されます。

パラメータ

  • uri (string): Featureファイルへのパス
  • feature (GherkinDocument.IFeature): Cucumberのfeatureオブジェクト

beforeScenario

CucumberのScenarioの前に実行されます。

パラメータ

  • world (ITestCaseHookParameter): ピクルとテストステップに関する情報を含むワールドオブジェクト
  • context (object): Cucumber Worldオブジェクト

afterScenario

CucumberのScenarioの後に実行されます。

パラメータ

  • world (ITestCaseHookParameter): ピクルとテストステップに関する情報を含むワールドオブジェクト
  • result (object): シナリオの結果を含む結果オブジェクト
  • result.passed (boolean): シナリオが合格した場合true
  • result.error (string): シナリオが失敗した場合のエラースタック
  • result.duration (number): シナリオの実行時間(ミリ秒単位)
  • context (object): Cucumber Worldオブジェクト

beforeStep

CucumberのStepの前に実行されます。

パラメータ

  • step (Pickle.IPickleStep): Cucumberのstepオブジェクト
  • scenario (IPickle): Cucumberのシナリオオブジェクト
  • context (object): Cucumber Worldオブジェクト

afterStep

CucumberのStepの後に実行されます。

パラメータ

  • step (Pickle.IPickleStep): Cucumberのstepオブジェクト
  • scenario (IPickle): Cucumberのシナリオオブジェクト
  • result: (object): ステップの結果を含む結果オブジェクト
  • result.passed (boolean): シナリオが合格した場合true
  • result.error (string): シナリオが失敗した場合のエラースタック
  • result.duration (number): シナリオの実行時間(ミリ秒単位)
  • context (object): Cucumber Worldオブジェクト

beforeAssertion

WebdriverIOのアサーションが発生する前に実行されるフック。

パラメータ

  • params: アサーション情報
  • params.matcherName (string): マッチャーの名前(例:toHaveTitle
  • params.expectedValue: マッチャーに渡される値
  • params.options: アサーションオプション

afterAssertion

WebdriverIOのアサーションが発生した後に実行されるフック。

パラメータ

  • params: アサーション情報
  • params.matcherName (string): マッチャーの名前(例:toHaveTitle
  • params.expectedValue: マッチャーに渡される値
  • params.options: アサーションオプション
  • params.result: アサーション結果

ようこそ! 何かお手伝いできますか?

WebdriverIO AI Copilot