本稿では、モバイル端末でGUIテストが行えるAppiumをWindow + Node.jsで環境構築する手順を説明しています。
Appiumの概要に関しては、こちらの記事をご参照ください。
しかし、WindowsだとiOSデバイスのテストが出来ないので、可能な限りMac環境を用意する事が望ましいです。
実施環境
- Windows7
- Appium v1.4.16.1
- Node.js v5.2.0
環境構築
Javaインストール
以下のコマンドでJavaがインストールされているか確認する。
$ java -version
Javaがインストールされていない場合はこちらのサイトからダウンロードする。
Android SDKインストール
以下のコマンドでAndroid SDKがインストールされているか確認する。
$ adb
Android SDKがインストールされていない場合は、こちらのサイトからAndroid Studioをダウンロードする。
SDK Managerを起動し、以下をインストールする。
※SDK-ManagerはデフォルトだとC:\Users\username\AppData\Local\Android\sdk
に格納されている。
- Tools
- Android SDK Tools
- Android SDK Platform-tools
- Android SDK Build-tools
- Android 4.4.2(API 19)
- Extras
- Google USB Driver
sdk
ディレクトリを変数名"ANDROID_HOME"として環境変数Pathに追加し、さらにsdk/platform-tools
ディレクトリも環境変数Pathに追加する。
Appiumインストール
Windowsの場合は、専用のGUIアプリケーション"AppiumForWindows"を使用するため、こちらのサイトからダウンロードする。
appium-doctorで環境チェック
appium-doctorを使用すれば、必要な環境・設定が揃っているかをチェックする事ができる。
appium-doctorをインストールする。
$ npm install -g appium-doctor
チェックを実行する。
※Windowsの場合はコマンドプロンプトで実行しないと正しくチェックされない場合がある。
$ appium-doctor
テストの実行
テストにはAppiumのサンプルコードを使用する事ができるので、ここではサンプルコードを使用してAppiumの動作確認を行う。
サンプルコードを任意のディレクトリにクローンしておく。
エミュレータでデバッグする場合
エミュレータを使用する場合は、AVD_Managerを起動し、Createボタンから適当な設定を行い、エミュレータを作成することができる。
エミュレータを作成後、Startボタンでエミュレータを起動できる。
起動後、コマンドラインから以下を実行し、adbで認識されている事を確認する。
$ adb devices
List of devices attached
emulator-5554 device
実機でデバッグする場合
USBケーブルでAndroid端末とPCを接続する。
Android端末側ではデバッグが出来るように設定する必要がある。
接続後、コマンドラインから以下を実行し、adbで認識されている事を確認。
$ adb devices
List of devices attached
BH905CM223 device
Appium起動
アプリケーションテストを行う場合は"Android Setting > Application Path"でapkファイルを指定。
サンプルコードを実行する場合は、\sample-code\sample-code\apps\android-rottentomatoes-demo-debug.apk
を指定する。
因みに、アプリケーションではなく、ブラウザテストを行う場合は、"Android Setting > Use Browser"を選択する。
"Launch the Appium Node Server"ボタンを押下し、Appiumサーバーを起動する。
テストスクリプト実行
コマンドラインからsample-code\sample-code\examples\node
直下に移動し、npmモジュールをインストールする。
$ npm install
以下のコマンドを実行するとサンプルのテストスクリプトが実行できる。
$ npm run android-simple
以上で環境構築は終わりです。
今回はサンプルコードを使用して、Androidのアプリケーションをテストしましたが、端末にプリインストールされているブラウザやChromeブラウザを使用して、Webのテストを行う事も出来ます。