ホームページ >よくある問題 >モンキーコマンドって何に使うんですか?

モンキーコマンドって何に使うんですか?

青灯夜游
青灯夜游オリジナル
2021-02-08 17:23:3714559ブラウズ

Monkey は Android のコマンド ライン ツールです。Monkey コマンドは、擬似ランダムのユーザー イベント ストリーム (キー入力、タッチ スクリーン入力、ジェスチャ入力など) をシステムに送信して、ストレス テストを実装します。開発中のアプリケーションです。

モンキーコマンドって何に使うんですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

1. Monkey の概要

Monkey は SDK に含まれるツールです。 Monkey は、エミュレーターまたは実際のデバイス上で実行できる Android のコマンド ライン ツールです。擬似ランダムのユーザー イベント ストリーム (キー入力、タッチ スクリーン入力、ジェスチャ入力など) をシステムに送信して、開発中のアプリケーションのストレス テストを実装します。モンキー テストは、ソフトウェアの安定性と堅牢性をテストするための迅速かつ効果的な方法です。

このツールはストレス テストに使用されます。次に、開発者は、モンキーによって出力されたログとシステムによって出力されたログを組み合わせて、テストの問題を分析します。

モンキー テストの特徴:

モンキー テスト、すべてのイベントはランダムに生成されます。 、人間の主観は一切ありません。

1. テスト オブジェクトはアプリケーション パッケージのみであり、これには特定の制限があります。

2.Monky テストで使用されるイベント データ ストリームはランダムであり、カスタマイズできません。

3. MonkeyTest オブジェクト、イベント番号、タイプ、頻度などを設定できます。

2. Monkey の基本的な使い方

基本的な構文は次のとおりです:

$ adb Shell Monkey [options]

オプションが指定されていない場合、Monkey は非フィードバック モードで起動し、ターゲット環境にインストールされているすべてのパッケージにイベントを送信します。以下は、指定されたアプリケーションを起動し、500 個の疑似ランダム イベントをそれに送信する、より一般的なコマンド ラインの例です:

$ adb shell Monkey -p your.package.name -v 500
Android を使用する場合自動テスト ツール Monkeyrunner を使用してアプリケーションを開始するには、テスト対象プログラムのパッケージ名と開始されたアクティビティを入力する必要があります。アプリケーション パッケージ名とエントリ アクティビティ名を表示するには、2 つの方法があります:

方法 1 : aapt を使用します //aapt は、sdk\builds-tools\ ディレクトリにある sdk に付属するツールです。

1. ES ファイル ブラウザを例として、コマンドで aapt.exe ディレクトリに切り替えますaapt dump badging E:\apk\es3.apk

2.

注: aapt.exe は、Android SDK ディレクトリを検索すると見つかります。見つからない場合は、 apktoolをダウンロードします。

3. Monkey テストの例

この例を通じて、Monkey テストの手順と、どのアプリケーションをテストできるかを知る方法を理解できます。猿 。

Windows の場合 (注: ステップ 2 ~ 4 は、どのアプリケーション パッケージがテスト可能で省略できるかを確認するためのものです):

1. Eclipse を通じて Android エミュレータを起動します

2. コマンドラインに「adb devices」と入力して、デバイスの接続ステータスを確認します。

C:\Documents と 設定\管理者>adb devices

接続されているデバイスのリスト

emulator-5554 device

3. デバイスが接続されている前提で、コマンドに adb shell を入力します。行 シェルインターフェイス

C:\Documentsを入力し、 設定\管理者> adb シェル

#4. data/data フォルダー内のアプリケーション パッケージを表示します。注: テストできるアプリケーション パッケージはすべて、このディレクトリ

C:\Documents にあります。 設定\管理者>adb shell

# ls data/data

ls data/data

5. MonkeyTest

を実行するオブジェクトとして com.android.calculator2 を使用します。

#monkey -p com.android.calculator2 -v 500

ここで、-p はオブジェクト パッケージを表します。 –v はフィードバック情報レベルを表します

実行プロセス中、エミュレータは常に画像を切り替えています。

選択したさまざまなレベルのフィードバック情報に従って、その実行プロセス レポートと生成されたイベントを Monkey で確認することもできます。

四、monkey help コマンドを使用します コマンドパラメータ

#C:\Users\chenfenping>adb Shell Monkey -help
使用法: サル [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore- crashes] [--無視タイムアウト]
[--ignore-security-例外]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error ] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[-- pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT ]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[ --setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[ --throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[ --script-log]
[--bugreport]
[--periodic-bugreport]
COUNT

1 パラメータ: -p

约束制限に使用されます。このパラメータを使用して 1 つまたは複数のパケット (パッケージ、つまり App) を指定します。パケットを指定すると、monkey はシステムによる指定された APP の起動のみを許可します。パケットが指定されない場合、システムによるデバイス内のすべての APP の起動が許可されます。 #* 一つの包を指定: adb Shell Monkey -p cn.emoney.acg 10

* 複数の包を指定:adb Shell Monkey -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100

* 不指定包:adb Shell Monkey 100

2 パラメータ: -v

反馈情報の指定に使用されます。レベル(情報级别就は日志の详细度),总共分3 级别,個別对应的パラメータ如下表示:

日志级别 Level0

例 adb Shell Monkey -p cn.emoney .acg –v 100

说明缺省值,仅提供启動提案、测试完了、最終結果等少量の情報

日志级别 レベル 1

例 adb シェル モンキー - p cn.emoney.acg –v -v 100

説明は、アクティビティに送信される各イベント情報を含む、较细な日志を提供します

日志级别レベル 2

例adb Shell Monkey -p cn.emoney.acg –v -v –v 100

说明最详细的日志、测试中选中/未选中のアクティビティ情報を含む

3 パラメータ: - s

は、有機数生成器のシード値を指定するために使用されます。シードが同じであれば、2 回のMonkey テストで生成されるイベント シーケンスも同じです。

Monkey テスト 1: adbshel​​l Monkey -p cn.emoney.acg -s 10 100

Monkey 测试 2:adb シェル モンキー -p cn.emoney.acg –s 10 100

模擬のユーザ操作シーケンス(各操作は一定の先行シーケンスに従って構成される一連の操作、つまりシーケンス)が類似しているため、2 回のテストの結果は同じです。 ##4 パラメータ: --throttle<秒>

ユーザー操作 (つまり、イベント) の間の時間遅延を指定するために使用されます。単位は秒です。

adb shell Monkey -p cn.emoney .acg --スロットル 5000 100

5 パラメータ: --ignore-crashes

は、アプリケーション プログラムがダウンしたとき (Force&Close ボタン)、Monkey が実行を停止したかどうかを指定するために使用されます。 ,イベント数が完了するまで、Monkey は引き続きイベントを送信します。

adb shellmonkey -p cn.emoney.acg --ignore-crashes 1000

测试过中即使用程序崩壊,Monkey 依然会继续送信イベント最後までイベント数目达到 1000 止

adbshel​​lmonkey -p cn.emoney.acg 1000


テスト中、acgプログラムが崩壊した場合、Monkeyは実行を停止します

6 パラメータ: --ignore-timeouts

当アプリケーションプログラムが発生するANR(アプリケーションを指定するために使用されます)このパラメータを使用する場合、アプリケーションが ANR チェックを発生しても、Monkey はイベントの数が完了するまで引き続きイベントを送信します。 --ignore-timeouts 1000

7 パラメータ: --ignore-security-Exceptions

当应用程序発行许可错误時(证书许可、网络许可等)、Monkey かどうかの指定に使用されます。このパラメータを使用する場合、アプリケーション プログラムが許可メッセージを生成しても、イベント数が完了するまで、Monkey はイベントを送信し続けます。

adb shellmonkey -p cn.emoney.acg --ignore-security-Exception 1000

8 パラメーター: --kill-process-after-error

は、エラーが発生したときにアプリケーションを停止するかどうかを指定するために使用されます。このパラメーターが指定されている場合、アプリケーションでエラーが発生すると、アプリケーションは実行を停止し、現在の状態

のままになります (注: アプリケーションはエラーが発生したときのみ状態を維持し、システムは維持されません)アプリケーションのプロセスを終了します)。

adb shellmonkey -p cn.emoney.acg --kill-process-after-error 1000

9 パラメーター: --monitor-native-crashes

は、アプリケーションのクラッシュについてローカル コードを監視および報告するかどうかを指定するために使用されます。

adb shellmonkey -p cn.emoney.acg --monitor-native-crashes 1000

10 パラメーター: --pct-{イベント カテゴリ}{イベント カテゴリの割合}

は、イベントの各カテゴリの数と割合を指定するために使用されます ( Monkey イベントでは、シーケンス内で、そのようなイベントの数がイベントの総数の割合を占めます)
例:
--pct-touch{Percent}
Adjustタッチ イベントの割合 (タッチ イベント はダウンアップ イベントで、画面上の 1 つの場所で発生します)

adb Shell Monkey -p cn.emoney.acg --pct-touch 10 100

--pct-motion {Percent}
モーション イベントの割合を調整します (アクション イベント はモーションによって決まります)画面上のどこかのイベント ダウン イベント、一連の擬似ランダム イベント、およびアップ イベントで構成されます)

adb shell Monkey -p cn.emoney.acg --pct-motion 20 1000

--pct-trackball {Percentage}
トラック イベントの割合を調整します (トラック イベント は 1 つまたは複数で構成されます)ランダムな動きで構成され、クリックを伴う場合もあります)

adb シェル モンキー -p cn.emoney.acg --pct-trackball 30 1000

--pct-nav {パーセント}

「基本的な」ナビゲーション イベント (ナビゲーション イベント##) の割合を調整します。 # 方向入力デバイスからの上下左右で構成されます)

adb Shell Monkey -p cn.emoney.acg --pct-nav 40 1000

--pct-

majornav {Percent}「メジャー」ナビゲーション イベントの割合を調整します (これらのナビゲーション イベントは通常、グラフィカル インターフェイスでアクションをトリガーします) 、例: 中央ボタン、戻るボタン、5 ウェイ キーボードのメニュー ボタン)

adb Shell Monkey -p cn.emoney.acg --pct-majornav 50 1000

7. Monkeylog の出力

Monkey を実行しているとき、またはプログラム ログをキャプチャしてエクスポートしたいとき、「D:monkeytest を作成できません」というプロンプトが表示されることがあります。 .txt: 読み取り専用ファイル システム

なぜ可能な場合と不可能な場合があるのでしょうか?

後で気づいたのですが、これは私の使用習慣と異なっており、ある時は最初に adb シェルに入ってからコマンドを使用し、またある時は直接コマンドを入力していました。

adb シェルに入るとコマンドは失敗します~

正しい方法: シェルを終了するかコマンドを実行する前にシェルに入らないでください

C:\Documents and 設定\管理者> adb shell Monkey -p パッケージ名

-v 300 >e:\text.txt

adb シェルに入った後は、Linux のルートに入るのと同じです。 ~

5. モンキーテスト結果解析

1. 予備解析方法

モンキーテストでエラーが発生した後、一般的なエラーチェックを行います。手順は次のとおりです:


1. Monkey でエラーが発生した場所を見つけます

2. エラーが発生する前に Monkey でいくつかのイベント アクションを確認し、アクションを手動で実行します

3. 上記の手順がまだ続く場合 見つからない場合は、前に実行した Monkey コマンドを使用して、再度実行してください。シード値は同じである必要があることに注意してください --reproduction

一般的なテスト結果分析:

1. ANR の問題: ログで「ANR」を検索します。

2. クラッシュの問題: ログで「Exception」を検索します。強制終了


##その他の関連記事については、

PHP 中国語 Web サイト

をご覧ください。 !

以上がモンキーコマンドって何に使うんですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。