定義済みの capabilities を含む JSON ファイルを使うことで、SauceLabs と BrowserStack へ追加の設定パラメーターを渡せます。例えば、特定のブラウザーバージョンとタイムゾーンでテストを実行したい場合は、次の手順に従います。
- 次の JSON ファイルを作成します。
{ "screenResolution": "2560x1600", "timeZone": "New_York"}- CLI では次を追加します:
--sauce-options"<aboveConfigFileName>.json"
capabilities は次のような用途に利用できます。
- デバイス割り当ての制御
- Appium のバージョン制御
- 自動アラート承認の制御
- Grid 側で取得するデータの制御
- 動画キャプチャーの無効化
- ネットワークログの無効化
buildとprojectオプションによるテスト結果マッピングのカスタマイズ- リセット戦略の制御
Override rules for a capability (mobile)
JSON capabilities ファイルの設定は、次の設定を上書きします。
- CLI フラグ (
deviceName,osVersion) - Mobile Config
autoGrantPermissions、AutoAcceptAlerts、動画キャプチャー無効化などのデフォルト値
SauceLabs
Web の場合:
CLI に次を追加します: --sauce-options "config_saucelabs.json" ファイルの例:
{ "browserName": "Chrome", "browserVersion": "latest", "platformName": "Windows 10", "sauce:options": { "screenResolution": "1920x1080", "extendedDebugging": true }}パラメーターの詳細は、SauceLabs の公式ドキュメントを参照してください。
https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options
Mobile の場合:
- プレフィックスなしの W3C 形式で Appium の capabilities と SauceLabs オプションを指定します。
{ "deviceName": "Samsung Galaxy S10+", "platformVersion": "12", "autoGrantPermissions": false, "sauce:options": { "build": "build from json file", "name": "test json file caps" }}Browserstack
Web の場合:
CLI に次を追加します: --browserstack-options "config_browserstack.json" 次はサポートされる代表的な上書きパラメーターの例です。
{ "project": "my project", "build": "build 4.5", "browserstack.debug": false, "browserstack.console": "info", "browserstack.networkLogs": true, "browserstack.video": false, "browserstack.timezone": "New_York", "browserstack.selenium_version": "3.5.2", "browser_version": 61, "resolution": "2048x1536"}パラメーターの詳細は、BrowserStack の公式ドキュメントを参照してください。
https://www.browserstack.com/automate/capabilities
Mobile の場合:
- Appium の capabilities にはプレフィックスなしの W3C 形式を使用します。
- BrowserStack の capabilities には、レガシー (Wire JSON) 形式を使用します。
BrowserStack オプション の JSON ファイル例:
{ // project と build は修正が必要(W3C 形式では projectName と buildName へ変更) "project": "json-project-test", "build": "json-build-test", "platformVersion": "12", "deviceName": " Google Pixel 7", "browserstack.debug": false, "browserstack.console": "info", "browserstack.networkLogs": true, "browserstack.video": false}