本連載では、スマートフォン(Android/iOS)アプリ開発における、システムテストを自動化するツールを紹介しています。今回は他者の署名したアプリもテストできる、Android SDK標準の何でもテストツールuiautomatorの特徴や基本的な使い方について。
uiautomatorは、Android SDKに標準で含まれているテスト自動化ツールです。Apache License, Version 2.0のライセンスで提供されています。
uiautomatorの主な特徴は以下の通りです。
特に、最後に挙げた特徴はuiautomator最大のセールスポイントといえます。一連のテストで、テスト対象アプリでないものを操作したいケース(例えば、設定アプリでBluetoothやWiFiをON/OFFするなど)にも対応できます。
テスト対象のAndroidバージョンを4.1以降に絞ることができ、かつ、他者が作成したアプリをテスト(操作)したいのであれば、uiautomatorは魅力的な選択肢の1つになるでしょう。
他者の署名したアプリをテストでき、Android SDKに標準で含まれているテストツールとしては、他に「monkeyrunner」がよく知られています。
monkeyrunnerにはAndroid 4.1未満でも動作するという利点がありますが、テストスクリプトを書くときに、「座標(x=10,y=100)をタップする」のように、画面上の座標(dp単位ではなくpx単位)で操作対象を指定する必要があります。
そのため、「OKボタンをタップする」といった単純なテストスクリプトであっても、以下のようなケースが発生するたびに修正が必要となってしまい、使い勝手が良くありませんでした。
ここから先では、さまざまなコマンドやディレクトリが登場します。説明を簡単にするために以下の前提で解説します。
Apache Antの導入方法については以下の記事を参考にしてください。
Android SDKによって提供されているandroidコマンドを使うと、uiautomatorテストプロジェクトを作成できます。あらかじめ、テストプロジェクトをビルドするときのターゲットとなるSDK Platformを、Android SDK Managerを使ってインストールしておいてください。
例えば、「uiautomator」ディレクトリ配下にテストプロジェクトを作成する場合には、以下のコマンドを実行します。
$ android create uitest-project -p uiautomator -n UiautomatorSample -t android-19
ここで、-pオプションにはテストプロジェクトを作成するディレクトリへのパスを、-nオプションにはプロジェクト名称(ビルド時に生成されるjarファイル名などに使われます)を、それぞれ指定します。
また、-tオプションには、テストプロジェクトをビルドするときのターゲットSDKを指定します。
「android create uitest-project」コマンドの-tオプションに指定できる値を調べるには、「android list target」コマンドを使います。
コマンドを実行すると指定できるターゲットの一覧が表示されますので、「id:」欄に記載されている文字列を-tオプションに指定してください。例えば、以下の出力例では、4かandroid-19を指定すればAndroid 4.4.2を指定したことになります。
id: 4 or "android-19" Name: Android 4.4.2 Type: Platform API level: 19 Revision: 3 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in Tag/ABIs : default/armeabi-v7a, default/x86
コマンド実行が成功すると、以下のファイルが生成されます。
ファイル名 | 内容 |
---|---|
build.xml | テストスクリプトをビルド・インストールするためのApache Antのビルドスクリプト |
local.properties | {ANDROID_HOME}が記録されているプロパティファイル |
project.properties | -tオプションで指定したターゲットSDKが記録されているプロパティファイル |
src/ | テストスクリプトを格納するためのディレクトリ。記述したテストスクリプトはJavaのパッケージに対応したサブディレクトリの下に保存 |
テストスクリプトのビルド・インストール・実行の方法は「テストの実行」の章で説明します。
なお、前回の「システムテスト自動化の基礎知識とMonkeyTalkの使い方」で紹介したサンプルアプリと同じリポジトリの「uiautomator」ディレクトリに、実際に動作するテストスクリプトのサンプルを公開しました。併せて参考にしてください。
サンプルアプリのインストール方法については前回記事を参照してください。加えて、build.xmlなどを生成するために、本節で紹介した以下のコマンドをプロジェクトルートで実行してください。
$ android create uitest-project -p uiautomator -n UiautomatorSample -t android-19
環境が構築できたので、テストスクリプトの記述のために知っておくべきことを、コード例を交えて説明します。
テストスクリプトの編集には、任意のエディターを利用できますが、Eclipseを使う場合には、以下の手順で作成したテストプロジェクトを読み込んでください。
まず、Eclipseのメニューから[File]→[New]→[Java Project]を選択します。
次に、[Use default location]のチェックを外し、作成したテストプロジェクトのディレクトリを指定し、[Next]ボタンを押します。
[Java Settings]ダイアログが表示されるので、[Libraries]タブに切り替え、以下のライブラリを追加し、[Finish]ボタンを押します。成功すればPackage Explorerに読み込んだテストプロジェクトが表示されます。
最後に、[Package Explorer]でテストプロジェクトを選択した状態で、メニューから[Project]→[Properties]を選択します。[Resources]→[Text file encoding]の値を「UTF-8」に設定します。
Copyright © ITmedia, Inc. All Rights Reserved.