# モバイルテスト設定

# プラットフォームテスト設定

appキーは.apkもしくは.ipaファイルの絶対パスもしくはhttp URL に設定する必要があります

# AndroidおよびiOS

gondola.json

{
  "output": "./results",
  "helpers": {
    "Appium": {
      "require": "./node_modules/@logigear/gondola/built/helper/AppiumEx",
      "smartWait": 5000,
      "app": "/Volumes/DATA/Projects/Test/CarRental/AUT/CarRental.apk",
        "desiredCapabilities": {
          "platformName": "android",
          "deviceName": "emulator"
        }
    },
    "GondolaHelper": {
      "require": "./node_modules/@logigear/gondola/built/helper/gondolahelper"
    }
  },
  "plugins": {
    "screenshotOnFail": {
      "enabled": "true"
    },
    "allure": {
      "enabled": "true"
    }
  },
  "tests": "./built/tests/*.js",
  "name": "SampleAndroidandiOS",
  "multiple": {
    "login": {
      "outputName": "login",
      "browsers": [
        {
          "browser": "iPhone 8",
          // set "app" to the absolute path of your ipa file.
          "app": "/Volumes/DATA/Projects/Test/CarRental/AUT/CarRental.ipa",
          "desiredCapabilities": {
            "automationName": "XCUITest",
            "platformName": "iOS",
            "platformVersion": "12.0",
            "deviceName": "iPhone 8",
            "connectHardwareKeyboard": false
          }
        },
        {
          "browser": "android-emulator",
          // set "app" to the absolute path of your apk file.
          "app": "/Volumes/DATA/Projects/Test/CarRental/AUT/CarRental.apk",
          "desiredCapabilities": {
            "platformName": "android",
            "deviceName": "emulator",
            "automationName": "UiAutomator2",
            "newCommandTimeout": 600
          }
        }
      ]
    }
  }
}

# Android

gondola.android.json

{
    "output": "./results",
    "helpers": {
      "Appium": {
        "require": "./node_modules/@logigear/gondola/built/helper/AppiumEx",
        "smartWait": 5000,
         // set "app" to the absolute path of your apk file. 
        "app": "/Volumes/DATA/Projects/Test/CarRental/AUT/CarRental.apk", 
        "desiredCapabilities": {
          "platformName": "android",
          "deviceName": "emulator",
          "automationName": "UiAutomator2",
          "newCommandTimeout": 600
        }
      },
      "GondolaHelper": {
        "require": "./node_modules/@logigear/gondola/built/helper/gondolahelper"
      }
    },
    "plugins": {
      "screenshotOnFail": {
        "enabled": "true"
      },
      "allure": {
        "enabled": "true"
      }
    },
    "tests": "./built/tests/*.js",
    "name": "SampleAndroid"
  }

# iOS

gondola.json

{
    "output": "./results",
    "helpers": {
      "Appium": {
        "require": "./node_modules/@logigear/gondola/built/helper/AppiumEx",
        "smartWait": 5000,
        // set "app" to the absolute path of your ipa file.
        "app": "/Volumes/DATA/Projects/Test/CarRental/AUT/CarRental.ipa",
        "desiredCapabilities": {
          "automationName": "XCUITest",
          "platformName": "iOS",
          "platformVersion": "12.0",
          "deviceName": "iPhone 8",
          "connectHardwareKeyboard": false
        }
      },
      "GondolaHelper": {
        "require": "./node_modules/@logigear/gondola/built/helper/gondolahelper"
      }
    },
    "plugins": {
      "screenshotOnFail": {
        "enabled": "true"
      },
      "allure": {
        "enabled": "true"
      }
    },
    "tests": "./built/tests/*.js",
    "name": "SampleiOS"
  }

# 共通パラメータ

このhelperはgondola.jsonもしくはgondola.conf.jsにて設定しておく必要があります

  • app: 絶対パス。.apkファイルのローカルパス、リモートURL、もしくはどちらかのファイルを含む.zipファイル。desiredCapabilities.appPackageのエイリアス。
  • hostname: (デフォルト: 'localhost') Appiumホスト
  • port: (デフォルト: '4723') Appiumポート
  • platform: (AndroidもしくはIOS)で、使用するモバイルOS。desiredCapabilities.platformNameのエイリアス。
  • restart: テスト間でのブラウザもしくはアプリの再起動(デフォルト: true)。falseに設定されている場合、クッキーは削除されますが、ブラウザウィンドウは保持されます。なにも変更が行われないアプリ用。
  • desiredCapabilities: Appiumケーパビリティ。以下を参照。
    • platformName - どのモバイルOSプラットフォームを利用するか
    • appPackage - 実行したいAndroidアプリのJavaパッケージ
    • appActivity - packageにおける実行したいAndroidのActivity名
    • deviceName: 利用したいモバイルデバイスもしくはエミュレーター
    • platformVersion: モバイルOSバージョン
    • app - .ipaもしくは.apkファイルの絶対パスもしくはリモートhttp URLパス、もしくはアプリケーションを含む.zipファイル。Appiumはまず、適切なデバイスに、このアプリケーションのインストールを試みます。
    • browserName: 自動化対象のモバイルブラウザ名。アプリケーションの自動化を行う場合は空白にしておく必要があります。

例:

{
  helpers: {
      Appium: {
          platform: "Android", 
          desiredCapabilities: {
              appPackage: "com.example.android.myApp",
              appActivity: "MainActivity",
              deviceName: "OnePlus3",
              platformVersion: "6.0.1"
          }
      }
    }
}

追加の設定パラメーターに関する情報は こちら で見つけることができます。

# モバイルブラウザテストの構成

# iOSモバイルブラウザーオートメーション

Gondolaは、実際のシミュレートされたiOSデバイスでSafariを自動化できます。
これは、 browserNameの必要な機能をsafariに設定することによってアクセスされます。

次の設定を使用して、iOSデバイスのSafariでテストを自動化できます。

{
    "Appium": {
        "url": "https://demo.gondolatest.com/",
        "smartWait": 5000,
        "platform": "iOS",
        "restart": false,
        "hostname": "localhost",
        "port": 4723,
        "timeouts": {
            "script": 60000,
            "page load": 10000
        },
        "desiredCapabilities": {
            "platformName": "iOS",
            "deviceName": "iPhone 8",
            "udid": "auto",
            "browserName": "safari",
            "autoGrantPermissions": true,
            "platformVersion": "13.3",
            "nativeWebScreenshot": true
        }
    }
}

TIP

  • iOSの実際のデバイスを使用する場合は、こちらの手順に従い、自動化を許可したことを確認してください。
  • 実デバイスが1つだけ接続されている場合は、udidautoに設定できます。
    デバイスが接続されている場合、そのデバイスで実行されます。そうでない場合は、シミュレータで実行されます。
    複数のデバイスが接続されている場合、udid機能を手動で設定する必要があります。

# Androidモバイルブラウザーオートメーション

Gondolaは、実際のAndroidデバイスとエミュレートされたAndroidデバイスの両方でChromeの自動化をサポートしています。

前提条件:

  1. デバイスまたはエミュレータにChromeがインストールされていることを確認します。
  2. Chromedriverをインストールし(デフォルトバージョンはAppiumに付属)、デバイスにインストールされているChromeの特定のバージョンを自動化するように構成する必要があります。
    詳細については、こちらをご覧ください。

次の設定を使用して、AndroidデバイスのChromeでテストを実行できます。

{
    "Appium": {
        "url": "https://demo.gondolatest.com/",
        "smartWait": 5000,
        "platform": "Android",
        "restart": false,
        "hostname": "localhost",
        "port": 4723,
        "timeouts": {
            "script": 60000
        },
        "desiredCapabilities": {
            "platformName": "Android",
            "deviceName": "Galaxy S20",
            "udid": "<udid of device>",
            "browserName": "chrome",
            "autoGrantPermissions": true,
            "platformVersion": "10",
            "nativeWebScreenshot": true,
            "pageLoadStrategy": "eager"
        }
    }
}

テストを実行する前に、udid機能を更新する必要があります。デバイスのudidを見つけるには、以下の手順に従ってください。

  • 端末からadb devicesを実行して、接続されている実際のデバイスとエミュレータのリストを取得します。

    $adb devices
    List of deices attached
    ENUL63030121821300      device
    emulator-5554      device
    
  • デバイスのudid、つまりENUL63030121821300をコピーして目的の機能のudidフィールドに貼り付け、変更を保存します。

    {
        "Appium": {
            "url": "https://demo.gondolatest.com/",
            "smartWait": 5000,
            "platform": "Android",
            "restart": false,
            "hostname": "localhost",
            "port": 4723,
            "timeouts": {
                "script": 60000
            },
            "desiredCapabilities": {
                "platformName": "Android",
                "deviceName": "Galaxy S20",
                "udid": "ENUL63030121821300",
                "browserName": "chrome",
                "autoGrantPermissions": true,
                "platformVersion": "10",
                "nativeWebScreenshot": true,
                "pageLoadStrategy": "eager"
            }
        }
    }
    
最終更新: 2020/6/30 9:25:44