Appium奮闘記　MacでAppiumインストール〜サンプルコード実行まで

### この投稿で行ったこと
* appiumのインストール
* サンプルコードのダウンロード〜実行(iOS)

### 環境
* Mac OS Mac OS High Sierra （バージョン10.13.5）
* Xcode 9.4.1
* rbenv 1.1.1
* ruby 2.4.1p111

※Xcode,ruby,Homebrewのインストールは割愛させていただきますm(_ _)m

### Appiumのインストール（コマンドから）
Node.jsをインストール

```
brew install node
```

appiumをインストール

```
npm install -g appium
```

appiumの起動

```
appium
```

appium-doctorをインストール

* 端末ごとの設定が正しく適用されているかを確認する
* 「--ios」や「--android」といったフラグが使える

```
npm install -g appium-doctor
```

appium-doctorを実行してみる

```
appium-doctor --ios
```

```
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###

# 中略 

WARN AppiumDoctor  ✖ Carthage was NOT found!

# 中略

WARN AppiumDoctor - Please install Carthage. Visit https://github.com/Carthage/Carthage#installing-carthage for more information.
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor
```

どうやらCarthageが必要らしい
https://github.com/Carthage/Carthage#installing-carthage

Homebrewにcarthageをインストール

```
brew install carthage
```

再度appium-doctorを実行

```
info AppiumDoctor Everything looks good, bye!
```

大丈夫そう

### サンプルテストコードを実行（iOS）
サンプルコードをダウンロード

```
git clone git@github.com:appium/sample-code.git
```

sample-code/sample-code/examples/rubyのディレクトリに移動
ターミナルを2つ開き、一方のターミナルでappiumを起動

```
appium &
```
もう一方のターミナルでsimple_test.rbを実行

```
bundle exec ruby simple_test.rb

#中略
 An unknown server-side error occurred while processing the command. 
Original error: '10.3' does not exist in thelist of simctl SDKs. 
Only the following Simulator SDK versions are available on your system: 11.4 
(Selenium::WebDriver::Error::UnknownError)
```

SDKのバージョンが違うらしい（'10.3'がsimctl SDKsのリストにありませんよ、あなたのシステムでは'11.4'しかサポートしてませんよとのこと）

リストを確認してみる

```
xcrun simctl list

== Device Types ==
#中略
== Devices ==
-- iOS 11.4 --
    iPhone 5s (B7D10181-1292-4B11-B11D-92D8264F6077) (Shutdown)
    iPhone 6 (2F0E1C14-FF56-43E4-ADFA-14D444AAAF51) (Shutdown)
#以下略
```

確かにiOS11.4しか入っていなさそう
iOS10.3を入れたら動くかな、と考えあちこち探し回る...

以下のサイトから「iOS 10.3」をダウンロード
https://www.elementscompiler.com/elements/fxs/sdks.aspx

ダウンロードしたzipファイルを解凍して、再びリストを確認

```
xcrun simctl list

== Device Types ==
#中略
-- iOS 10.3 --
    iPhone 5 (B535328B-529D-457C-8DA3-E490851CDA52) (Shutdown)
   #中略
-- iOS 11.4 --
    iPhone 5s (B7D10181-1292-4B11-B11D-92D8264F6077) (Shutdown)
    iPhone 6 (2F0E1C
```

10.3も入っていそう

再度サンプルコードを実行

```
bundle exec ruby simple_test.rb

Tests Succeeded!
```

で、できた...！！

appiumを起動した方のターミナルを開くとものすごい勢いでログが流れていた

### 所感

appiumをインストールしてからテストを実行するまでの手順を把握するのが難しかったです。
[Getting Started](https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md)だけで理解しきれず、様々なサイトを転々としながら試行錯誤しました...

また、appiumを動かすのにappium以外の諸々をインストールする必要があるので、テスト実行にたどり着くのに時間がかかりました。

### 次やりたいこと

* 自分で書いたテストコードを実行したい
* シミュレーターと連携したい
* Androidも動かしたい




### 参考サイト
* Getting Stated
    * https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md
* [[appium導入 その1] まっさらmacにappiumをインストールしてappium-doctorするまで](https://qiita.com/sakaimo/items/88bbbf095d7fc4f41264)
* https://stackoverflow.com/questions/41147485/appium-test-sdk-9-3-was-not-in-the-list-of-simctl-sdks