Appiumをインストール/起動する

ひとまずはAndroid用に環境構築を行いました。

Appium自体は**デスクトップ版**と**Node.jsのパッケージ版**がありますが、
自動化を見据えてここではNode.jsのパッケージ版を使用します。（デスクトップ版はテストコードの作成の時にとても便利なのでインストールはしておいたほうが良いです。）

言語は今のところ以下の理由で~~JavaScript~~TypeScriptを採用しました。(途中からTypeScriptに変更してます)
* Appium公式の入門ドキュメントで使用されていたから（手っ取り早くサンプルが動かせそうだったから）
* Appiumサーバ自体がNode.js上で動いているため、実行環境をわざわざ用意する必要がない

## 前提条件
* Mac OS
* ターミナル：zsh使用。bashの場合は読み替えが必要。
* Homebrewをインストール済み →[ Homebrewのインストール](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)
* Android Studioインストール済み（SDKも）
* JDKインストール済み
* adbコマンドが使用できる（パスが通っている）
* Androidのエミュレーターが起動できる

## 環境変数の設定
ANDROID_HOMEとJAVA_HOMEの設定とPathを通します。(設定済みであれば読み飛ばす)

.zshrcファイルに以下を記載する
```
#ANDROID_HOMEの設定　※各機の環境に合わせて差し替えが必要
export ANDROID_HOME=$HOME/Library/Android/sdk

#JAVA_HOMEの設定 ※各機の環境に差し替えが必要
export JAVA_HOME=/Path/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home

#platform-toolsとJavaのbinにPathを通す
export PATH=$PATH:$ANDROID_HOME/platform-tools:$JAVA_HOME/bin
```
記載したらファイルを読み込む
```
$ source .zshrc 
```


## バージョン管理
appiumの本体をインストールするにはNode.js環境が必要なので、まずはNode.jsをインストールします。
複数人で作業する際はバージョンが異なることで挙動が変わることがあるので、バージョン管理をインストールします。
[インストール手順はこの記事を参照](https://qiita.com/kyosuke5_20/items/eece817eb283fc9d214f)
<mark>ただし、nodebrewはインストールせずに、anyenvとnodenvをインストールします。</mark>

## Node.jsのインストール
``` 2022年6月時点
# nodenv install 18.3.0
# nodenv rehash
# nodenv versions
18.3.0
# nodenv global 18.3.0
# npm -v
8.11.0
```

## プロジェクトの作成



#### Appiumでの自動テストを行うためのプロジェクトを作成する

適当なディレクトリを作成する(ここではHome/WorkSpace/appium-test)

```
~ $ mkdir WorkSpace
~ $ mkdir WorkSpace/appium-test
```
appium-testフォルダに移動する
```
$ cd WorkSpace/appium-test
~/WorkSpace/appium-test $ 
```
プロジェクトの初期化
```
~/WorkSpace/appium-test $ npm init -y
```
するとappium-testフォルダ内にpackage.jsonファイルが作られる

package.json
```
{
  "name": "appium-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
```

## Appiumのインストール
Appiumの本体(appium)とAppium環境をチェックするためのパッケージ(appium-doctor)をインストールする

### AppiumとAppium-doctorのインストール

npmを介してappiumとappium-doctorをインストールする。
```
$ npm install appium appium-doctor
```
実行すると、
node_modulesフォルダが作成され、package.jsonの"dependencies"の項目にappium,appium-doctorの項目が追加される。

package.json
```
{
  "name": "appium-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
     "appium": "^1.22.2",
     "appium-doctor": "^1.16.0"
  }
}
```
#### appium-doctorerを実行

appiumとappium-doctorのインストールが完了したら、appium-doctorを実行してAppium環境をチェックする。
※node_modules/.binにコマンド実行用のスエイリアスファイルができるため、これを叩く。

```
~/WorkSpace/appium-test $ node_modules/.bin/appium-doctor --android
```

今回は Android環境の構築なので--androidオプションを使用しています。※iOSの場合は--ios、何も指定しなければ両OSの環境がチェックされます。

結果を確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759762/b6ff3707-204d-9fc3-8021-404962b2f9b3.png)


「### Diagnostic for necessary dependencies starting ###」の項目に全てにチェックがついていればOK。（恐らく上記の手順を実施していれば全てにチェックがついているはず）

「### Diagnostic for optional dependencies starting ###」はオプションなので❌でも問題はない。必要であればインストールする。

#### Appiumを起動してみる

```
~/WorkSpace/appium-test $ node_modules/.bin/appium
```
無事、Appiumのサーバーが起動した
![image.png](https://image.docbase.io/uploads/9520a40b-41c0-446e-8611-329905bfbcb1.png =WxH)

とりあえずAppiumのインストール、起動まで完了です。


# ↓続き

https://qiita.com/ys-sgn/items/a512ac5d99db35bbde0d