09.モバイルでのテスト
はじめに
近年はスマートフォンの普及が進み、Webアプリケーションのモバイルを対象としたテストの重要性が高まっています。ここでは Appium を利用してAndroid端末(例として、Android 4.4.4 Xperia Z3)でテストをするための環境を構築します。
Appiumとは
AppiumとはSeleniumのWebDriverインターフェース経由でAndroidやiPhone等のモバイル端末でWebアプリケーションをテストすることができるオープンソースソフトウェアです。Pitaliumはモバイル端末でのテスト実行にAppiumを利用します。
事前準備
以降の作業は、Selenium Grid環境と同じ端末の上で行うことを想定しています。
※異なる端末上でモバイルのテストを動作させたい場合は、Selenium Grid Hubサーバーへの登録の際、設定値を書き換える必要があることに注意して下さい。
Android SDKのインストール
AppiumはAndroidのデバッグツールを利用するためAndroid SDKのインストールとセットアップが必要です。
- こちらから android-sdk_rXX-windows.zip をダウンロードします。
2016年4月現在のバージョンは r24.4.1 です。 - ダウンロードしたzipファイルを解凍し、適当な位置へ移動します。
ここでは C:\opt\android へ移動したこととします。 - C:\opt\android\SDK Manager.exe を起動し、以下のパッケージをインストールします。
・Android SDK Platform-tools
・Android SDK Build-tools (番号が最も新しいものを1つ) - C:\opt\android\platform-tools へパスを通します。
Node.jsのインストール
Appiumは Node.js 上で動作するため、Node.jsのインストーラーをダウンロードしてインストールを行います。
Gitのインストール
AppiumのインストールにGitが必要ですので、こちらからインストーラをダウンロードしてインストールを行います。
環境変数の設定
Appiumの動作にはAndroidとJavaの場所を環境変数に登録する必要があります。以下の二つを登録します。
環境変数名 | 値の例 |
---|---|
ANDROID_HOME | C:\opt\android |
JAVA_HOME | C:\Program Files\Java\jdk1.8.0_77 |
Appiumの準備
Appiumのインストール
コマンドプロンプトを開き以下のコマンドを実行すると最新のAppiumがインストールされます。
2016年4月現在の最新バージョンは 1.5.1 です。
>appium -v
1.5.1
Appiumの動作確認
コマンドプロンプトを開き以下のコマンドを実行するとAppiumが動作可能かを確認することが出来ます。
iOSテスト環境のチェックを実行するには ios 、Android環境のチェックは android オプションを設定します。
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ ANDROID_HOME is set to: C:\opt\android
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_77
info AppiumDoctor ✔ adb exists at: C:\opt\android\platform-tools\adb.exe
info AppiumDoctor ✔ android exists at: C:\opt\android\tools\android.bat
info AppiumDoctor ✔ emulator exists at: C:\opt\android\tools\emulator.exe
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
Selenium Grid Hubサーバーへの登録
Selenium Grid から Appium を利用するには、ノードサーバーの起動と同様にAppiumノードをSelenium Grid Hubに登録する必要があります。
こちらを参考に例えば以下のJSONを使用します。サンプルではファイル名を C:\opt\appium\nodeConfig.json とします。
version の値を分かりやすい名前にしておくと複数のAndroidデバイスを繋いだ時にGrid Hubサーバーのコンソール画面で判別がしやすくなります。
"capabilities": [
{
"platform": "ANDROID",
"browserName": "chrome",
"version": "4.4.4 Xperia Z3",
"platformName": "Android",
"platformVersion": "4.4.4",
"deviceName": "Xperia Z3",
"maxInstances": 1,
"seleniumProtocol": "WebDriver"
}
],
"configuration": {
"cleanUpCycle": 2000,
"timeout": 30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"host": "127.0.0.1",
"port": 4723,
"maxSession": 1,
"register": true,
"registerCycle": 5000,
"hubPort": 4444,
"hubHost": "localhost"
}
}
※Selenium Grid Hubサーバーが動作している端末とAppiumを動作させる端末が異なる場合は、"hubHost"の設定値をSelenium Grid Hubサーバーが動作している端末のホスト(IPアドレス)に書き換えてください。
そしてコマンドプロンプトを開き起動コマンドを実行します。
※nodeConfig.jsonファイルへのパスは、絶対パスで指定して下さい。
※Android 4.2以降のデバイスが対象です。それ以前のバージョンはこちらをご参照ください。
動作確認
テストを実行するPCにAndroidデバイスを接続します。デバイスの設定で、USBデバッグを有効にして下さい。
次のcapabilities.jsonを作成してテストを実行し、モバイルデバイス上でテストが動作することを確認します。
{
"platform": "ANDROID",
"browserName": "chrome",
"version": "4.4.4 Xperia Z3",
"platformName": "Android",
"platformVersion": "4.4.4",
"deviceName": "Xperia Z3"
}
]
次のステップ ⇒ 10.Pitalium Explorerを使用してテスト結果を確認する