Appiumとは
Appium(アピウム)とは、オープンソースで開発されている UI テストを自動化するフレームワークです。
「Android」「iOS」「Windows」の各プラットーフォームににおいて、
「ネイティブアプリ」「WebViewアプリ」「ハイブリッドアプリ」のテストを自動化することができます。
※ Appium のライセンスは「Apache License 2.0」です。(2022/11/12時点)

環境構築と初期設定
OpenJDK
Java の実行環境が必要となるため、まずは JDK(Java Development Kit)のインストールを行います。
今回は、企業でも使用できるライセンスフリーな OpenJDK を使用します。
- ダウンロード
最初に OpenJDK のページから、最新リリースをダウンロードします。
この記事の執筆時は、v19.0.1 が最新でした。 - 適当なフォルダに解凍
ダウンロードした zip ファイルを、任意の場所へ解凍します。 - システム環境変数の設定
JAVA_HOME と PATH へ解凍したフォルダの設定が必要になります。
例)JAVA_HOME=D:\jdk-19.0.1
例)PATH=%JAVA_HOME%\bin

Android Studio
Android アプリの開発環境である Android Studio をインストールします。
アプリを仮想スマートフォン上で実行するために使用します。
- ダウンロード
Download Android Studio ページから最新リリースをダウンロードします。
この記事の執筆時は、Dolphin 2021.3.1 Patch1 でした。 - インストール
ダウンロード完了したら、デフォルト設定のままでインストールを完了させます。 - 仮想デバイスの作成
Android Studio を起動して「More Actions」から「Virtual Device Manager」を選択します。
今回は Pixcel 3a の Play Store 対応デバイスを作成しました。 - システム環境変数の設定
仮想デバイスを作成した際にインストールしたSDKのフォルダパスを
ANDROID_HOME として環境変数に追加します。

node.js
Appium で使用するドライバーのインストールに必要となります。

- ダウンロード
Download Node.js ページから、最新リリースをダウンロードします。
この記事の執筆時は、v18.12.1 でした。 - インストール
ダウンロード完了したら、デフォルト設定のままでインストールを完了させます。
Appium Desktop
Appium はオープンソースで開発されているため、ソースコードからインストールすることも可能ですが、
付随するパッケージ類もインストールが必要となるため手順が面倒になります。
そこで、必要なパッケージが全て入っている Appium Desktop を使用することにします。
- ダウンロード
GIT Hub のリリースページから最新版をダウンロードします。
この記事の執筆時は、v1.22.3-4 でした。 - インストール
ダウンロード完了したら、デフォルト設定のままでインストールを完了させます。 - 設定の確認
Appium Server GUI を起動し、Edit Configurations で現在の設定を確認します。
先ほど設定した環境変数 ANDROID_HOME と JAVA_HOME が設定されていればOKです。
サンプルApps
Appium 公式が提供しているサンプルプログラムを使用します。
最新バージョンのツリーからは削除されているため、v1.x 系のツリーからダウンロードします。

Appiumの試験コード
先ほど Appium 公式からダウンロードした Android App は、Text Box が表示されるものです。
Text Box に入門でお馴染みの「Hello World!」を表示して、検証する試験コードを紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// javascript const wdio = require("webdriverio"); const assert = require("assert"); const opts = { path: '/wd/hub', port: 4723, capabilities: { platformName: "Android", platformVersion: "11", // ←環境に合わせる deviceName: "Android Emulator", // ←環境に合わせる app: "C:\\XXXX\\ApiDemos-debug.apk", // ←環境に合わせる appPackage: "io.appium.android.apis", appActivity: ".view.TextFields", automationName: "UiAutomator2" } }; async function main () { const client = await wdio.remote(opts); const field = await client.$("android.widget.EditText"); await field.setValue("Hello World!"); const value = await field.getText(); assert.equal(value,"Hello World!"); await client.deleteSession(); } main(); |

実行方法
Web Driverの準備
先ほどの試験コード「sample.js」がある場所まで移動し、以下のコマンドを実行します。
command
$ npm init -y
$ npm install webdriverio
仮想デバイスの起動
Android Studio で作成した「Pixel 3a」の仮想デバイスを起動します。
Appium Server GUI の起動
インストールした Appium Server GUI を起動し、Appium Server を起動します。
試験コードの実行
以下のコマンドで実行します。
command
$ node sample.js
実行結果
command
[HTTP]
[Instrumentation] .
[Instrumentation] Time: 5.095
[Instrumentation]
[Instrumentation] OK (1 test)
[Instrumentation] The process has exited with code 0
トラブルシューティング
Android SDKが見つからない
ANDROID_HOME の環境変数が正しく設定されていない可能性があります。
「C:\Users\XXXX\AppData\Local\Android\Sdk」のように設定されているか確認しましょう。
JDK/Java.exe が見つからない
JAVA_HOME または PATH の環境変数が正しく設定されていない可能性があります。
「D:\Application\jdk-19.0.1」のように JAVA_HOME が設定されているか、
また「D:\Application\jdk-19.0.1\bin」が PATH の中に含まれているか確認しましょう。
Application XXXX.apk が見つからない
sample.js に記述した opts.app の設定値(APKのパス)を確認しましょう。
Windows の場合、「\」を「\\」にエスケープしてあげる必要があります。