Qu'est-ce que le Robotium?
Robotium est un framework de test Android pour automatiser les cas de test pour les applications natives et hybrides. En utilisant Robotium, le développeur peut créer un solide cas de test d'interface graphique automatique pour les applications Android. De plus, le développeur pourrait rédiger un scénario de test fonctionnel, système et d'acceptation, diffusant de nombreuses activités Android.
Dans ce didacticiel, vous apprendrez-
- Cadre de test Robotium
- Comment utiliser Robotium
- ÉTAPE 1) Spécification du test de conception
- ÉTAPE 2) Ecrire le programme TEST
- ÉTAPE 3) Exécuter le test
- ÉTAPE 4) Obtenez le résultat du test
Cadre de test Robotium
Le cadre de test Android standard a des limitations comme ci-dessous
- Impossible de gérer plusieurs activités
- Les performances d'exécution des tests sont lentes
- Les cas de test sont complexes et difficiles à mettre en œuvre
Le framework Robotium est le meilleur choix pour effectuer des tests sur une application Android
Robotium est un framework open source et est considéré comme une extension du framework de test Android. À l'aide de Robotium, les développeurs peuvent créer des cas de test GUI automatiques robustes pour les applications Android. De plus, le développeur peut écrire des scénarios de test fonctionnels, système et d'acceptation, couvrant plusieurs activités Android.
Fonctionnalités avancées de Robotium
Classes de cas de test Robotium
Robotium utilise un ensemble de classes ( com.jayway.android.robotium.solo ) pour les tests . Cette classe prend en charge les cas de test qui couvrent plusieurs activités. Solo est intégré à ActivityInstrumentationTestCase2.
Intégration Robotium et ActivityInstrumentationTestCase2
Le testeur peut écrire des cas de test sans connaissance de la conception de l'application (test de la boîte noire) en utilisant les classes de cas de test Robotium. C'est une fonctionnalité exceptionnelle par rapport aux classes de cas de test Android.
Comment utiliser Robotium
Pour utiliser Robotium dans votre projet de test Android, vous devez suivre les étapes ci-dessousUtilisation de Robotium pour effectuer des tests sur une application Android. Pour garantir la qualité de votre application Android, vous devez suivre la procédure ci-dessous
- Spécification de test de conception
- Développer un programme de test
- Exécuter le scénario de test sur le périphérique cible
- Recueillir le résultat du test
Procédure de test des applications Android
ÉTAPE 1) Spécification du test de conception
- Il s'agit de la première étape pour tester votre application.Dans cette étape, vous définissez la cible à tester. Dans votre application Android, de nombreuses cibles doivent être testées telles que l'interface utilisateur, l'activité, les composants, les services. En définissant clairement la cible dans votre application, vous obtiendrez une large couverture de tests.
- Planifier les types de tests à effectuer (test unitaire, test fonctionnel, test système).
- Concevez des cas de test pour une couverture maximale mais minimisez le nombre de cas de test. Plus le code est testé, plus il y a de chances de détection précoce des bogues.
ÉTAPE 2) Ecrire le programme TEST
Cette section vous explique comment écrire un programme de test Android à l'aide d'Android Junit Test et Robotium. Supposons que vous ayez déjà développé un nom de programme Android HelloAndroid. Ce programme a quelques fonctions décrites ci-dessous:
- Afficher un texte "Hello world!" À l'écran.
- Afficher un message HelloAndroid lorsque l'utilisateur appuie sur le bouton «Démarrer»
Application HelloAndroid
Configuration requise
- La plate-forme Android est livrée avec un framework JUnit 3.0 pré-intégré.
- Pour créer un projet de test Android à partir d'Eclipse, votre ordinateur doit avoir installé:
- Dernière version de la plate-forme Android (actuellement Android 8.1)
Vous pouvez télécharger Eclipse IDE avec ADT intégré (Android Developer Tools). Il comprend les composants essentiels du SDK Android et une version de l'IDE Eclipse.
Pour le cadre de test Robotium, vous devez télécharger la bibliothèque Robotium à partir de la page Web Robotium.
Créer un projet de test Android
- Cliquez sur Fichier -> Nouveau -> Autre
- Choisissez: Android -> Projet de test Android selon la figure ci-dessous -> Choisissez Suivant
Créer un nouveau projet de test Android
Écrivez le nom de votre projet de test. Comme convention de dénomination, votre projet de test doit être nommé "HelloAndroidTest"
Ajouter un nom de projet de test basé sur la convention de dénomination
Choisissez l'application cible à tester. Dans ce cas, c'est HelloAndroid cliquez sur Terminer
Choisissez l'application cible à tester
Créer des suites de tests
En vous basant sur vos spécifications de test, vous avez commencé à créer des suites de tests pour votre programme de test. Vous pouvez choisir différents frameworks de test. Dans ce didacticiel, je choisis le cadre de test Android standard ActivityInstrumentationTestCase2 . Vous devez ajouter le fichier de bibliothèque Robotium à un répertoire libs dans votre dossier de projet au cas où vous voudriez tester avec le framework Robotium. (Vous créez le dossier lib dans votre dossier de projet).
Un cas de test définit l'appareil pour exécuter plusieurs tests. Pour définir un cas de test, vous devez suivre la structure du programme ci-dessous:
- Implémentez une sous-classe de
TestCase
. - Définir des variables d'instance qui stockent l'état de l'appareil
- Initialisez l'état de l'appareil en remplaçant setUp ()
- Nettoyage après un test en écrasant tearDown ().
Structure du programme de test
package com.example.helloandroid.test;import com.example.helloandroid.HelloAndroid;import com.jayway.android.robotium.solo.Solo;import android.test.ActivityInstrumentationTestCase2;import android.widget.TextView;la classe publique HelloAndroidTest étend ActivityInstrumentationTestCase2{activité privée HelloAndroid;TextView mView privé;private String resourceString;solo solo privé;public HelloAndroidTest () {// TODO Stub de constructeur généré automatiquementsuper ("com.example.helloandroid", HelloAndroid.class);}@Passer outreprotected void setUp () lève une exception {// TODO Stub de méthode généré automatiquement// super.setUp ();mActivity = this.getActivity ();solo = nouveau Solo (getInstrumentation (), getActivity ());mView = (TextView) mActivity.findViewById (com.example.helloandroid.R.id.textview2);resourceString = mActivity.getString (com.example.helloandroid.R.string.hello_world);}@Passer outreprotected void tearDown () jette une exception {// TODO Stub de méthode généré automatiquement//super.tearDown ();solo.finishOpenedActivities ();}public void testPrecondition () {assertNotNull (mView);}/ * l'application cible de test contient un affichage texte "Hello World!" * /public void testSearchText () {assertEquals (resourceString, (String) mView.getText ());}/ * test HelloAndroid L'activité sur l'application cible existe * /public void testCurrentActivity () lève une exception {solo.assertCurrentActivity ("mauvaise activité", HelloAndroid.class);}/ * L'interface utilisateur de l'application de test contient le bouton "Démarrer" * // * envoyer l'événement cliquez sur le bouton à l'application cible * /public void testSearchButton () lève une exception {booléen trouvé = solo.searchButton ("Démarrer");solo.clickOnButton ("Démarrer");assertTrue (trouvé);}}
Ajout de cas de test
- Dans le même package avec TestSuite, nous créons des classes TestCase
- Pour tester certaines activités, par exemple HelloAndroid, créez une étendue de cas de test ActivityInstrumentationTestCase2
- Dans cette classe, le testeur peut obtenir une activité de test via la méthode getActivity ().
- Vous pouvez créer librement un test pour une activité de test en créant une méthode avec le nom "test + nom de la méthode d'origine"
- Dans la méthode de test, le testeur peut utiliser la fonction Android JUnit pour comparer la valeur réelle et la valeur attendue. Ces méthodes sont illustrées ci-dessous.
Exemples de méthodes du framework de test Robotium et Android
Ces suites de tests ci-dessus ont vérifié que l'interface utilisateur graphique de l'application doit afficher un texte "Hello World!", Et contient un nom de bouton "Démarrer".
ÉTAPE 3) Exécuter le test
Une fois que vous avez terminé d'écrire votre programme de test, exécutez le test en suivant les étapes ci-dessous
- Connectez un appareil Android à votre PC (ou démarrez Emulator si vous n'avez pas de vrai appareil).
- Dans votre IDE, cliquez avec le bouton droit de la souris sur Run asàAndroid Unit Test
Exécution du programme de test
En plus d'exécuter le test sur l'IDE, vous pouvez exécuter le test sur la ligne de commande. Dans ce programme de test, le package de test est com.example.helloandroid.test. Dans le terminal Linux , vous pouvez utiliser la commande suivante pour exécuter tous les tests de ce package:
$ adb shell am instrument -w -e package com.example.helloandroid.test
ÉTAPE 4) Obtenez le résultat du test
Une fois le test exécuté, vous obtenez les résultats du test.
Dans ce programme de test, 4 méthodes de test sont exécutées. Dans ce cas, tous les cas de test sont réussis.
Sortie des résultats de test au cas où tous les cas de test réussis
En cas d'échec du cas de test, la sortie est affichée et vous montre quels cas de test ont échoué
Sortie des résultats de test en cas d'échec de tous les cas de test
Exemples de code source
Cet article comprend des exemples de code source qui vous aident à comprendre le didacticiel plus clairement et à rattraper rapidement les connaissances techniques
- HelloAndroid: Application en cours de test.
- HelloAndroidTest: programme de test utilisant le framework de test Android