Heim  >  Artikel  >  Was nützt der Monkey-Befehl?

Was nützt der Monkey-Befehl?

青灯夜游
青灯夜游Original
2021-02-08 17:23:3714491Durchsuche

monkey ist ein Befehlszeilentool in Android. Der Monkey-Befehl sendet einen pseudozufälligen Benutzerereignisstrom (z. B. Tasteneingabe, Touchscreen-Eingabe, Gesteneingabe usw.) an das System, um Stresstests der in der Entwicklung befindlichen Anwendung durchzuführen .

Was nützt der Monkey-Befehl?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

1. Einführung in Monkey

Monkey ist ein im SDK enthaltenes Tool. Monkey ist ein Befehlszeilentool in Android, das im Emulator oder auf dem tatsächlichen Gerät ausgeführt werden kann. Es sendet einen pseudozufälligen Benutzerereignisstrom (z. B. Tasteneingabe, Touchscreen-Eingabe, Gesteneingabe usw.) an das System, um Stresstests der in der Entwicklung befindlichen Anwendung durchzuführen. Monkey Testing ist eine schnelle und effektive Methode, um die Stabilität und Robustheit von Software zu testen.

Dieses Tool wird zur Durchführung von Stresstests verwendet. Anschließend kombiniert der Entwickler die vom Affen gedruckten Protokolle und die vom System gedruckten Protokolle, um die Probleme im Test zu analysieren.

Merkmale des Affentests:

Beim Affentest werden alle Ereignisse zufällig und ohne Subjektivität von irgendjemandem generiert.

1. Das Testobjekt ist nur das Anwendungspaket, das bestimmte Einschränkungen aufweist.

2. Der vom Monky-Test verwendete Ereignisdatenstrom ist zufällig und kann nicht angepasst werden.

3. Sie können das MonkeyTest-Objekt, die Ereignisnummer, den Typ, die Häufigkeit usw. festlegen.

2. Die grundlegende Verwendung von Monkey

Die grundlegende Syntax lautet wie folgt:

$ adb Shell Monkey [Optionen]

Wenn keine Optionen angegeben sind, startet Monkey im Nicht-Feedback-Modus und sendet Ereignisse an alle Installation in der Zielumgebung Alle Pakete in . Hier ist ein typischeres Befehlszeilenbeispiel, das eine bestimmte Anwendung startet und 500 pseudozufällige Ereignisse an sie sendet:

$ adb Shell Monkey -p Ihr.Paketname -v 500
Automatisierte Android-Testtools verwenden Wenn Monkeyrunner die Anwendung startet Sie müssen den Paketnamen des zu testenden Programms und die gestartete Aktivität eingeben. Es gibt zwei Möglichkeiten, den Namen des Anwendungspakets und den Namen der Eintragsaktivität anzuzeigen:

Methode 1: Verwenden Sie aapt //aapt ist ein mitgeliefertes Tool das SDK im Verzeichnis sdkbuilds-tools

1 Nehmen Sie als Beispiel den ES-Dateibrowser, wechseln Sie in der Befehlszeile zum Verzeichnis aapt.exe und führen Sie Folgendes aus: aapt dump badging E:apkes3.apk

2.

Hinweis: Suchen Sie im Android SDK-Verzeichnis nach aapt.exe. Wenn nicht, können Sie apktool herunterladen.

3. Ein Beispiel für Monkey-Tests

Anhand dieses Beispiels können wir die Schritte des Monkey-Tests verstehen und erfahren, welche Anwendungen mit Monkey getestet werden können.

Unter Windows (Hinweis: Die Schritte 2-4 dienen dazu, zu sehen, welche Anwendungspakete wir testen können und können weggelassen werden):

1 Starten Sie einen Android-Emulator über Eclipse

2. Geben Sie in der Befehlszeile Folgendes ein: adb devices Geräteverbindungsstatus

C:Dokumente und EinstellungenAdministrator>ADB-Geräte

Liste der angeschlossenen Geräte

Emulator-5554-Gerät

3. Unter der Voraussetzung, dass das Gerät verbunden ist, geben Sie Folgendes ein: adb shell in der Befehlszeile, um die Shell-Schnittstelle aufzurufen

C:Dokumente und SettingsAdministrator>adb shell

#

4. Sehen Sie sich das Anwendungspaket im Ordner data/data an. Hinweis: Die Anwendungspakete, die wir testen können, befinden sich alle in diesem Verzeichnis

C:Dokumente und SettingsAdministrator>adb shell

# ls data/data

ls data/data

5. Verwenden Sie com.android.calculator2 als Objekt, um MonkeyTest durchzuführen

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

wo -p Gibt das Objektpaket an –v gibt den Feedback-Informationsstand an

Während des laufenden Prozesses wechselt die Anwendung im Emulator ständig den Bildschirm.

Je nach den ausgewählten unterschiedlichen Ebenen der Feedback-Informationen können Sie auch den Ausführungsprozessbericht und die generierten Ereignisse in Monkey sehen.

四、使用monkey help 命令查看命令参数

C:Userschenfenping>adb Shell Monkey -help
usage: Monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[ --ignore-security-Exceptions]
[--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

用于约束限制,用此参数指定一个或多个包 (Paket, App).的所有APP.

* 指定一个包: adb shell Monkey -p cn .emoney.acg 10

* Funktion: adb Shell Monkey -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100别就是日志的详细程度),总共3 个级别, 分别对应的参数如下表所示:

日志级别 Level0

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

说明缺省值, 仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

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

说明提供较为详细的日志,包括每个发送到Aktivität的事件信息

日志级别 Level 2

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

3 Zeichen: -s

用于指定伪随机数生成器的seed值, 如果seed相同, 则两次Monkey测试所产生的事件序列也相同的.

Monkey Version 1: ADB-Shell-Affe -p cn.emoney.acg -s 10  100

Monkey Version 2:adb Shell Monkey -p cn.emoney.acg –s 10 100所组成的一系列操作,即一个序列)是一样的.

4 Seiten: --throttle< ;毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

adb Shell Monkey -p cn.emoney.acg --throttle 5000 100使用此参数, 即使应用程序崩溃, Monkey依然会发送事件, 直到事件计数完成。

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

adb shellmonkey -p cn.emoney.acg 1000

测试过程中,如果acg程序崩溃,Monkey将会停止运行

6 Antwort: --ignore-timeouts

用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行.如果使用此参数, 即使应用程序发生ANR错误

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

7 Zeichen: --ignore-security-Exceptions

许可等), Monkey是否停止运行.如果使用此参数,即使应用程序发生许可错误, Monkey依然会发送事件,直到事件计数完成.

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

8 Parameter: --kill-process-after-error

wird verwendet, um anzugeben, ob die Anwendung gestoppt werden soll, wenn ein Fehler auftritt. Wenn dieser Parameter angegeben ist und ein Fehler in der Anwendung auftritt, wird die Ausführung der Anwendung gestoppt und bleibt im aktuellen Status

(Hinweis: Die Anwendung bleibt nur in dem Status, in dem der Fehler auftritt, und das System beendet den Anwendungsprozess nicht ).

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

9 Parameter: --monitor-native-crashes

wird verwendet, um anzugeben, ob nativer Code überwacht und gemeldet werden soll, der die Anwendung zum Absturz bringt.

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

10 Parameter: --pct-{+Ereigniskategorie}{+Ereigniskategorieprozentsatz}

wird verwendet, um die Anzahl und den Prozentsatz jeder Ereigniskategorie anzugeben (in der Monkey-Ereignissequenz, Diese Art von Ereignis (Anzahl als Prozentsatz der Gesamtzahl der Ereignisse)
Beispiel:
--pct-touch{+percent}
Passen Sie den Prozentsatz der Berührungsereignisse an (Berührungsereignis ist ein Down-Up-Ereignis, das auftritt an einer einzelnen Stelle auf dem Bildschirm )

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

--pct-motion {+percentage}
Passen Sie den Prozentsatz der Aktionsereignisse an (Aktionsereignisse bestehen aus einem Down-Ereignis irgendwo auf dem Bildschirm, einer Reihe pseudozufälliger Ereignisse, und bestehend aus einem up-Ereignis)

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

--pct-trackball{+percent}
Passen Sie den Prozentsatz der Track-Ereignisse an (Track-Events bestehen aus einer oder mehreren zufälligen Bewegungen, manchmal begleitet von Klicks)

adb Shell Monkey -p cn.emoney.acg --pct-trackball 30 1000

--pct-nav {+percentage}

Passen Sie den Prozentsatz der „grundlegenden“ Navigationsereignisse an (Navigationsereignisse bestehen aus Aufwärts/Abwärts/Links/Rechts von Richtungseingabegeräten)

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

--pct-majornav {+percentage}
Passen Sie den Prozentsatz der „Haupt“-Navigationsereignisse an (diese Navigationsereignisse lösen normalerweise Aktionen in grafischen Oberflächen aus, wie zum Beispiel: die mittlere Taste einer 5 -Wege-Tastatur, Zurück-Taste, Menü-Taste)

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

7. Monkeylog ausgeben

Wenn Sie Monkey ausführen oder das Programmprotokoll erfassen und exportieren möchten, werden Sie manchmal gefragt: D:monkeytest.txt: schreibgeschütztes Dateisystem kann nicht erstellt werden

Warum kann es manchmal, manchmal nicht?

Später stellte ich fest, dass es sich von meinen Nutzungsgewohnheiten unterschied. Einmal habe ich zuerst die ADB-Shell aufgerufen und dann den Befehl verwendet, und das andere Mal habe ich sie direkt befehligt.

Wenn Sie die ADB-Shell aufrufen und dann den Befehl verwenden, schlägt dies fehl~

Richtige Methode: Betreten Sie die Shell nicht, bevor Sie die Shell verlassen oder den Befehl ausgeführt haben

C:Dokumente und SettingsAdministrator>adb Shell Monkey -p Paketname

-v 300 >e:text.txt

Das Aufrufen der ADB-Shell entspricht dem Aufrufen des Stammverzeichnisses von Linux, ohne die Berechtigung zum Erstellen von Dateien darin ~

5 Analyse

1. Vorläufige Analysemethode

Nachdem im Monkey-Test ein Fehler aufgetreten ist, sind die allgemeinen Schritte zur Fehlerprüfung wie folgt:

1. Finden Sie heraus, wo der Fehler im Monkey aufgetreten ist

2 Bevor der Fehler aufgetreten ist, führen Sie die Aktion manuell aus

3. Wenn die oben genannten Schritte nicht gefunden werden können, können Sie den zuvor ausgeführten Affenbefehl verwenden, um ihn erneut auszuführen. Beachten Sie, dass der Startwert derselbe sein muss – Reproduktion

Allgemeine Testergebnisanalyse:

1, ANR-Problem: Suchen Sie im Protokoll nach „ANR“

2. Absturzproblem: Suchen Sie im Protokoll nach „Ausnahme“ Schließen erzwingen

Weitere verwandte Artikel finden Sie unter PHP Chinesische Website! !

Das obige ist der detaillierte Inhalt vonWas nützt der Monkey-Befehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Welches Format ist 7z?Nächster Artikel:Welches Format ist 7z?