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.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.
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.
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.
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 500où -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.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)
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)
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
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!