Comparaison des frameworks d'automatisation de tests pour Android

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);
    }
}

Étiquettes: Android UiAutomator Monkey MonkeyRunner Instrumentation

Publié le 31 mai à 02h06