アプリ開発やサイト制作のスマホ端末実機検証・テスト-Remote TestKit

Remote TestKit の使い方

NativeDriver連携のチュートリアル


概要

テスト自動化ツールであるNativeDrvierをRemote TestKit経由でもご利用いただけます。
NativeDriverとは、Androidのネイティブアプリケーションにより最適化されたテストフレームワークです。
このフレームワークとRemote TestKitを組み合わせることで、様々な端末でネイティブアプリケーションの自動テストを行うことができます。

※また、本記事ではNativeDriverのチェックアウト・ビルドに必要な環境やeclipse等の導入・設定方法については割愛します。


NativeDriverのダウンロードとビルド

まずはNativeDriverのソースをダウンロードします。GoogleCodeにあるGettingStartedAndroidからNativeDriverをチェックアウトします。(※途中、iphone用のソースチェックアウト時にユーザ名とパスワードを聞いてきますが、何も入力せずエンターを押下してください)

svn checkout http://nativedriver.googlecode.com/svn/trunk nativedriver

チェックアウトしてきたソースディレクトリに移動して、ビルドします。ビルドはantコマンドで行います。

cd nativedriver/android
ant

ビルドが成功すると、buildディレクトリ配下のようなファイル・ディレクトリが生成されているはずです。

$ cd build/
$ ls -la
合計 32816
drwxr-xr-x+ 1 testuser なし        0 7月  25 20:23 .
drwxr-xr-x+ 1 testuser なし        0 7月  25 20:23 ..
-rwxr-xr-x  1 testuser なし    15518 7月  25 20:23 client.jar
-rwxr-xr-x  1 testuser なし 14267411 7月  25 20:23 client-prejarjar.jar
-rwxr-xr-x  1 testuser なし  1764901 7月  25 20:23 client-standalone.jar
-rwxr-xr-x  1 testuser なし     7660 7月  25 20:23 common.jar
-rwxr-xr-x  1 testuser なし    76742 7月  25 20:23 server.jar
-rwxr-xr-x  1 testuser なし 15047644 7月  25 20:23 server-prejarjar.jar
-rwxr-xr-x  1 testuser なし  2407619 7月  25 20:23 server-standalone.jar

NativeDriverサンプルのインポート

チェックアウトしてきたNativeDriverのソースにはテストのサンプルコードとテストコードが同梱されていますので、こちらを使ってRemote TestKitの連携を試します。
インポートの大まかな流れは以下のようになります。

  1. Eclipseを起動
  2. Eclipseのメニューから "File" -> "Import" をクリック
  3. "General" -> "Existing Projects into Workspace" を選択して [Next] ボタンをクリック
  4. [Browse]ボタンをクリックして "nativedriver/android" ディレクトリ を指定
  5. "Projects" に "android-test" と "simplelayouts" が追加されたことを確認して [Finish] ボタンをクリック
NativeDriverサンプルのインポート

インポートが完了すると、Package Explorerには以下のように表示されるはずです。

NativeDriverサンプルのインポート

サンプルへNativeDriverの組み込み

サンプルのアプリケーション、およびテストにNativeDriverを組み込みます。

サンプルアプリケーション「simplelayouts」のプロジェクトを右クリックしてプロパティを開き、左メニューから「Java Build Path」をクリックし、「Android 2.3.3(※)」,「server-standalone.jar」にチェックを入れて [OK] をクリックします。
(※)サンプルアプリケーション「simplelayouts」はAndroid SDKのバージョンがGettingStartedAndroidドキュメントの中で2.2 or laterと指定されているので、あらかじめAndroid SDK Managerから2.3.3用のパッケージをインストールしておいてください。

プロジェクトのビルドターゲットを2.3.3にしておきます。

サンプルへNativeDriverの組み込み

Java Build Pathを選択し、「Andorid2.3.3」と「server-standalone.jar」にチェックを入れて保存します。

サンプルへNativeDriverの組み込み

サンプルテスト「android-test」のプロジェクトを右クリックしてプロパティを開き、左メニューから「Java Build Path」をクリックし、「client-standalone.jar」と「JUnit3」にチェックを入れて [OK] をクリックします。

サンプルへNativeDriverの組み込み

Remote TestKitで端末をレンタル・設定

前述の通り、サンプルアプリケーション「simplelayouts」のBuild Targetを2.3.3と指定したので、Remote TestKitでも2.3.3の端末をレンタル・起動してから「端末の操作」を参考に、端末ウィンドウより[設定 - 仮想adb有効化]を有効化します。
コマンドラインツールを起動し、以下のコマンドを入力して接続している端末のデバイスIDを取得します。

adb devices

デバイスIDは以下のように返ってきます。下記の場合、デバイスIDは「optimusbrightl-07c.appkitbox.com:52439」になります。

adb devices List of devices attached optimus_bright_l-07c.appkitbox.com:52439   device

次にポートフォワードを行うため、以下のコマンドを入力します。

adb -s [deviceID] forward tcp:54129 tcp:54129
コマンド入力

アプリケーションのビルドとインストール

サンプルアプリケーション「simplelayouts」を右クリックして "Run as" -> "Android Application" を選択するとビルドおよびインストールが開始されます。

アプリケーションのビルドとインストール

※もし、インストールがtimeoutで失敗した場合はeclipseのメニューから[Window] -> [Preferences]を選択するとPreferencesダイアログが表示されるので、メニューの "Android" から "DDMS" を選択し、ADB connection timeout値を大きく(例:10000)して再度試してみて下さい。

Remote TestKitでレンタルした端末にアプリケーションがインストールされたことを確認したら、次のコマンドを実行しinstrumentationを有効にしてアプリを再起動します。

adb shell am instrument com.google.android.testing.nativedriver.simplelayouts/
com.google.android.testing.nativedriver.server.ServerInstrumentation

eclipseのlogcatに "Jetty started on port 54129" とメッセージが出ていれば準備完了です。

アプリケーションのビルドとインストール

テスト実行

サンプルテスト「android-test」を右クリックして "Run as" -> "JUnit Test" を選択するとテストが開始されます。

テスト実行

※本情報は掲載時点の情報となります