本連載では、スマートフォン(Android/iOS)アプリ開発における、システムテストを自動化するツールを紹介しています。今回は、Android SDK標準の何でもテストツールuiautomatorの使い方の応用編として、uiautomatorviewer、UiScrollableの使い方、テキスト入力API制限事項の回避方法などを紹介。
今回は「uiautomator(応用編)」として、uiautomatorをより便利に使うためのさまざまなノウハウについて説明します。
uiautomatorの基本的な使い方および、本記事で紹介しているテストスクリプトのセットアップから実行までの方法については、前回記事「Android SDK標準の何でもテストツールuiautomatorの基本的な使い方」を参照してください。
なお、本記事で利用するサンプルアプリとuiautomatorのテストスクリプトは以下のリポジトリで公開しています。
uiautomatorのテストスクリプトで、UIコンポーネントを特定するための条件は、アプリの画面を見だけでは分からないケースがあることを、前回の記事で触れました。
Android SDKに付属しているuiautomatorviewerを使うと、テスト対象アプリのソースやレイアウト定義を参照することなく、画面上のコンポーネント構成を調べることができます。
ここでは、サンプルアプリの詳細画面のコンポーネント構成を実際に調査してみましょう。
最初に、テストを実行したい端末上で、調査したい画面を表示させる必要があります。ここでは、テスト対象となるサンプルアプリの「詳細画面」を表示させてみましょう。
次に、その端末をUSBケーブルなどでPCに接続し、adb(Android Debug Bridge)で認識された状態にしておきます。
以下のコマンドを実行すると、uiautomatorviewerツールが起動します。
$ uiautomatorviewer
ツールバーにある「Device Screenshot (uiautomator dump)」ボタン(下図の赤枠部分)を押すことで、adb接続されている端末の画面情報を取得できます。
端末の画面情報の取得が成功すると、uiautomatorviewerツールの三つのペインに、取得した情報が表示されます。
左側のペインには取得した端末の画面スクリーンショットが表示されます。
右上のペインにはUIコンポーネントのツリー構造が表示されます。「Expand Allボタン」を押すことで、閉じたツリーを全て展開することもできます。
右上のペインから調査したいUIコンポーネントを選択すると、右下のペインに選択したUIコンポーネントの属性の一覧が表示されます。左側の画面スクリーンショットから、調査したいUIコンポーネントを選択することもできます。
この画面は、名前入力欄を選択したときのものです。名前入力欄のcontentDescription属性(ツール上の表記はcontent-descと省略されています)が「name textfield」であることが分かります。
EclipseやAndroid Studioでも、DDMSからuiautomatorviewer相当の機能を使えます。
端末の画面情報を取得するには、DDMSの[Devices]ビュー上にある、iautomatorviewerと同じ絵柄のアイコンのボタンを押してください。
Copyright © ITmedia, Inc. All Rights Reserved.