Appiumでいろいろ

# アプリのテスト自動化

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/08715222-f605-e2ea-9ff1-d238fb4fadd8.png)


AndroidとiOS：アプリテスト自動化ツール「**Appium**」を使用する。

http://appium.io

**※Selenium WebDriver**の仲間である。

**Download Appium**

<img width="1200" alt="スクリーンショット 2020-06-24 22.57.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/b5ba3b97-8355-91f7-4e5d-e64a5032f801.png">

「**Appium**」を起動します。

<img width="651" alt="スクリーンショット 2020-06-24 23.04.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/c82d0a14-5d4f-60dd-205a-278c670c148a.png">

<img width="650" alt="スクリーンショット 2020-06-24 23.04.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/9286b536-a107-b9c6-e864-639104965f13.png">


# 注意点
Android SDKの「SDK Platforms」
API Level 17以上が対象になります。API Level 16以下だとエラーが返ってきます。
システム環境の変数値がまちがっているとエラーがログに吐かれます。

# 環境構築

システム環境

| 変数名 | 変数値| 備考 |
|:-----------|:------------|:------------|
| ANDROID_HOME      | C:\Users\GSNP-086\AppData\Local\Android\sdk |         |

| 変数名 | 変数値| 備考 |
|:-----------|:------------|:------------|
| JAVA_HOME      | C:\Program Files\Java\jdk1.8.0_65 |         |

設定後は、PCを再起動する

# Appiumのファイル

**Appiumのファイル**はbitbucketで管理されています。
https://bitbucket.org/appium/appium.app/downloads/
![スクリーンショット 2020-09-05 8.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/27b39c12-ed2b-df5f-c20c-68cf575e8e7b.png)


nodejsも併せて。
http://nodejs.org/download/
node-v0.12.7-x64(or 86).msi をダウンロード
インストールします。

# 設定

**1.JDKをインストールするところからはじめます。**
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
![スクリーンショット 2020-09-05 8.19.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/abe9755f-7674-c59c-8990-10346cd37e89.png)
Accept License Agreementを選択し、対象のProductを選択します。
**2.環境変数：JAVA_HOMEにインストールしたJDKを設定します。**
**3.Android Studioをインストールします。**
http://developer.android.com/intl/ja/sdk/index.html
**4.環境変数：ANDROID_HOMEにインストールした値を設定します。**
**5.環境変数：PathにAndroid SDK Toolsのパスを設定します。**
**6.AVD Managerの起動(※先にAVDエミュレータを起動しておかないとエラーになる)**
![d57ccca7-c77c-bfa8-206d-5198f5d28744.png](https://qiita-image-store.s3.amazonaws.com/0/55160/b650b309-7fb7-dbde-de5c-eb2069763d50.png)


**7.Appiumの設定。右端の■のボタンをクリックする。Launching Appium server with commandと表示することを確認**![b7773511-cd8f-27b8-328c-a6a35031d37b.png](https://qiita-image-store.s3.amazonaws.com/0/55160/4da93c0a-5819-fbe0-df62-62466417d0f8.png)


```lang:起動画面
Launching Appium server with command: C:\Program Files\Appium\node.exe lib\server\main.js 
--address 127.0.0.1 --port 4723 --app-activity com.unity3d.player.UnityPlayerActivity 
--app-pkg com.selvas.selvashubtest --intent-action android.intent.action.MAIN 
--intent-flags 0x10200000 --platform-name Android --platform-version 19
 --automation-name Appium --device-name "emulator-5556" --log-no-color
```
```lang:起動画面下のログが表示されたら起動ボタンをクリックする
> Launching Appium server with command: C:\Program Files\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --app-activity com.unity3d.player.UnityPlayerActivity --app-pkg com.selvas.selvashubtest --intent-action android.intent.action.MAIN --intent-flags 0x10200000 --platform-name Android --platform-version 19 --automation-name Appium --device-name "emulator-5556" --log-no-color
> warn: Appium support for versions of node < 0.12 has been deprecated and will be removed in a future version. Please upgrade!
> info: Welcome to Appium v1.4.13 (REV c75d8adcb66a75818a542fe1891a34260c21f76a)
> info: Appium REST http interface listener started on 127.0.0.1:4723
> info: [debug] Non-default server args: {"address":"127.0.0.1","logNoColors":true,"androidPackage":"com.selvas.selvashubtest","androidActivity":"com.unity3d.player.UnityPlayerActivity","deviceName":"emulator-5556","platformName":"Android","platformVersion":"19","automationName":"Appium"}
> info: Console LogLevel: debug
```
**8.Appnium Inspectorの起動。Refreshボタンをクリックするとアプリが起動します。**


![e11f940e-9bc8-00a7-9b20-a2e8f4b6807b.png](https://qiita-image-store.s3.amazonaws.com/0/55160/e15e6f82-c660-de0b-3a43-c267cdb72be1.png)


進んでいくと


**9.エミュレータ確認(試しに動画広告のapkファイルを読み込ませる)**

**cocos2d-x SDK**
logにエラーが表示し、うまく起動しない。

**Unity SDK**
unity SDKは起動しました。

**Android SDK**
Android SDKは起動しました。

**10.実機確認**


# スクリプト
 
```lang:簡単なスクリプト
require 'selenium-webdriver'
require 'appium_lib'
opts = {caps: {deviceName: :android,
               platformName: :android,
               app: 'C:\Users\GSNP-086\Downloads\CPV_And_U.apk', 動画広告apkファイルを設定する
               appActivity: 'XXXXXX'}}

driver = Appium::Driver.new(opts).start_driver

★要素を取得し、タップする。staticメソッドを使って指定する。
//タップする
driver.find_element(:id, "abc").click
//コンポーネントに対してUSERIDにを入力する
driver.find_element(:id, "user").send_keys("test")
//コンポーネントに対してZONEIDを入力する
driver.find_element(:id, "zone").send_keys("201211111")
//タップする
driver.find_element(:id, "abc").click

driver.quit
```
| ホーム     |  トップ     |     詳細     | 画像 |
|:-----------------:|:------------------:|:------------------:|:------------------:|
| <img width="150" alt="IMG_0842.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/fdd42804-9d3d-62d9-1daf-9fdd0b4ff52c.png">             | <img width="150" alt="IMG_0C13D027261B-1.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/7cd7e6ef-e196-5086-9c2f-986bbf2a4348.jpeg">|  <img width="150" alt="IMG_0C13D027261B-1.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/7cd7e6ef-e196-5086-9c2f-986bbf2a4348.jpeg"> | <img width="150" alt="IMG_0C13D027261B-1.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/7cd7e6ef-e196-5086-9c2f-986bbf2a4348.jpeg"> |||