Intelligent Technology's Technical Blog

株式会社インテリジェントテクノロジーの技術情報ブログです。

Androidアプリ開発Tips「テストツール:Monkey」

こんにちわ、石尾です。

今回は、AndroidSDKの同梱されているテストツール「Monkey」を紹介します。

http://developer.android.com/intl/ja/tools/help/monkey.html

Monkeyは、ADB接続したエミュレータやデバイスに対して、ユーザー操作やシステムのイベントをランダムに発生させることができます。
このMonkeyを利用することで、簡単にストレステストが実施できます。

Monkeyを実際に動かしてみます。

エミュレータを起動します。
「adb shell monkey 500」コマンドを実行、
「500」は、発生するイベントの回数です。
エミュレータでは、勝手にイベントが発生して画面が切り替わります。
f:id:IntelligentTechnology:20130805200722p:plain


次にMonkeyの代表的なコマンドオプションについて、説明します。

①コマンドオプション「-v」:冗長レベルの指定
デフォルトは、レベル0です。上記(デフォルト)では、開始終了時の最小限の情報を出力します。
「-v」を増やすことで、冗長レベルを上げて、出力情報をより詳しく表示します。
「adb shell monkey -v 500」として、コマンドを実行すると、出力情報が増えることがわかります。
f:id:IntelligentTechnology:20130805200725p:plain

②コマンドオプション「-p」:テスト対象のパッケージ指定
指定しない場合、システムすべてのパッケージが対象となります。
また、「-p package1 -p package2」として、複数指定することも可能です。
「adb shell monkey -p com.example.sample1 -v 500」として、コマンドを実行すると、
AllowPackage項目で、対象パッケージが指定されていることがわかります。
※com.example.sample1は、自作アプリのパッケージ名です。
f:id:IntelligentTechnology:20130805200730p:plain


③コマンドオプション「--throttle」:イベントの間の遅延設定(ミリ秒)
デフォルトは、0ですので、イベント間に遅延がなく実行されます。
「adb shell monkey -p com.example.sample1 -v --throttle 10000 2」として、コマンドを実行すると、
10秒後に2回目のイベントが実行されていることがわかります。
f:id:IntelligentTechnology:20130805200734p:plain

※最後に注意点:
コマンドオプション「--hprof」:プロファイルレポートの作成
プロファイルレポートは、/data/miscに自動生成すると記載されていますが、
実際は、何も出力されないため、独自にプロファイルレポートを出力しましょう。

以上、簡単な紹介ですが、Monkeyのようなイベントを人が発生させることは難しいので、
アプリを開発したあとに、Monkeyでテストしてみてください。