Appiumはじめの0歩（Node.jsの環境構築方法)



この記事は[Selenium/Appiumアドベントカレンダー2015](http://qiita.com/advent-calendar/2015/selenium)の21日目の記事です。

##モチベーション
みなさんアピュってますか？

![appiumに関する33件の投稿_-_Qiita.png](https://i3systems.qiita.com/files/c8c51635-0ba0-8f9b-a186-839c5e748d87.png "appiumに関する33件の投稿_-_Qiita.png")

Seleniumタグに比べて投稿数が寂しいですね。

**なぜ**

Appiumは環境構築に手間取るようで、[前日の記事](http://qiita.com/akasakas/items/d5b30515b8bc4338870c)にもNode.js周りで時間を要したとあります。
（私も久しぶりに環境構築をしたら時間がかかりました）
そこでNode.jsを簡単に管理出来るnodebrewを使って環境構築の環境構築方法を記載いたします。
Node.jsのバージョンによってAppiumが動作しないことがあるようで下記を参考にしていだければと思います。

##Node.jsアンインストール
(インストール済みの場合)
Node.jsのアンインストールするためのシェルがあるのでそちらを利用させていただきます。

```
$ curl -o uninstall-node.sh https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh
$ chmod u+x uninstall-node.sh 
$ ./uninstall-node.sh 
$ rm uninstall-node.sh
$ sudo rm -rf /usr/local/include/node
$ sudo rm -rf /usr/local/lib/dtrace
$ rm -rf ~/.node-gyp
$ rm -rf ~/.npm
$ rm -rf ~/.sourcemint 
```

##Node.jsインストール
Node.jsはNodeBrewを使えばバージョン管理もできるので便利です。
homebrewを使用してnodebrewをインストールします。

```
 $ brew nodebrew install
```

インストール完了後`nodebrew ls-remote`コマンドでインストール可能なバージョンを確認します。

```
$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6

v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
v0.1.8    v0.1.9    v0.1.10   v0.1.11   v0.1.12   v0.1.13   v0.1.14   v0.1.15
v0.1.16   v0.1.17   v0.1.18   v0.1.19   v0.1.20   v0.1.21   v0.1.22   v0.1.23
v0.1.24   v0.1.25   v0.1.26   v0.1.27   v0.1.28   v0.1.29   v0.1.30   v0.1.31
v0.1.32   v0.1.33   v0.1.90   v0.1.91   v0.1.92   v0.1.93   v0.1.94   v0.1.95
v0.1.96   v0.1.97   v0.1.98   v0.1.99   v0.1.100  v0.1.101  v0.1.102  v0.1.103
v0.1.104

v0.2.0    v0.2.1    v0.2.2    v0.2.3    v0.2.4    v0.2.5    v0.2.6

v0.3.0    v0.3.1    v0.3.2    v0.3.3    v0.3.4    v0.3.5    v0.3.6    v0.3.7
v0.3.8

v0.4.0    v0.4.1    v0.4.2    v0.4.3    v0.4.4    v0.4.5    v0.4.6    v0.4.7
v0.4.8    v0.4.9    v0.4.10   v0.4.11   v0.4.12

v0.5.0    v0.5.1    v0.5.2    v0.5.3    v0.5.4    v0.5.5    v0.5.6    v0.5.7
v0.5.8    v0.5.9    v0.5.10

v0.6.0    v0.6.1    v0.6.2    v0.6.3    v0.6.4    v0.6.5    v0.6.6    v0.6.7
v0.6.8    v0.6.9    v0.6.10   v0.6.11   v0.6.12   v0.6.13   v0.6.14   v0.6.15
v0.6.16   v0.6.17   v0.6.18   v0.6.19   v0.6.20   v0.6.21

v0.7.0    v0.7.1    v0.7.2    v0.7.3    v0.7.4    v0.7.5    v0.7.6    v0.7.7
v0.7.8    v0.7.9    v0.7.10   v0.7.11   v0.7.12

v0.8.0    v0.8.1    v0.8.2    v0.8.3    v0.8.4    v0.8.5    v0.8.6    v0.8.7
v0.8.8    v0.8.9    v0.8.10   v0.8.11   v0.8.12   v0.8.13   v0.8.14   v0.8.15
v0.8.16   v0.8.17   v0.8.18   v0.8.19   v0.8.20   v0.8.21   v0.8.22   v0.8.23
v0.8.24   v0.8.25   v0.8.26   v0.8.27   v0.8.28

v0.9.0    v0.9.1    v0.9.2    v0.9.3    v0.9.4    v0.9.5    v0.9.6    v0.9.7
v0.9.8    v0.9.9    v0.9.10   v0.9.11   v0.9.12

v0.10.0   v0.10.1   v0.10.2   v0.10.3   v0.10.4   v0.10.5   v0.10.6   v0.10.7
v0.10.8   v0.10.9   v0.10.10  v0.10.11  v0.10.12  v0.10.13  v0.10.14  v0.10.15
v0.10.16  v0.10.17  v0.10.18  v0.10.19  v0.10.20  v0.10.21  v0.10.22  v0.10.23
v0.10.24  v0.10.25  v0.10.26  v0.10.27  v0.10.28  v0.10.29  v0.10.30  v0.10.31
v0.10.32  v0.10.33  v0.10.34  v0.10.35  v0.10.36  v0.10.37  v0.10.38  v0.10.39
v0.10.40  v0.10.41

v0.11.0   v0.11.1   v0.11.2   v0.11.3   v0.11.4   v0.11.5   v0.11.6   v0.11.7
v0.11.8   v0.11.9   v0.11.10  v0.11.11  v0.11.12  v0.11.13  v0.11.14  v0.11.15
v0.11.16

v0.12.0   v0.12.1   v0.12.2   v0.12.3   v0.12.4   v0.12.5   v0.12.6   v0.12.7
v0.12.8   v0.12.9

v4.0.0

v4.1.0    v4.1.1    v4.1.2

v4.2.0    v4.2.1    v4.2.2    v4.2.3

v5.0.0

v5.1.0    v5.1.1

v5.2.0

v5.3.0

io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4

io@v1.1.0

io@v1.2.0

io@v1.3.0

io@v1.4.1 io@v1.4.2 io@v1.4.3

io@v1.5.0 io@v1.5.1

io@v1.6.0 io@v1.6.1 io@v1.6.2 io@v1.6.3 io@v1.6.4

io@v1.7.1

io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4

io@v2.0.0 io@v2.0.1 io@v2.0.2

io@v2.1.0

io@v2.2.0 io@v2.2.1

io@v2.3.0 io@v2.3.1 io@v2.3.2 io@v2.3.3 io@v2.3.4

io@v2.4.0

io@v2.5.0

io@v3.0.0

io@v3.1.0

io@v3.2.0

io@v3.3.0 io@v3.3.1
```

ここでv0.12.8を選択します。
（最新版v5.3.0ではAppiumが動作しませんでした。）


```
$ nodebrew install v0.12.8
```

この時点ではまだインストールしただけで使用状態にはなっておりません。
v0.12.8を使用状態にします。

```
$ nodebrew use v0.12.8
use v0.12.8
```


`nodebrew ls`コマンドで確認します。


```
$ nodebrew ls
v0.12.8

current: v0.12.8
```

PATHを設定します。

```
$ export PATH=$PATH:$HOME/.nodebrew/current/bin
$ echo 'export PATH=$PATH:$HOME/.nodebrew/current/bin' >> ~/.bashrc
$ which node
/Users/ユーザ名/.nodebrew/current/bin/node
$ node -v
v0.12.8
```


これで準備OK

##Appiumインストール〜動作確認
前日の[＠akasakas](http://qiita.com/akasakas)さんの記事を参考に
[Appium はじめの一歩（環境構築と動作確認まで）](http://qiita.com/akasakas/items/d5b30515b8bc4338870c)

##Javaで動かすなら
[ここからテストコードをclone](https://github.com/appium/sample-code)
junitフォルダまで移動

```
$ cd sample-code/examples/java/junit
```
実行

```
$ mvn test -Dtest=com.saucelabs.appium.SimpleTest
```


##Appium関係ない
nodebrewの記事になってしました。
しかしこれで少しでもAppiumを使用する上で障壁がなくなればと思います。
というわけではじめの0歩でした。

##参考にしたサイト
[node.jsのversionを管理するためにnodebrewを利用する](http://qiita.com/sinmetal/items/154e81823f386279b33c)

[Nodebrewのセットアップ](http://qiita.com/kyo_nanba/items/952bc5e801134ace015e)

[Appiumでモバイルアプリのテストを自動化【iOSネイティブアプリ編】](http://iti.hatenablog.jp/entry/2014/01/06/092626)