Monkey、Monkey scriptとMonkeyrunner

3083 ワード

MonkeyテストはAndroidアプリケーションの頑丈性テストの手段としてよく使われています.
一連の擬似ランダム命令をデバイス/シミュレータにランダムに送信することをシミュレートすることで、アプリケーション/システムの安定性をテストする一般的な動作を検証します.基礎パラメータ
-sシードシーケンス、指定ランダムシーケンス-p指定イベントのパッケージ名-vログレベル--throttleイベント間隔
イベントのタイプ
--pct-touchタッチイベント、指を押して持ち上げるジェスチャー--pct-motionスライドイベント、ある位置で指を押して、距離をスライドしてから持ち上げる--pct-pinchzoom縮小イベント--pct-trackball軌跡球イベント、一連のランダム移動とクリックイベント--pct-syskeys系統ナビゲーションイベント、HOME、BACK、ダイヤルアップおよびボリュームキー--pct-nav基本ナビゲーションイベント、入力デバイスの上下左右--pct-majornav主要ナビゲーションイベント(ソフトキーボード)、中間キー、戻りキー、メニューキー--pct-appswitch起動Activity--pct-anyevent非常用イベント
デバッグオプション
--ignore-crashesクラッシュと例外を無視--igonre-timeoutsタイムアウトイベントを無視
利点:簡単で操作しやすい欠点:一定の操作を指向的に実行できず、ユーザーの使用習慣とはかけ離れた使用方法:adb shell monkey-pパッケージ名ランダム操作回数
Monkey scriptは、Monkeyによって認識されるコマンドのセットであり、繰り返しの固定操作を完了することができます.
一般的な操作は次のとおりです.
  • DispatchTrackballトラックボールイベント
  • DispatchPointerクリックイベント
  • DispatchString入力文字列イベント
  • LaunchActivity起動アプリケーション
  • UserWaitウエイトイベント
  • DispatchPressキー値
  • を押す
    利点:固定操作を繰り返すことができる欠点:スクリーンショット操作ができない、スクリプトがデバッグできない使用方法:adb shell monkey-fファイル回数
    単純なインスタンス:
    # activity
    LaunchActivity()
    UserWait()
    # 
    DispatchPointer()
    DispatchPointer()
    UserWait()
    # 
    DispatchString()
    UserWait()
    # 
    DispatchPress()
    UserWait()
    DispatchPointer()
    DispatchPointer()
    UserWait()
    

    よくある質問:
  • 実行時には、Monkey scriptファイルを接続デバイスにインポートする必要があります.Monkey scriptはmonkeyによって識別される操作のセットであり、monkeyは携帯電話システムにあるからです.
  • LaunchActivity()アプリケーションを起動する際には、アプリケーションが外部から呼び出すことを許可することを前提とし、ファイルAndroidMainfestを設定することができる.xmlにandroid:exported="true"
  • を追加
    Monkeyrunnnerは3つのAPIを提供し、APIを通じてシミュレーションイベントとスクリーンショット操作を完了することができる.
    マルチデバイステスト、機能テスト、回帰テストに使用できます.3大APIは以下の通りです.
    MonkeyRunner:デバイスまたはシミュレータを接続するMonkeyDevice:インストール、アンインストールアプリケーションを提供し、シミュレーションイベントを送信するMonkeyImage:画像保存を完了し、比較操作を行う
    利点:欠点:使用方法:monkeyrunnerファイル名monkeyrunnerファイル名
    一般的なAPI:
  • MonkeyRunner API -alert void alert(string message,string tittle,string okTittle)
  • MonkeyRunner API-waitForConnectionはデバイス接続を待機し、複数のデバイスidがあり、どのデバイスwaitForConnection(float timeout,stringデバイス)
  • を特定する必要があるかを示す必要がある.
  • MonkeyDeviceAPI-dragドラッグdrag(tuple start,tuple end,float duration,integer steps)start始点位置end終点位置durationジェスチャー持続時間steps補間点のステップ数、デフォルト10
  • MonkeyDeviceAPI-pressキーpress(string keycode,dictionary type)keycode値、Down、UP、DOWN_AND_UP
  • MonkeyDeviceAPI-startActivity起動アプリケーションstartActivity(package+'/'+activity)
  • MonkeyDeviceAPI-touchクリックtouch(integer X,integer y,intefer type)
  • MonkeyDeviceAPI-type入力type(string message)
  • MonkeyDeviceAPI-takeSnapshotスクリーンショットMonkeyImage takeSnapshot()
  • MonkeyImage API-sameas画像比較boolean sameas(MonkeyImage other,flost percent)
  • MonkeyImage API-writetoFile保存画像画像画像void writeToFIle(String path,string format)
  • 説明:monkeyrunnerは%Android SDK%/toolsの下にあるので、実行時にその場所を開くか、その経路を環境変数に設定する必要があります
    MonkeyとMonkeyrunnerの違い
    Monkey:adb shellで、ユーザーまたはシステムの擬似ランダムイベントを生成するMonkeyRunner:APIによって特定のコマンドおよびイベント制御デバイスを定義する
    Monkey安定性試験