Androidテストチュートリアル(16):monkeyrunnerの概要
2247 ワード
自動テストが必要な場合、Androidのmonkeyrunnerツールは自動テストを実現するのに役立ちます.Androidデバイスやシミュレータを制御するためのAPIのセットを提供しています.monkeyrunnerを使用して、Pythonプログラムを作成してAndroidアプリケーションやテストパッケージをインストールしたり、アプリケーションやテストを実行したり、ボタンメッセージを送信したり、スクリーンを切ることができます.そしてコンピュータに保存します.monkeyrunnerの主な目的は、アプリケーションまたはフレームワーク階層でアプリケーションをテストしたり、ユニットテストパッケージを実行したりすることですが、他の目的としても使用できます.
monkeyrunnerツールパッケージはUI/APplication Exerciser Monkey(Moneyとも呼ばれる)とは異なり、moneyはadb shellで実行され、「サル」ランダムキーをシミュレートしたり、指定したアプリケーションにシステムメッセージを送信したりしてStressテストを実現することができます.
monkeyrunner APIは主に次の3つのパケットを通過します. MonkeyRunner:主にmonkeyrunnerアプリケーションの補助方法、およびデバイスまたはシミュレータをリンクする方法、UIサポートなどを提供します. MonkeyDevice:デバイスまたはシミュレータを代表し、インストール、アプリケーションのアンインストール、Activityの起動、キーの送信、Touchイベントの送信などを提供します. MonkeyImage:1つのスクリーンショット画像を表し、異なるフォーマットの画像を切り取り、2つのMonkeyImage画像を比較し、画像などを保存することができます.
以下はPythonが書いたmonkeyrunnerアプリケーションです.Python言語にかかわるため、ここでは詳しく説明しません.
詳細なAPIの説明はAndroidドキュメントを参照してください.自動テストを実現し、テストコードを作成する必要がある場合は、Pythonを使用してmonkeyrunner APIを通じて実現できます.
monkeyrunnerツールパッケージはUI/APplication Exerciser Monkey(Moneyとも呼ばれる)とは異なり、moneyはadb shellで実行され、「サル」ランダムキーをシミュレートしたり、指定したアプリケーションにシステムメッセージを送信したりしてStressテストを実現することができます.
monkeyrunner APIは主に次の3つのパケットを通過します.
以下はPythonが書いたmonkeyrunnerアプリケーションです.Python言語にかかわるため、ここでは詳しく説明しません.
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Installs the Android package. Notice that this method returns a boolean,
# so you can test to see if the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')
# sets a variable with the package's internal name
package = 'com.example.android.myapplication'
# sets a variable with the name of an Activity in the package
activity = 'com.example.android.myapplication.MainActivity'
# sets the name of the component to start
runComponent = package + '/' + activity
# Runs the component
device.startActivity(component=runComponent)
# Presses the Menu button
device.press('KEYCODE_MENU','DOWN_AND_UP')
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('myproject/shot1.png','png')
詳細なAPIの説明はAndroidドキュメントを参照してください.自動テストを実現し、テストコードを作成する必要がある場合は、Pythonを使用してmonkeyrunner APIを通じて実現できます.