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

クラウドサービスの使用

WebdriverIOでSauce Labs、Browserstack、TestingBot、LambdaTest、Perfectoなどのオンデマンドサービスを使用するのは非常に簡単です。必要なのは、サービスのuserkeyをオプションに設定するだけです。

オプションで、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(...)に渡される)に、Sauce Labsのユーザー名とアクセスキーをuserkeyとして設定することです。

また、任意のブラウザの機能としてオプションのテスト設定オプションをキー/値として渡すこともできます。

Sauce Connect

インターネットからアクセスできないサーバー(localhostなど)に対してテストを実行したい場合は、Sauce Connectを使用する必要があります。

これをサポートすることはWebdriverIOの範囲外なので、自分で起動する必要があります。

WDIOテストランナーを使用している場合は、wdio.conf.js@wdio/sauce-serviceをダウンロードして設定します。これはSauce Connectの実行を支援し、テストをSauceサービスに統合するための追加機能も提供します。

Travis CIとの連携

Travis CIは、各テストの前にSauce Connectを起動するサポートが組み込まれているので、その指示に従うことがオプションです。

その場合、各ブラウザのcapabilitiestunnel-identifierテスト設定オプションを設定する必要があります。TravisはデフォルトでこれをTRAVIS_JOB_NUMBER環境変数に設定します。

また、Sauce Labsでビルド番号ごとにテストをグループ化したい場合は、buildTRAVIS_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(...)に渡される)に、Browserstackの自動化ユーザー名とアクセスキーをuserkeyとして設定することです。

また、任意のブラウザの機能としてオプションのサポートされている機能をキー/値として渡すこともできます。browserstack.debugtrueに設定すると、セッションの画面録画が記録され、役立つ場合があります。

ローカルテスト

インターネットからアクセスできないサーバー(localhostなど)に対してテストを実行したい場合は、ローカルテストを使用する必要があります。

これをサポートすることはWebdriverIOの範囲外なので、自分で起動する必要があります。

ローカルを使用する場合は、機能にbrowserstack.localtrueに設定する必要があります。

WDIOテストランナーを使用している場合は、wdio.conf.js@wdio/browserstack-serviceをダウンロードして設定します。これは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(...)に渡される)に、TestingBotのユーザー名とシークレットキーをuserkeyとして設定することです。

また、任意のブラウザの機能としてオプションのサポートされている機能をキー/値として渡すこともできます。

ローカルテスト

インターネットからアクセスできないサーバー(localhostなど)に対してテストを実行したい場合は、ローカルテストを使用する必要があります。TestingBotは、インターネットからアクセスできないウェブサイトをテストできるようにするJavaベースのトンネルを提供しています。

彼らのトンネルサポートページには、これを起動して実行するために必要な情報が含まれています。

WDIOテストランナーを使用している場合は、wdio.conf.js@wdio/testingbot-serviceをダウンロードして設定します。これはTestingBotの実行を支援し、テストをTestingBotサービスに統合するための追加機能も提供します。

LambdaTest

LambdaTestとの統合も組み込まれています。

唯一の要件は、設定(wdio.conf.jsでエクスポートされるか、webdriverio.remote(...)に渡される)に、LambdaTestアカウントのユーザー名とアクセスキーをuserkeyとして設定することです。

また、任意のブラウザの機能としてオプションのサポートされている機能をキー/値として渡すこともできます。visualtrueに設定すると、セッションの画面録画が記録され、役立つ場合があります。

ローカルテスト用トンネル

インターネットからアクセスできないサーバー(localhostなど)に対してテストを実行したい場合は、ローカルテストを使用する必要があります。

これをサポートすることはWebdriverIOの範囲外なので、自分で起動する必要があります。

ローカルを使用する場合は、機能にtunneltrueに設定する必要があります。

WDIOテストランナーを使用している場合は、wdio.conf.jswdio-lambdatest-serviceをダウンロードして設定します。これは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",

Welcome! How can I help?

WebdriverIO AI Copilot