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言語にかかわるため、ここでは詳しく説明しません.
    # 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を通じて実現できます.