LambdaTest サービス
wdio-lambdatest-service は、サードパーティのパッケージです。詳細については GitHub | npm をご覧ください。
LambdaTest ユーザー向けにトンネルとジョブメタデータを管理する WebdriverIO サービスです。
インストール
npm i wdio-lambdatest-service --save-dev
WebdriverIO
のインストール方法はこちらをご覧ください。
設定
WebdriverIO には標準で LambdaTest のサポートが組み込まれています。wdio.conf.js
ファイルに user
と key
を設定するだけです。アプリ自動化機能を有効にするには、wdio.conf.js
ファイルに product: 'appAutomation'
を設定します。このサービスプラグインは LambdaTest トンネル をサポートしています。この機能を有効にするには tunnel: true
も設定してください。
// wdio.conf.js
exports.config = {
// ...
user: process.env.LT_USERNAME,
key: process.env.LT_ACCESS_KEY,
logFile : './logDir/api.log',
product : 'appAutomation',
services: [
['lambdatest', {
tunnel: true
}]
],
// ...
};
自動化ダッシュボードにテストエラーの説明を表示するには
自動化ダッシュボードにテストエラーの説明を表示するには、wdio.conf.js
に ltErrorRemark: true
を追加するだけです。
ローカルまたはURLからアプリをアップロードするには
必要な設定を wdio.conf.js
に追加することで、ローカルまたはホストされたアプリのURLから android
または ios
アプリをアップロードできます。同じ実行でテスト用にアップロードしたアプリを使用するには、enableCapability = true
を設定します。これにより、capabilities にアプリのURL値が設定されます。
// wdio.conf.js
services: [
[
"lambdatest",
{
tunnel: true,
app_upload: true,
app:{
app_name : "xyz", //希望するアプリ名を指定
app_path : "/path/to/your/app/file", //ローカルアプリの場所を指定
// または
app_url : "https://example.test_android.apk", //アプリがホストまたは保存されているURLを指定
custom_id : "12345", //希望するカスタムIDを指定
enableCapability : true
}
}
]
]
オプション
LambdaTest サービスの認証を行うには、設定に user
と key
オプションが含まれている必要があります。
tunnel
LambdaTest クラウドからの接続をコンピュータ経由でルーティングするには、これを true に設定します。また、ブラウザの capabilities で tunnel
を true に設定する必要があります。
型: Boolean
デフォルト: false
lambdatestOpts
指定されたオプションは LambdaTest トンネルに渡されます。
型: Object
デフォルト: {}
以下は、利用可能なすべてのオプションの包括的なリストです:
tunnelName
使用するカスタム LambdaTest トンネル名を指定します。
例:
{"tunnelName": "my_custom_tunnel"}
port
LambdaTest トンネルをアクティブにするポート。
例:
{"port": 33000}
user
LambdaTest ユーザー名。
例:
{"user": "your_username"}
key
LambdaTest アクセスキー。
例:
{"key": "your_access_key"}
verbose
すべてのプロキシリクエストを標準出力にログ出力するかどうか。
例:
{"verbose": true}
logFile
LambdaTest トンネルログファイルの場所。
例:
{"logFile": "/path/to/log/file"}
config
使用する設定ファイルのパス。 例:
{"config": "/path/to/config/file"}
dir
トンネルポートでファイルサーバーによって提供されるローカルディレクトリを指定します。
例:
{"dir": "/path/to/local/directory"}
proxyHost
トンネルプロキシポートのホスト名を指定します。
例:
{"proxyHost": "proxy.example.com"}
proxyUser
トンネルプロキシポートのユーザー名を指定します。
例:
{"proxyUser": "your_proxy_username"}
proxyPass
トンネルプロキシポートのパスワードを指定します。
例:
{"proxyPass": "your_proxy_password"}
proxyPort
トンネルプロキシがアクティブになるポート番号を指定します。
例:
{"proxyPort": 8080}
egressOnly
送信リクエストにのみプロキシ設定を使用します。
例:
{"egressOnly": true}
ingressOnly
指定されたプロキシ経由で着信トラフィックのみをルーティングします。
例:
{"ingressOnly": true}
pacfile
ローカルテストで PAC(プロキシ自動設定)を使用するには、 PAC ファイルのパスを提供します。
例:
{"pacfile": "/path/to/pacfile"}
loadBalanced
LambdaTest トンネル用のロードバランシングを有効にします。
例:
{"loadBalanced": true}
mode
トンネルが実行するモード「ssh」または「ws」を指定します(デフォルトは「ssh」)。
例:
{"mode": "ssh"}
sshConnType
ssh 接続のタイプを指定します(over_22、over_443、over_ws)。--sshConnType を使用するには、最初に ––mode ssh フラグを指定してください。
例:
{"sshConnType": "over_22"}
maxSSHConnections
トンネルクライアントからトンネルサーバーへの SSH 接続を増やします。最大許容値は 30 です。
例:
{"maxSSHConnections": 2}
sharedTunnel
チームメンバー間でトンネルを共有します。
例:
{"sharedTunnel": true}
env
LambdaTest トンネルが実行される環境。
例:
{"env": "production"}
infoAPIPort
指定したポートでトンネル情報 APIを公開します。
例:
{"infoAPIPort": 8080}
callbackURL
トンネルステータスのコールバック URL。
例:
{"callbackURL": "https://example.com/callback"}
allowHosts
トンネル経由でルーティングするホストのカンマ区切りリスト。それ以外はインターネット経由でルーティングされます。
例:
{"allowHosts": "example.com,anotherexample.com"}
bypassHosts
トンネルから除外するホストのカンマ区切りリスト。これらはインターネット経由でルーティングされます。
例:
{"bypassHosts": "example.com,anotherexample.com"}
clientCert
mTLS クライアント証明書のファイルパス。
例:
{"clientCert": "/path/to/client_certificate"}
clientKey
mTLS クライアントキーのファイルパス。
例:
{"clientKey": "/path/to/client_key"}
mTLSHosts
mTLS ホストのカンマ区切りリスト。
例:
{"mTLSHosts": "example.com,anotherexample.com"}
dns
DNS サーバーのカンマ区切りリスト。
例:
{"dns": "8.8.8.8,8.8.4.4"}
mitm
LambdaTest トンネルの MITM(中間者) モードを有効にします。
例:
{"mitm": true}
ntlm
通信またはトランスポートの目的で Microsoft NTLM(Windows NT LAN Manager)認証を使用します。
例:
{"ntlm": true}
pidfile
プロセス ID が書き込まれる pidfile のパス。
例:
{"pidfile": "/path/to/pidfile"}
usePrivateIp
リモートアドレスをクライアントマシンの内部 IP に設定します。
例:
{"usePrivateIp": true}
これらのオプションの詳細についてはこちらをご覧ください。
preferScenarioName
Cucumber のみ。単一のシナリオが実行された場合、セッション名をシナリオ名に設定します。 wdio-cucumber-parallel-execution で並列実行する場合に便利です。
型: Boolean
デフォルト: false
sessionNameFormat
セッション名のフォーマットをカスタマイズします。
型: Function
デフォルト (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
デフォルト (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle
sessionNameOmitTestTitle
Mocha のみ。セッション名にテストタイトルを追加しません。
型: Boolean
デフォルト: false
sessionNamePrependTopLevelSuiteTitle
Mocha のみ。セッション名の前にトップレベルスイートタイトルを追加します。
型: Boolean
デフォルト: false
setSessionName
セッション名を自動的に設定します。
型: Boolean
デフォルト: true
setSessionStatus
セッションステータス(合格/不合格)を自動的に設定します。
型: Boolean
デフォルト: true
ignoreTestCountInName
名前のテスト再試行回数を無視します
型: Boolean
デフォルト: false
useScenarioName
Cucumber 固有のテストのテスト名をシナリオ名として取得するには、wdio.conf.js
に useScenarioName: true
を追加するだけです。
コンパイルおよび公開する手順
- このリポジトリを git clone します。
- "npm install" を実行します
- "npm run build" を実行します
- 公開手順: "npm login" を実行します
- "npm publish --access public" を実行します
WebdriverIO の詳細については、ホームページをご覧ください。