Maison > Problème commun > A quoi sert la commande singe ?

A quoi sert la commande singe ?

青灯夜游
Libérer: 2023-01-13 00:32:29
original
14582 Les gens l'ont consulté

Monkey est un outil de ligne de commande sous Android. La commande singe envoie un flux d'événements utilisateur pseudo-aléatoire (tel qu'une saisie au clavier, une saisie sur l'écran tactile, une saisie gestuelle, etc.) au système pour mettre en œuvre des tests de stress de l'application en cours de développement.

A quoi sert la commande singe ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

1. Introduction à Monkey

Monkey est un outil inclus dans le SDK. Monkey est un outil de ligne de commande sous Android qui peut s'exécuter dans l'émulateur ou sur l'appareil réel. Il envoie un flux d'événements utilisateur pseudo-aléatoire (tel qu'une saisie au clavier, une saisie sur écran tactile, une saisie gestuelle, etc.) au système pour mettre en œuvre des tests de résistance de l'application en cours de développement. Le Monkey Testing est une méthode rapide et efficace pour tester la stabilité et la robustesse d’un logiciel.

Cet outil est utilisé pour les tests de résistance. Ensuite, le développeur combine les journaux imprimés par le singe et les journaux imprimés par le système pour analyser les problèmes du test

Caractéristiques du test Monkey :

Test Monkey, tous les événements sont générés aléatoirement , sans aucune subjectivité humaine.

1. L'objet de test est uniquement le package d'application, qui présente certaines limitations.

2. Le flux de données d'événement utilisé par le test Monky est aléatoire et ne peut pas être personnalisé.

3. Vous pouvez définir l'objet MonkeyTest, le numéro d'événement, le type, la fréquence, etc.

2. Utilisation de base de Monkey

La syntaxe de base est la suivante :

$ adb shell singe [options]

Si aucune option n'est spécifiée, Monkey démarrera en mode sans retour et enverra des événements à tous les packages installés dans l'environnement cible. Voici un exemple de ligne de commande plus typique qui démarre une application spécifiée et lui envoie 500 événements pseudo-aléatoires :

$ adb shell singe -p your.package.name -v 500
Lors de l'utilisation de l'automatisation Android outil de test Monkeyrunner pour démarrer une application, vous devez renseigner le nom du package du programme testé et l'activité démarrée. Il existe deux façons d'afficher le nom du package d'application et le nom de l'activité d'entrée :

Méthode 1 : Utiliser aapt //aapt est un outil fourni avec sdk. Il se trouve dans le répertoire sdkbuilds-tools

1 En prenant le navigateur de fichiers ES comme exemple, passez au répertoire aapt.exe sur la ligne de commande et. exécuter : aapt dump badging E:apkes3 .apk

2.

Remarque : vous pouvez trouver aapt.exe en recherchant dans le répertoire SDK Android. Sinon, vous pouvez télécharger apktool.

3. Un exemple de test Monkey

Grâce à cet exemple, nous pouvons comprendre les étapes des tests Monkey et comment savoir avec quelles applications peuvent être testées. Singe .

Sous Windows (Remarque : les étapes 2 à 4 servent à voir quels packages d'applications nous pouvons tester et peuvent être omis) :

1. Démarrez un émulateur Android via Eclipse

. 2. Entrez : adb devices dans la ligne de commande pour vérifier l'état de connexion de l'appareil

C:Documents et ParamètresAdministrateur>Appareils adb

Liste des appareils connectés

Appareil emulator-5554

3. En supposant qu'un appareil soit connecté, saisissez : adb shell sur la ligne de commande. pour entrer dans l'interface shell

C:Documents et ParamètresAdministrateur>adb shell

#

4. Affichez le package d'application dans le dossier data/data. Remarque : Les packages d'application que nous pouvons tester se trouvent tous dans ce répertoire

C:Documents et SettingsAdministrator>adb shell

# ls data/data

ls data/data

5. Utilisez com.android.calculator2 comme objet pour effectuer MonkeyTest

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

où -p représente le package d'objets –v représente le niveau d'informations de retour

Pendant le processus en cours, l'application dans l'émulateur est changer constamment d'écran.

Selon les différents niveaux d'informations de retour sélectionnés, vous pouvez également voir son rapport de processus d'exécution et les événements générés dans Monkey.

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

C:Userschenfenping>adb shell singe -help
utilisation : singe [-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 POURCENT] [--pct-majornav POURCENT]
[--pct-appswitch POURCENT] [--pct-flip POURCENT]
[--pct-anyevent POURCENT] [--pct-pinchzoom POURCENT ]
[--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

用于约束限制, Le paquet contient une application et l'application Monkey est disponible. ,将允许系统启动设备中的所有APP.

* Nom du produit : adb shell singe -p cn.emoney.acg 10

* Nom du produit : adb shell singe -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100

* 不指定包:adb shell singe 100

2 参数: -v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level0

示例 adb shell singe -p cn.emoney .acg –v 100

日志级别 Niveau 1

示例 adb shell singe - p cn.emoney.acg –v -v 100

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

日志级别 Niveau 2

示例adb shell singe -p cn.emoney.acg –v -v –v 100

说明最详细的日志,包括了测试中选中/未选中的Activity信息

3 参Par : - s

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

Singe 测试1:singe coquille adb -p cn.emoney.acg -s 10  100

Singe 测试2:adb shell singe -p cn.emoney.acg –s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。

4 points : --throttle<毫秒>

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

adb shell singe -p cn.emoney .acg --accélérateur 5000 100

5 bits: --ignore-crashes

用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

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

adb shellmonkey -p cn.emoney.acg 1000 --ignore-timeouts应用程序发生ANR(Application Pas de réponse到事件计数完成。


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

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

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

8 Paramètres : --kill-process-after-error

est utilisé pour spécifier s'il faut arrêter l'application lorsqu'une erreur se produit. Si ce paramètre est spécifié, lorsqu'une erreur survient dans l'application, l'application s'arrête de fonctionner et reste dans l'état actuel

(Remarque : l'application ne s'arrête que dans l'état où l'erreur se produit, le système ne se termine pas le processus de candidature).

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

9 Paramètres : --monitor-native-crashes

est utilisé pour spécifier s'il faut surveiller et signaler le code natif qui plante l'application.

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

10 Paramètres : --pct-{+eventcategory}{+eventcategory percent}

est utilisé pour spécifier le nombre et le pourcentage de chaque catégorie de événements (dans la séquence d'événements Monkey, le nombre de ces événements représente le pourcentage du nombre total d'événements)
Exemple :
--pct-touch{+pourcentage}
Ajustez le pourcentage d'événements tactiles ( L'événement tactile est un événement descendant, qui se produit à un seul endroit de l'écran)

adb shell singe -p cn.emoney.acg --pct-touch 10 100

--pct-motion {+percentage}
Ajustez le pourcentage d'événements de mouvement (événements de mouvement quelque part sur le écran composé d'un événement down, d'une série d'événements pseudo-aléatoires et d'un événement up)

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

--pct-trackball {+percentage}
Ajuster le pourcentage d'événements de piste (événement de piste se compose d'un ou plusieurs Constitués de mouvements aléatoires, parfois accompagnés de clics)

adb shell singe -p cn.emoney.acg --pct-trackball 30 1000

--pct-nav {+percentage}

Ajuster le pourcentage d'événements de navigation "de base" (événements de navigation se compose de haut/bas/gauche/droite à partir du périphérique d'entrée directionnel)

adb shell singe -p cn.emoney.acg --pct-nav 40 1000

--pct-

majornav {+percentage}Ajuster le pourcentage d'événements de navigation "majeurs" (ces événements de navigation déclenchent généralement des actions dans les interfaces graphiques , tels que : bouton du milieu, bouton de retour, bouton de menu du clavier à 5 directions)

adb shell singe -p cn.emoney.acg --pct-majornav 50 1000

7. Sortie Monkeylog

Lors de l'exécution de Monkey ou lorsque vous souhaitez capturer et exporter le journal du programme, vous serez parfois invité : impossible de créer D:monkeytest. txt : système de fichiers en lecture seule

Pourquoi est-ce parfois possible et parfois non ?

Plus tard, j'ai découvert que c'était différent de mes habitudes d'utilisation. Une fois, j'entrais d'abord dans le shell adb, puis j'utilisais la commande, et l'autre fois, je l'entrais directement.

La commande échouera après avoir entré le shell adb~

Méthode correcte : n'entrez pas dans le shell avant de quitter le shell ou d'exécuter la commande

C:Documents et ParamètresAdministrateur>adb shell singe -p package name

-v 300 >e:text.txt

Entrer adb shell équivaut à entrer la racine de Linux, sans autorisation d'y créer des fichiers ~

5. Analyse des résultats du test Monkey

1. Méthode d'analyse préliminaire

Après qu'une erreur se produit dans le test Monkey, les étapes générales de vérification des erreurs sont les suivantes :


1. Découvrez où l'erreur s'est produite chez le singe

2. Vérifiez certains événements et actions dans le singe avant que l'erreur ne se produise et exécutez l'action manuellement

3. Si les étapes ci-dessus sont toujours introuvables, vous pouvez utiliser la commande singe précédemment exécutée pour l'exécuter à nouveau. Notez que la valeur de départ doit être la même - Reproduction

Analyse générale des résultats du test :

1. . Problème ANR : recherchez « ANR dans le journal »

2. Problème de crash : recherchez « Exception » dans le journal Forcer la fermeture


Pour plus d'articles connexes, veuillez visiter le

site Web PHP chinois ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal