This page is preserved from the original 2012 WordPress version of the blog. Newer and rewritten posts are listed in the archives.

Utilisation de l’outil Monkey

25 juin 20121 min readTests

Ce premier article sera consacré à un outil merveilleux, j’ai nommé Monkey!

Si vous ne connaissez pas cet outil, la vie va vous sembler bien plus simple après cette découverte. Monkey est un outil permettant de générer des mouvements pseudos-aléatoires sur un device ou sur un émulateur. Pour faire simple, il permet en quelques secondes de simuler une personne utilisant votre appli, mais une personne un peu stupide car toutes ses actions seront pseudos aléatoires, et donc n’auront aucun sens et aucun lien les unes par rapport aux autres. Ceci est parfait pour déceler des bugs dans vos applications !

Attention: Ceci n’est en aucun cas un substitut de certains autres tests que vous devriez devez utiliser (tests unitaires…). Oui, faîtes ce que je dis, pas ce que je fais :p

Note: Pour ce tuto, je fais l’hypothèse que vous avez soit un émulateur en train de tourner, soit un device connecté en mode debug (avec les drivers ADB d’installés sur le PC). 

C’est parti, on lance l’invite de commande, et on se dirige vers le répertoire [android-sdk-path]/platform-tools.

La commande basique pour utiliser monkey est la suivante:

bash
adb shell monkey [options]

Imaginons que le package de votre application soit com.myapp et que vous vouliez itérer 1000 fois, avec un espacement de 1/2 sec entre chaque évènement, voici la commande à utiliser:

bash
adb shell monkey -p com.myapp --throttle 500 -v 1000

La liste de toutes les options est disponible sur la doc => ici

Aller plus loin…

Si vous souhaitez aller plus loin que Monkey, vous pouvez automatiser toutes sortes de choses (installation de l’appli sur le device, lancement, prise de screenshots, etc.) avec l’outil MonkeyRunner!

C’est tout pour mon premier tuto, j’espère que vous avez apprécié, n’hésitez pas à commenter si vous avez des remarques, suggestions ou questions, et à le partager s’il vous a intéressé !

2 comments

  1. Adrien HAUTOT4 juillet 2012 at 8 h 11 min

    Sympa cet outil, il me fait un peu penser à Selenium. Peux-tu créer des scénario à reproduire afin de bin valider le fonctionnement de l’interface de ton appli sur le long terme? Exemple, je clique sur le bouton qui m’affiche bien un formulaire, je remplis les deux premiers champs texte avec toto/titi et valide. Une popup apparaît bien avec un image à l’intérieur…

    • Antoine Merle4 juillet 2012 at 9 h 40 min

      Pour ce qui est de l’interface, tu peux bien sûr créer des scénarios où tu peux interagir avec l’application et donc tu peux remplir des formulaires, etc.
      Pour ce qui est des tests, tu as plusieurs solutions:
      Soit tu fais tourner un script qui prend des screenshots et tu regardes ca le lendemain (plutôt moyen :/)
      Soit tu fais runner des tests unitaires, lancés par ton script, voire directement embeddé dans ton monkeyrunner, donc tu peux tester le fait que ton image est bien récupérée.
      J’espère avoir bien répondu à ta question. A+ :)
      EDIT: je t’ai répondu en pensant que tu parlais de monkeyrunner, et pas de monkey, my bad. Pour ce qui est de monkey, tu es plutôt limité, tu peux créer des scénarios et monkey s’arrête tout seul quand une exception est levée. Tu ne peux cependant pas créer de tests unitaires, etc. Il faut aller voir du côté de monkeyrunner pour ca. => http://antoine-merle.com/introduction-to-the-monkey-runner-tool/