シミュレータを使って試験を行う場合、build 時に生成される.appの実行ディレクトリを対象に、シミュレータにアプリをインストールしてappium経由でコマンドを送信、試験が実施されます。
以下、サンプルシナリオを実施するにあたり、大まかな手順です。
- サンプルプロジェクトをビルドする
- .appディレクトリをzip化する※zip化せずともできました。
- サンプルシナリオの一部を修正し、ビルドした成果物を試験対象にする
- appiumを起動する
- サンプルシナリオを実行する
ここで、サンプルシナリオはnodeコマンドにより実行されるものを使います。
サンプルプロジェクトをビルドする
iPhoneシミュレータにて、まずはgithubの以下にあるnodeのテストサンプルを動かしてみることにします。
https://github.com/appium/appium/tree/master/sample-code/examples/node/simplest.js
そこで使われるテストコードをビルドします。
Xcodeで開くプロジェクト
https://github.com/appium/appium/tree/master/sample-code/apps/TestApp/TestApp.xcodeproj
こちらをシミュレータをターゲットにビルドすると、以下のように、TestApp.appを得ることができます。この.appが試験モジュール(シミュレータにおけるリリースモジュール)です。
TestApp/build/Release-iphonesimulator/TestApp.app
.appディレクトリをzip化する
以下により、zip化したアプリを作成します。
$ zip -r TestApp.app.zip TestApp.app
サンプルシナリオの一部を修正し、ビルドした成果物を試験対象にする
20131114時点では simplest.js は以下のようなコードでしたので、appURLを指定する。
修正前
var wd = require("wd")
, assert = require("assert")
, appURL = "http://appium.s3.amazonaws.com/TestApp6.0.app.zip";
// Instantiate a new browser session
var browser = wd.remote("localhost", 4723);
修正後
var wd = require("wd")
, assert = require("assert")
, appURL = "/home/[TestApp.app.zipまでのパス]/TestApp.app.zip";
// Instantiate a new browser session
var browser = wd.remote("localhost", 4723);
appiumを起動、サンプルシナリオを実行します
appiumを実行する
$ appium -a localhost
nodeを実行する
$ node simplest.js
すると、iPhoneシミュレータが起動してアプリが動作します。
tips
iPhoneシミュレータは、初期ではiPhone7.0だけなので、Xcodeの設定から必要なバージョンのものをダウンロードしましょう。
Xcode4.6とXcode5を併存させている場合、以下により標準で起動するXcodeのバージョンを変更することができます。
例:Applicationディレクトリ以下に、Xcode4.6を別途ダウンロードした場合
$ xcode-select -switch /Applications/Xcode4_6.app