Der Affe ist ein Programm, das auf Ihrem Computer Emulator oder Gerät und generiert pseudozufällige Streams von Nutzerereignissen wie Klicks, Berührungen oder Gesten sowie eine Reihe von Systemebenen Ereignisse. Sie können den Monkey verwenden, um Anwendungen, die Sie entwickeln, in einer zufälligen und dennoch reproduzierbar.
Übersicht
Der Monkey ist ein Befehlszeilentool, das in jedem Emulator ausgeführt werden kann oder auf einem Gerät. Es sendet einen pseudo-zufälligen Strom Nutzerereignisse in das System ein, was als Belastungstest für die von Ihnen eingesetzte Anwendungssoftware dient. in der Entwicklungsphase ist.
Der Affe bietet eine Reihe von Optionen, die sich in vier Hauptformen unterteilen lassen. Kategorien:
- Grundlegende Konfigurationsoptionen, z. B. das Festlegen der Anzahl der auszuführenden Ereignisse.
- Operative Einschränkungen, z. B. die Beschränkung des Tests auf ein einzelnes Paket.
- Ereignistypen und -häufigkeiten.
- Optionen zur Fehlerbehebung
Wenn der Affe ausgeführt wird, generiert er Ereignisse und sendet sie an das System. Außerdem angesehen das zu testende System und sucht nach drei Bedingungen, die speziell behandelt werden:
- Wenn Sie den Monkey auf die Ausführung in einem oder mehreren spezifischen Paketen beschränkt haben, sucht nach Versuchen, zu anderen Paketen zu navigieren, und blockiert sie.
- Wenn Ihre Anwendung abstürzt oder eine unbehandelte Ausnahme empfängt, wird der Monkey und meldet den Fehler.
- Wenn Ihre Anwendung den Fehler App antwortet nicht generiert, gibt der Monkey und meldet den Fehler.
Je nach ausgewähltem Ausführlichkeitsgrad sehen Sie auch Berichte zum Fortschritt des Affen und der generierten Ereignisse.
Grundlegende Verwendung des Affen
Sie können den Monkey über eine Befehlszeile auf Ihrem Entwicklungscomputer oder über ein Skript starten.
Da der Monkey in der Emulator-/Geräteumgebung ausgeführt wird, müssen Sie ihn über eine Shell in
für diese Umgebung. Dazu stellen Sie jedem Befehl adb shell
voran,
oder indem Sie die Shell und die Monkey-Befehle direkt eingeben.
Die grundlegende Syntax lautet:
$ adb shell monkey [options] <event-count>
Wenn keine Optionen angegeben sind, startet der Affe in einem leisen (nicht ausführlichen) Modus und sendet -Ereignissen an alle (und alle) auf Ihrem Ziel installierten Pakete. Hier ist eine typische Befehlszeile: die Ihre Anwendung startet und 500 pseudozufällige Ereignisse an sie sendet:
$ adb shell monkey -p your.package.name -v 500
Referenz zu Befehlsoptionen
In der folgenden Tabelle sind alle Optionen aufgeführt, die Sie in der Monkey-Befehlszeile verwenden können.
Kategorie | Option | Beschreibung |
---|---|---|
Allgemein | --help |
Druckt eine einfache Nutzungsanleitung. |
-v |
Mit jedem „-v“ in der Befehlszeile wird der Ausführlichkeitsgrad erhöht. Ebene 0 (Standardeinstellung) bietet über die Startbenachrichtigung, den Testabschluss und und die Endergebnisse. Ebene 1 enthält weitere Details zum laufenden Test, z. B. einzelne Ereignisse, die an Ihre Aktivitäten. Ebene 2 enthält detailliertere Informationen zur Einrichtung, z. B. Aktivitäten, die für Tests durchführen. | |
Ereignisse | -s <seed> |
Seed-Wert für Pseudozufallszahlengenerator. Wenn du den Affen mit demselben Samenpflanzen wird die gleiche Ereignissequenz generiert. |
--throttle <milliseconds> |
Fügt eine feste Verzögerung zwischen Ereignissen ein. Mit dieser Option kannst du den Affen verlangsamen. Wenn nicht angegeben, gibt es keine Verzögerung und die Ereignisse werden so schnell wie möglich generiert. | |
--pct-touch <percent> |
Passe den Prozentsatz der Touch-Ereignisse an. Bei Berührungsereignissen handelt es sich um ein Down-up-Ereignis an einer einzigen Stelle auf dem Bildschirm. | |
--pct-motion <percent> |
Prozentsatz der Bewegungsereignisse anpassen (Bewegungsereignisse sind ein Down-Ereignis irgendwo auf dem Bildschirm, eine Reihe pseudozufälliger Bewegungen und ein Aufwärtsereignis.) | |
--pct-trackball <percent> |
Prozentsatz der Trackball-Ereignisse anpassen. (Trackball-Ereignisse bestehen aus einer oder mehreren zufälligen Bewegungen, manchmal gefolgt von einem Klick.) | |
--pct-nav <percent> |
Prozentsatz von „Einfach“ anpassen Navigationsereignisse. (Navigationsereignisse bestehen aus der Eingabe nach oben/unten/links/rechts als Eingabe von einem Richtungseingabegerät.) | |
--pct-majornav <percent> |
Prozentsatz von „Haupt“ anpassen Navigationsereignisse. Dies sind Navigationsereignisse, die in der Regel zu Aktionen innerhalb Ihrer UI führen, z. B. die mittlere Taste einer 5-Wege-Taste, die Zurück-Taste oder die Menütaste drücken. | |
--pct-syskeys <percent> |
Prozentsatz von „system“ anpassen Schlüsselereignisse. (Dies sind Tasten, die im Allgemeinen für die Verwendung durch das System reserviert sind, wie z. B. die Tasten "Pos1", "Zurück", "Anruf starten", Anruf beenden oder Lautstärkeregelung einstellen. | |
--pct-appswitch <percent> |
Prozentsatz der Aktivitätsstarts anpassen. In zufälligen Intervallen gibt der Affe einen startActivity()-Aufruf aus, um Abdeckung aller Aktivitäten in Ihrem Paket. | |
--pct-anyevent <percent> |
Prozentsatz anderer Ereignistypen anpassen Dies ist ein universeller Ereignistyp für alle anderen Ereignistypen wie Tastendruck und andere seltener verwendete auf dem Gerät und so weiter. | |
Einschränkungen | -p <allowed-package-name> |
Wenn Sie ein oder mehrere Pakete auf diese Weise angeben, lässt der Monkey nur das System um Aktivitäten in diesen Paketen zu besuchen. Benötigt Ihre Anwendung Zugriff auf Aktivitäten in andere Pakete (z.B. zur Auswahl eines Kontakts) müssen Sie auch diese Pakete angeben. Wenn Sie keine Pakete angeben, erlaubt der Monkey dem System, Aktivitäten zu starten. in allen Paketen. Verwenden Sie die Option „-p“ mehrmals, um mehrere Pakete anzugeben: ein „-p“. Option pro Paket. |
-c <main-category> |
Wenn Sie eine oder mehrere Kategorien auf diese Weise angeben, lässt der Monkey nur die , um Aktivitäten aufzurufen, die einer der angegebenen Kategorien zugeordnet sind. Wenn du keine Kategorien angibst, wählt der Monkey Aktivitäten aus der Kategorie aus Intent.CATEGORY_LAUNCHER oder Intent.CATEGORY_MONKEY. Wenn Sie mehrere Kategorien angeben möchten, verwenden Sie die Zeichenfolge -c -Option mehrmals – eine -c-Option pro Kategorie. | |
Fehlerbehebung | --dbg-no-events |
Wenn angegeben, führt der Monkey den ersten Start einer Testaktivität durch, aber werden keine weiteren Ereignisse generiert. Die besten Ergebnisse erzielen Sie, wenn Sie den Monkey mit „-v“, einer oder mehreren Paketeinschränkungen und einer Drosselung ungleich null kombinieren. 30 Sekunden oder länger laufen. Dies bietet eine Umgebung, in der Sie Pakete überwachen können die von Ihrer Anwendung aufgerufen werden. |
--hprof |
Wenn diese Option festgelegt ist, generiert diese Option Profilerstellungsberichte direkt vor und nach dem Monkey Ereignissequenz fest. Dadurch werden große Dateien (ca. 5 MB) in data/misc erstellt. Seien Sie daher vorsichtig. Für Informationen zum Analysieren von Profilerstellungsberichten finden Sie unter App-Profil erstellen Leistung. | |
--ignore-crashes |
Normalerweise stoppt der Monkey, wenn die Anwendung abstürzt oder eine beliebige Art von unbehandelte Ausnahme. Wenn Sie diese Option auswählen, sendet der Affe weiterhin Ereignisse an bis die Zählung abgeschlossen ist. | |
--ignore-timeouts |
Normalerweise wird der Monkey angehalten, wenn bei der Anwendung ein Zeitüberschreitungsfehler wie als „App antwortet nicht“ Dialogfeld. Wenn Sie diese Option auswählen, fährt der Monkey Ereignisse an das System senden, bis die Zählung abgeschlossen ist. | |
--ignore-security-exceptions |
Normalerweise wird der Monkey angehalten, wenn bei der Anwendung ein Berechtigungsfehler auftritt. z. B. wenn versucht wird, eine Aktivität zu starten, für die bestimmte Berechtigungen erforderlich sind. Wenn Sie sendet der Affe so lange Ereignisse an das System, bis abgeschlossen. | |
--kill-process-after-error |
Wenn der Monkey aufgrund eines Fehlers anhält, wird die fehlgeschlagene Anwendung normalerweise verlassen. ausgeführt wird. Wenn diese Option festgelegt ist, wird das System angewiesen, den Prozess zu stoppen, in dem der Fehler aufgetreten. Hinweis: Bei einem normalen (erfolgreichen) Abschluss werden die gestarteten Prozesse nicht angehalten und wird das Gerät einfach im letzten Zustand nach dem letzten Ereignis belassen. | |
--monitor-native-crashes |
Beobachtet Abstürze im nativen Code des Android-Systems und meldet diese. Wenn --kill-process-after-error festgelegt ist, wird das System angehalten. | |
--wait-dbg |
Stoppt die Ausführung des Monkeys, bis ein Debugger an ihn angehängt wird. |