開発者ブログ
HTML5資料室 » Appiumを使ったAndroid・iOSでのテスト » iOS端末上でテストを行う(コマンドライン)

iOS端末上でテストを行う(コマンドライン)

Last modified by kashi on 2017/02/10, 17:48

テスト環境

  • Mac OS X 10.11
  • JDK 1.8
  • Apple Developer Programに登録済であり、iOSアプリのdeveloperアカウントを取得している。

環境構築

XCodeのインストール

  1. App StoreからXCodeを検索し、インストールする
  2. ターミナルで次のコマンドを実行する。
        xcode-select --install
  3. "xcode-select"コマンドを実行するには、コマンドライン・デベロッパ・ツールが必要です"
       というダイアログが表示されるので、「インストール」を選択してインストールする。

node.jsのインストール

  1. http://nodejs.org/download/ にアクセスし、release -> v0.12.0 - >node-v0.12.0.pkg をダウンロードする。
  2.  ウィザードに従ってインストールする。
  3.  ターミナルで次のコマンドを実行し、バージョンが表示されることを確認する。
        node -v

Homebrewのインストール

  1. (プロキシ環境のみ)環境変数http_proxy, https_proxy, all_proxyが設定されていない場合は、ターミナルで次のコマンドを実行する。
       export http_proxy=http://<username>:<password>@<proxy-host>:<proxy-port>
       export https_proxy=$http_proxy
       export all_proxy=$http_proxy
  2. ターミナルで次のコマンドを実行する。
        ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
       ※ 「fatal: unable to access 'https://github.com/Homebrew/homebrew/':
        SSL certificate problem: Invalid certificate chain」とメッセージが出て失敗する場合
        次の手順でキーチェーンを更新する。
        1. アプリケーション -> ユーティリティ -> キーチェーンアクセス を開く。
        1. 「システムルート」のキーチェーンの中から「DigiCert High Assurance EV Root CA」を探す。
        1. 「システム」にドラッグ&ドロップする。
        参考: https://github.com/Homebrew/homebrew/issues/28844
  3. ターミナルで次のコマンドを実行し、バージョンが表示されることを確認する。
        brew -v

Gitのインストール

  1. ターミナルで次のコマンドを実行する。
        brew install git
  2. ターミナルで次のコマンドを実行し、バージョンが表示されることを確認する。
        git -version

Appiumのインストール

  1. (プロキシ環境のみ)ターミナルを立ち上げて次のコマンドを実行し、npmのプロキシ設定を行う。
        npm -g config set proxy http://<username>:<password>@<proxy-host>:<proxy-port>
        npm -g config set https-proxy http://<username>:<password>@<proxy-host>:<proxy-port>
        npm -g config set registry http://registry.npmjs.org/
        npm -g config set strict-ssl false
  2. ターミナルで次のコマンドを実行し、Appiumをインストールする。
        npm install -g appium
        ※ インストールに失敗する場合は、次のコマンドで/usr/localディレクトリに
           書き込み権限を付与してから再度試す。
            sudo chmod -R a+w /usr/local

Appium Client (WebDriver)のインストール

  1. ターミナルで次のコマンドを実行する。
        npm install wd

インストールの診断

  1. ターミナルで次の次のコマンドを実行し、必要なツールが正しくインストールされたことを確認する。
        appium-doctor --ios

設定

AppiumからiOS Simulatorの使用を許可する

  1. ターミナルで次のコマンドを実行する。
        sudo authorize_ios

iOS上でSafariを起動する準備

開発者証明書・端末・プロビジョニングプロファイルの登録

  1. Apple Developerサイトで開発者証明書を作成し、キーチェーンに登録しておく。
  2. Apple Developerサイトでテストに使用する端末を登録しておく。
  3. 登録した開発者・端末で利用可能なプロビジョニングプロファイルを作成する。

ios-webkit-debug-proxy(MacからiOSのSafariを操作するためのツール)のインストール

  1. ターミナルで次のコマンドを実行する。
        brew install ios-webkit-debug-proxy
  2. iOSの端末をPCに接続する。
  3. iOSの実機上で、次のメニューからWebインスペクタを有効にする。
        設定 > Safari > 詳細 > Webインスペクタ
        設定 > デベロッパ > UIAutomationの有効化

※ ios-webkit-debug-proxyでエラーが出た場合、https://github.com/google/ios-webkit-debug-proxyも合わせてご確認ください。

ideviceinstaller(iOS端末にアプリをインストールするためのツール)のインストール

  1. ターミナルで次のコマンドを実行する。
        brew install ideviceinstaller

SafariLauncher(Safariを起動するためのアプリ)のビルド

  1. ターミナルで次のコマンドを実行し、appiumプロジェクトをチェックアウトする。
        git clone https://github.com/appium/appium.git
  2. チェックアウトしたappiumディレクトリに移動し、次のコマンドを実行してSafariLauncherをビルドする。
        ./reset.sh --ios --real-safari --verbose
    1. "Code Sign error" で失敗した場合は、この問題を修正する。
         /appium/node_modules/safari-launcher/SafariLauncher.xcodeproj プロジェクトが生成されるため、
         XCodeで開く。
    2. 左メニューでプロジェクト名をクリックしてGeneralの設定画面を開き、
         Bundle Identifier、Teamなどをプロビジョニングプロファイルに合わせて適切に設定する。
    3. XCodeのビルドボタンをクリックして、SafariLauncherが実機にインストールされることを確認する。
    4. 再度ターミナルでチェックアウトしたappiumディレクトリに移動し、次のコマンドを実行してSafariLauncherをビルドする。
          ./reset.sh --ios --real-safari --verbose
  3. /appium/build/SafariLauncher/SafariLauncher.zipが生成されるため、次のパスにコピーする。
        /usr/local/lib/node_modules/appium/build/SafariLauncher/SafariLauncher.zip

Appium起動・テスト

nodeConfig.jsonファイルの用意

任意のフォルダに、次のような内容でnodeConfig.json(Selenium GridにAppiumサーバを登録するための設定を記載するファイル)を作成する。
{
 "capabilities": [
    {
     "platformName": "iOS",
     "platformVersion": "8.3",
     "deviceName": "iPhone6",
     "browserName": "safari",
     "os": "iOS",
     "version": "8.3",
     "maxInstances": 1,
     "seleniumProtocol": "WebDriver"
    }
  ],
 "configuration": {
   "cleanUpCycle": 2000,
   "timeout": 30000,
   "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
   "url": "http://[このMacのホスト]:4723/wd/hub",
   "host": "[このMacのホスト]",
   "port": 4723,
   "maxSession": 1,
   "register": true,
   "registerCycle": 5000,
   "hub": "http://[Selenium Grid Hubのホスト]:4444/grid/register",
   "hubPort": 4444,
   "hubHost": "[Selenium Grid Hubのホスト]"
  }
}

●項目の説明

 項目名  説明
 platformName  テストを実行する端末のOS。
 platformVersion  端末のOSのバージョン。
 deviceName  端末の種類。
 browserName  テスト対象のブラウザ名。
 version  端末を区別するためのバージョン名。
 任意の値だが、OSバージョン+デバイス名とすると複数端末でのテスト実行時に区別することが出来る。
 url  Appiumサーバのアドレス。
 host  「url」のホスト部。
 port  「url」のポート。
 hubPort  Hubの起動しているポート。
 hubHost  Hubの起動しているサーバのホスト。

Appiumの起動

  1. iTunesを開き、端末アイコン > 「シリアル番号」をクリックしてUDIDを表示し、右クリックでコピーする。
  2. ターミナルで次のコマンドを実行し、ios_webkit_debug_proxyを起動する。
        ios_webkit_debug_proxy -c <コピーしたUDID>:27753 -d
  3. ターミナルをさらに別ウィンドウで開き、次のコマンドを実行してAppiumを起動する。
        appium -U <コピーしたUDID> --nodeconfig nodeConfig.jsonファイルへのフルパス --session-override

テストの実行

次のCapabilityを指定してテストを実行する。

{
   "browserName": "safari",
   "deviceName": "iPhone6",
   "os": "iOS",
   "platformName": "iOS",
   "platformVersion": "8.3",
   "version": "8.3"
}

以下の点に注意すること。

  • "browserName"、"version" はAppiumを起動するときに設定したnodeConfig.jsonと同一の値を指定する。

Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.