AppiumRubyConsole（ARC）を使ってiOSシミュレーターを動かしてみた。

## 概要

原文
>Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web apps, tested on simulators (iOS, FirefoxOS), emulators (Android), and real devices (iOS, Android, Windows, FirefoxOS).

Appiumは、シミュレータ（iOS、FirefoxOS）、エミュレータ（Android）、およびリアルデバイス（iOS、Android、Windows、FirefoxOS）でテストされた、ネイティブ、ハイブリッド、モバイルのWebアプリケーション用のオープンソースのクロスプラットフォームテスト自動化ツールです。

[公式サイト](http://appium.io/getting-started.html?lang=ja)抜粋

使用環境

|ソフトウェア|バージョン|
|:--|:--|
|OS|macOS Sierra 10.12.4|
|Xcode|8.3.2|
|Appium|1.6.4|

## 環境構築
[公式サイトのチュートリアル](http://appium.io/slate/en/tutorial/ios.html?ruby#native-ios-automation)にそって進めていきます。


**事前準備として予めテスト用のディレクトリを任意の場所に作成し作成したディレクトリに移動します。**  
ここでは ```/Users/username/ ```以下に```test```というディレクトリを作成しました。(usernameは各々のユーザ名)

上記で作成したディレクトリに移動。

```$ cd /Users/username/test```


1.2については私の環境ではすでに導入済みだったため、ここでは割愛します(またXcode8以降が既に導入済みという前提で進めていきます)。[公式サイトのチュートリアル install Ruby](http://appium.io/slate/en/tutorial/ios.html?ruby#install-ruby)以下に導入方法が載っています。

**1. Ruby環境の構築**

**2. Homebrewをインストール**

**3.appium_consoleをインストール**

```
$ gem uninstall -aIx appium_lib
$ gem uninstall -aIx appium_console
$ gem install --no-rdoc --no-ri appium_console
```

**4.flakyをインストール**

```
$ gem uninstall -aIx flaky
$ gem install --no-rdoc --no-ri flaky
```

**5. nodeをインストール**

```$ brew install node```

正しくインストールされているか確認します。  

```
$ node --version 
v7.10.0
  
$ npm --version
4.2.0
```

**6.antをインストール**

[公式サイト](http://ant.apache.org/)より最新のバージョンを確認し、antをインストールします。(ここではバージョン1.10.1)

```$ curl http://ftp.riken.jp/net/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz -o apache-ant-1.10.1.tar.gz```

ダウンロードしたファイルを展開します。

```$ tar zxvf apache-ant-1.10.1.tar.gz```

任意の場所にパッケージを配置します。

```$ mv apache-ant-1.10.0 /usr/local/bin/```

antのコマンドが実行できるよう、パスを通します。viで.bash_profileを開きます。

```$ vi ~/.bash_profile```

ファイル内に下記の設定を追記します。

```
ANT_HOME=/usr/local/bin/apache-ant-1.10.1
PATH=$ANT_HOME/bin:$PATH
```

変更を保存し、下記のコマンドを実行して設定内容を即時反映させます。

```$ source ~/.bash_profile```

正しくインストールされているか確認します。

```
$ ant -version
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
```

**7.mavenをインストール**

Homebrew の brew search コマンドで、インストール可能な Maven の名前を確認します。

```$ brew search maven```

ここでは Maven 3.1 をインストールするので、homebrew/versions/maven31 を指定してインストールします。

```$ brew install homebrew/versions/maven31```

正しくインストールされているか確認します

```
$ mvn –version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T04:39:06+09:00)
Maven home: /usr/local/Cellar/maven/3.5.0/libexec
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.4", arch: "x86_64", family: "mac"
```

**8.Appiumをインストール**

Appiumをクローンします。

```$ git clone git://github.com/appium/appium.git```

クローンしたappiumディレクトリに移動します。

```$ cd appium```

下記のコマンドを実行します。

```$ npm install```

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

```
$ npm install -g authorize-ios
$ authorize-ios
```

**appiumを起動**

```$ node .```

**appium停止方法(appiumを起動させたターミナルのタブ以外で下記を実行)**

```$ killall -9 node```

## Appium Ruby Consoleを使ってみる

**1.sample-appsを作成します。**

```$ npm install sample-apps```

**2.ios-uicatalogの作成**

```
$ cd node_modules/sample-apps
$ npm i 
```

**3.サンプルiOSアプリUICatalogをビルド**

ios-uicatalogに移動

```$ cd node_modules/ios-uicatalog```

iphonesimulatorのバージョンの確認

```
$ xcodebuild -showsdks

iOS SDKs:
	iOS 10.3                      	-sdk iphoneos10.3

iOS Simulator SDKs:
	Simulator - iOS 10.3          	-sdk iphonesimulator10.3

macOS SDKs:
	macOS 10.12                   	-sdk macosx10.12

tvOS SDKs:
	tvOS 10.2                     	-sdk appletvos10.2

tvOS Simulator SDKs:
	Simulator - tvOS 10.2         	-sdk appletvsimulator10.2

watchOS SDKs:
	watchOS 3.2                   	-sdk watchos3.2

watchOS Simulator SDKs:
	Simulator - watchOS 3.2       	-sdk watchsimulator3.2
```

ビルド

```
$ xcodebuild -configuration Release -sdk iphonesimulator10.3
```

**3.コンソールの起動**

appiumサーバーが起動していることを確認しサーバーが開いているタブとは別タブで下記のコマンドを実行。

```
$ arc
```

コンソールの起動とともにシミュレーターが起動しiOSシミュレーターが立ち上がります。

画面の要素のリストを出力

```
[1] pry(main)> page
```
他コマンドは[公式サイトチュートリアル](http://appium.io/slate/en/tutorial/ios.html?ruby#page-command)に記載されています。

**4.コンソールの終了**

```
[2] pry(main)> x
```