クラウドサービスの利用
Sauce Labs、Browserstack、TestingBot、LambdaTest、PerfectoなどのオンデマンドサービスをWebdriverIOで利用するのは非常に簡単です。オプションでサービスのuser
とkey
を設定するだけです。
必要に応じて、build
などのクラウド固有の機能を設定することで、テストをパラメータ化することもできます。クラウドサービスをTravisでのみ実行する場合は、CI
環境変数を使用してTravisにいるかどうかを確認し、それに応じて設定を変更できます。
// wdio.conf.js
export let config = {...}
if (process.env.CI) {
config.user = process.env.SAUCE_USERNAME
config.key = process.env.SAUCE_ACCESS_KEY
}
Sauce Labs
Sauce Labsでリモートでテストを実行するように設定できます。
唯一の要件は、設定(wdio.conf.js
でエクスポートされるか、webdriverio.remote(...)
に渡される)でuser
とkey
をSauce Labsのユーザー名とアクセスキーに設定することです。
また、任意のブラウザの機能にキーと値のペアとして、オプションのテスト設定オプションを渡すこともできます。
Sauce Connect
インターネットからアクセスできないサーバー(localhost
など)に対してテストを実行する場合は、Sauce Connectを使用する必要があります。
これはWebdriverIOのサポート範囲外であるため、自分で起動する必要があります。
WDIOテストランナーを使用している場合は、@wdio/sauce-service
をダウンロードしてwdio.conf.js
で設定してください。これはSauce Connectの実行に役立ち、テストをSauceサービスに適切に統合するための追加機能を提供します。
Travis CIを使用する場合
ただし、Travis CIは各テストの前にSauce Connectを起動するためのサポートを提供しているため、その指示に従うこともできます。
その場合は、各ブラウザの`capabilities`に`tunnel-identifier`テスト設定オプションを設定する必要があります。Travisはデフォルトでこれを`TRAVIS_JOB_NUMBER`環境変数に設定します。
また、Sauce Labsでビルド番号ごとにテストをグループ化するには、`build`を`TRAVIS_BUILD_NUMBER`に設定します。
最後に、`name`を設定すると、このビルドのSauce Labsでのこのテストの名前が変更されます。WDIOテストランナーと`@wdio/sauce-service`を組み合わせて使用している場合、WebdriverIOはテストの適切な名前を自動的に設定します。
`capabilities`の例
browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER
タイムアウト
テストをリモートで実行しているため、タイムアウトを延長する必要がある場合があります。
テスト設定オプションとして`idle-timeout`を渡すことで、アイドルタイムアウトを変更できます。これは、接続を閉じる前にSauceがコマンド間で待機する時間を制御します。
BrowserStack
WebdriverIOには、Browserstack統合も組み込まれています。
唯一の要件は、設定(`wdio.conf.js`でエクスポートされるか、`webdriverio.remote(...)`に渡される)で`user`と`key`をBrowserstackの自動化ユーザー名とアクセスキーに設定することです。
任意のブラウザの機能にキーと値のペアとして、オプションのサポートされている機能を渡すこともできます。 `browserstack.debug`を`true`に設定すると、セッションのスクリーンキャストが記録され、役立つ場合があります。
ローカルテスト
インターネットからアクセスできないサーバー(`localhost`など)に対してテストを実行する場合は、ローカルテストを使用する必要があります。
これはWebdriverIOのサポート範囲外であるため、自分で起動する必要があります。
ローカルを使用する場合は、機能で`browserstack.local`を`true`に設定する必要があります。
WDIOテストランナーを使用している場合は、`@wdio/browserstack-service`をダウンロードして`wdio.conf.js`で設定してください。これはBrowserStackの実行に役立ち、テストをBrowserStackサービスに適切に統合するための追加機能を提供します。
Travis CIを使用する場合
Travisでローカルテストを追加する場合は、自分で起動する必要があります。
次のスクリプトは、バックグラウンドでダウンロードして起動します。テストを開始する前に、Travisでこれを実行する必要があります。
wget https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip
unzip BrowserStackLocal-linux-x64.zip
./BrowserStackLocal -v -onlyAutomate -forcelocal $BROWSERSTACK_ACCESS_KEY &
sleep 3
また、`build`をTravisビルド番号に設定することもできます。
`capabilities`の例
browserName: 'chrome',
project: 'myApp',
version: '44.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'browserstack.local': 'true',
'browserstack.debug': 'true'
TestingBot
唯一の要件は、設定(`wdio.conf.js`でエクスポートされるか、`webdriverio.remote(...)`に渡される)で`user`と`key`をTestingBotのユーザー名とシークレットキーに設定することです。
任意のブラウザの機能にキーと値のペアとして、オプションのサポートされている機能を渡すこともできます。
ローカルテスト
インターネットからアクセスできないサーバー(`localhost`など)に対してテストを実行する場合は、ローカルテストを使用する必要があります。TestingBotは、インターネットからアクセスできないWebサイトをテストできるようにするJavaベースのトンネルを提供しています。
TestingBotのトンネルサポートページには、これを起動して実行するために必要な情報が含まれています。
WDIOテストランナーを使用している場合は、`@wdio/testingbot-service`をダウンロードして`wdio.conf.js`で設定してください。これはTestingBotの実行に役立ち、テストをTestingBotサービスに適切に統合するための追加機能を提供します。
LambdaTest
LambdaTest統合も組み込まれています。
唯一の要件は、設定(`wdio.conf.js`でエクスポートされるか、`webdriverio.remote(...)`に渡される)で`user`と`key`をLambdaTestアカウントのユーザー名とアクセスキーに設定することです。
任意のブラウザの機能にキーと値のペアとして、オプションのサポートされている機能を渡すこともできます。 `visual`を`true`に設定すると、セッションのスクリーンキャストが記録され、役立つ場合があります。
ローカルテスト用トンネル
インターネットからアクセスできないサーバー(`localhost`など)に対してテストを実行する場合は、ローカルテストを使用する必要があります。
これはWebdriverIOのサポート範囲外であるため、自分で起動する必要があります。
ローカルを使用する場合は、機能で`tunnel`を`true`に設定する必要があります。
WDIO テストランナーを使用している場合は、wdio-lambdatest-service
をダウンロードし、wdio.conf.js
で設定してください。これは LambdaTest の実行を支援し、テストを LambdaTest サービスに適切に統合するための追加機能を提供します。
Travis CI を使用する
Travisでローカルテストを追加する場合は、自分で起動する必要があります。
次のスクリプトは、バックグラウンドでダウンロードして起動します。テストを開始する前に、Travisでこれを実行する必要があります。
wget http://downloads.lambdatest.com/tunnel/linux/64bit/LT_Linux.zip
unzip LT_Linux.zip
./LT -user $LT_USERNAME -key $LT_ACCESS_KEY -cui &
sleep 3
また、`build`をTravisビルド番号に設定することもできます。
`capabilities`の例
platform: 'Windows 10',
browserName: 'chrome',
version: '79.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'tunnel': 'true',
'visual': 'true'
Perfecto
wdio を Perfecto
と共に使用する場合、各ユーザーのセキュリティトークンを作成し、(他の機能に加えて)次のように機能構造に追加する必要があります。
export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],
さらに、次のようにクラウド設定を追加する必要があります。
hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",