Monkey
Langage de programmation : Commandes via ligne de commande.
Environnement d'exécution : Exécution via ADB depuis un PC connecté.
Objet de test : Cet outil simule des interactions aléatoires telles que des touches, des glissements et des appuis sur l'écran pour soumettre les applications Android à des tests de stress, visant à détecter des problèmes de stabilité et de robustesse.
Limitations : Se concentre sur la simulation d'actions utilisateur imprévisibles.
MonkeyRunner
Langage de programmation : Python.
Environnement d'exécution : Environnement Python avec connexion ADB depuis un PC.
Objet de test : Utilisé pour les tests d'interface, les tests fonctionnels et les régressions, offrant une flexibilité grâce à l'extensibilité personnalisée.
Limitations : Repose principalement sur les coordonnées d'écran, avec des capacités logiques limitées.
UiAutomator
Langage de programmation : Java.
Environnement d'exécution : Lancement via ADB depuis un PC.
Objet de test : Conçu pour l'automatisation des tests d'interface utilisateur et des fonctionnalités UI, avec une exécution rapide et une configuraton simple.
Limitations : Localisation basée sur les contrôles d'interface, bien que supportant également les axes de coordonnées ; les contrôles d'accès sont restreints par rapport à des frameworks tels qu'Instrumentation.
Isntrumentation
Langage de programmation : Java.
Environnement d'exécution : Exécution via ADB depuis un PC.
Objet de test : Principalement employé pour les tests boîte blanche et les tests d'interface utilisateur.
Limitations : Limité aux tests sur une seule activité, nécessitant une signature d'application identique pour les tests.
Robotium
Langage de programmation : Java, basé sur une encapsulation d'Instrumentation.
Environnement d'exécution : Lancement via ADB depuis un PC.
Objet de test : Adapté aux tests boîte blanche et aux tests d'interface utilisateur.
Limitations : Similaire à Instrumentation, avec des tests restreints à une activité unique et des exigences de signature identiques.
Exemples de code pour différents frameworks
MonkeyRunner
# Établir une connexion avec l'appareil Android
terminal = MonkeyRunner.waitForConnection()
# Simuler un appui sur la touche Accueil
terminal.press('KEYCODE_HOME', MonkeyDevice.DOWN_AND_UP)
Robotium
gestionnaire.clicSurElementMenu("Ajouter une note")
gestionnaire.retour()
Instrumentation
activitePrincipale.runOnUiThread(new Runnable() {
public void run() {
selecteurDeListe.requestFocus();
}
})
UiAutomator
public class TestExempleUIAutomator extends UiAutomatorTestCase {
public void testFonctionnaliteDeBase() throws UiObjectNotFoundException {
UiDevice.getInstance().pressHome();
UiObject elementNavigateur = new UiObject(new UiSelector().text("Navigateur"));
elementNavigateur.clickAndWaitForNewWindow();
UiObject champEdition = new UiObject(new UiSelector().className("android.widget.EditText"));
champEdition.click();
UiDevice.getInstance().pressDelete();
champEdition.setText("www.exemple.com");
UiDevice.getInstance().pressEnter();
sleep(2000);
}
}