Robotium Tutorial: Ihr erstes Android Framework

Inhaltsverzeichnis:

Anonim

Was ist das Robotium?

Robotium ist ein Android-Testframework zur Automatisierung von Testfällen für native und hybride Anwendungen. Mit Robotium kann der Entwickler einen starken automatischen GUI-Testfall für Android-Anwendungen erstellen. Darüber hinaus könnte der Entwickler ein Funktions-, System- und Abnahmetestszenario schreiben, das viele Android-Aktivitäten verbreitet.

In diesem Tutorial lernen Sie:

  • Robotium-Test-Framework
  • Wie benutzt man Robotium?
  • SCHRITT 1) Spezifikation des Designtests
  • SCHRITT 2) Schreiben Sie das TEST-Programm
  • SCHRITT 3) Führen Sie den Test aus
  • SCHRITT 4) Testergebnis abrufen

Robotium-Test-Framework

Das Standard-Android-Testframework weist einige Einschränkungen auf (siehe unten)

  • Mehrere Aktivitäten können nicht ausgeführt werden
  • Die Testausführungsleistung ist langsam
  • Testfälle sind komplex und schwer zu implementieren

Das Robotium- Framework ist die bessere Wahl, um Tests mit Android-Anwendungen durchzuführen

Robotium ist ein Open-Source-Framework und wird als Erweiterung des Android-Test-Frameworks angesehen. Mit Robotium kann der Entwickler robuste automatische GUI-Testfälle für Android-Anwendungen erstellen. Darüber hinaus kann der Entwickler Funktions-, System- und Abnahmetestszenarien schreiben, die mehrere Android-Aktivitäten umfassen.

Erweiterte Funktionen von Robotium

Robotium-Testfallklassen

Robotium verwendet zum Testen eine Reihe von Klassen ( com.jayway.android.robotium.solo ) . Diese Klasse unterstützt Testfälle, die sich über mehrere Aktivitäten erstrecken. Solo ist in ActivityInstrumentationTestCase2 integriert.

Integration Robotium und ActivityInstrumentationTestCase2

Der Tester kann Testfälle ohne Kenntnis des Anwendungsdesigns (Black-Box-Test) mithilfe von Robotium-Testfallklassen schreiben. Es ist eine herausragende Funktion im Vergleich zu Android-Testfallklassen.

Wie benutzt man Robotium?

Um Robotium in Ihrem Android-Testprojekt zu verwenden, müssen Sie die folgenden Schritte ausführen

Verwenden von Robotium zum Testen von Android-Anwendungen. Um die Qualität Ihrer Android-Anwendung zu gewährleisten, sollten Sie die folgenden Schritte ausführen

  1. Entwurfstestspezifikation
  2. Testprogramm entwickeln
  3. Führen Sie den Testfall auf dem Zielgerät aus
  4. Testergebnis sammeln

Android-Anwendung Testverfahren

SCHRITT 1) Spezifikation des Designtests

  • Dies ist der erste Schritt zum Testen Ihrer Anwendung. In diesem Schritt definieren Sie das zu testende Ziel. In Ihrer Android-Anwendung müssen viele Ziele getestet werden, z. B. Benutzeroberfläche, Aktivität, Komponenten und Dienste. Durch eine klare Definition des Ziels in Ihrer Anwendung können Sie eine breite Testabdeckung erzielen.
  • Planen Sie, welche Testtypen durchgeführt werden sollen (Unit-Test, Funktionstest, Systemtest).
  • Entwerfen Sie Testfälle für maximale Abdeckung, aber minimieren Sie die Anzahl der Testfälle. Je mehr Code getestet wird, desto größer ist die Wahrscheinlichkeit einer frühzeitigen Fehlererkennung.

SCHRITT 2) Schreiben Sie das TEST-Programm

In diesem Abschnitt erfahren Sie, wie Sie ein Android-Testprogramm mit Android Junit Test und Robotium schreiben. Angenommen, Sie haben bereits ein Android-Programm namens HelloAndroid entwickelt. Dieses Programm hat einige Funktionen, die unten beschrieben werden:

  • Zeigen Sie einen Text "Hallo Welt!" auf dem Bildschirm.
  • Zeigen Sie eine Nachricht HelloAndroid an, wenn der Benutzer die Schaltfläche "Start" drückt

HelloAndroid-Anwendung

System Anforderungen

  • Die Android-Plattform verfügt über ein vorintegriertes JUnit 3.0-Framework.
  • Um ein Android-Testprojekt aus Eclipse erstellen zu können, muss auf Ihrem Computer Folgendes installiert sein:
    • Neueste Version Android Platform (derzeit Android 8.1)

Sie können Eclipse IDE mit integriertem ADT (Android Developer Tools) herunterladen. Es enthält die wesentlichen Android SDK-Komponenten und eine Version der Eclipse-IDE.

Für das Robotium-Testframework müssen Sie die Robotium-Bibliothek von der Robotium-Webseite herunterfahren.

Erstellen Sie ein Android-Testprojekt

  • Klicken Sie auf Datei -> Neu -> Andere
  • Wählen Sie: Android -> Android-Testprojekt wie in der folgenden Abbildung dargestellt -> Wählen Sie Weiter

Erstellen Sie ein neues Android-Testprojekt

Schreiben Sie den Namen Ihres Testprojekts. Als Namenskonvention sollte Ihr Testprojekt den Namen "HelloAndroidTest" haben.

Fügen Sie den Namen des Testprojekts basierend auf der Namenskonvention hinzu

Wählen Sie die zu testende Zielanwendung. In diesem Fall ist dies HelloAndroid. Klicken Sie auf Fertig stellen

Wählen Sie die zu testende Zielanwendung

Erstellen Sie Testsuiten

Basierend auf Ihrer Testspezifikation haben Sie begonnen, Testsuiten für Ihr Testprogramm zu erstellen. Sie können verschiedene Test-Frameworks auswählen. In diesem Tutorial wähle ich das Standard-Android-Testframework ActivityInstrumentationTestCase2 . Sie müssen die Robotium-Bibliotheksdatei zu einem libs-Verzeichnis in Ihrem Projektordner hinzufügen, wenn Sie mit dem Robotium-Framework testen möchten. (Sie erstellen einen lib-Ordner in Ihrem Projektordner).

Ein Testfall definiert das Gerät, mit dem mehrere Tests ausgeführt werden sollen. Um einen Testfall zu definieren, müssen Sie der folgenden Programmstruktur folgen:

  • Implementieren Sie eine Unterklasse von TestCase.
  • Definieren Sie Instanzvariablen, die den Status des Geräts speichern
  • Initialisieren Sie den Fixture-Status, indem Sie setUp () überschreiben.
  • Bereinigen Sie nach einem Test, indem Sie tearDown () überschreiben.

Struktur des Testprogramms

Paket com.example.helloandroid.test;import com.example.helloandroid.HelloAndroid;importieren com.jayway.android.robotium.solo.Solo;android.test.ActivityInstrumentationTestCase2 importieren;android.widget.TextView importieren;öffentliche Klasse HelloAndroidTest erweitert ActivityInstrumentationTestCase2  {private HelloAndroid-Aktivität;private TextView mView;private String resourceString;privates Solo solo;public HelloAndroidTest () {// TODO Automatisch generierter Konstruktor-Stubsuper ("com.example.helloandroid", HelloAndroid.class);}}@Overrideprotected void setUp () löst eine Ausnahme aus {// TODO Automatisch generierter Methodenstub// super.setUp ();mActivity = this.getActivity ();solo = neues Solo (getInstrumentation (), getActivity ());mView = (TextView) mActivity.findViewById (com.example.helloandroid.R.id.textview2);resourceString = mActivity.getString (com.example.helloandroid.R.string.hello_world);}}@Overrideprotected void tearDown () löst eine Ausnahme aus {// TODO Automatisch generierter Methodenstub//super.tearDown ();solo.finishOpenedActivities ();}}public void testPrecondition () {assertNotNull (mView);}}/ * test Zielanwendung enthält eine Textanzeige "Hallo Welt!" * /public void testSearchText () {assertEquals (resourceString, (String) mView.getText ());}}/ * Test HelloAndroid Aktivität für Zielanwendung ist vorhanden * /public void testCurrentActivity () löst eine Ausnahme aus {solo.assertCurrentActivity ("falsche Aktivität", HelloAndroid.class);}}/ * Die Benutzeroberfläche der Testanwendung enthält die Schaltfläche "Start" * // * Ereignis-Klick-Schaltfläche an Zielanwendung senden * /public void testSearchButton () löst eine Ausnahme aus {boolean found = solo.searchButton ("Start");solo.clickOnButton ("Start");assertTrue (gefunden);}}}}

Hinzufügen von Testfällen

  • Im selben Paket mit TestSuite erstellen wir TestCase-Klassen
  • Erstellen Sie zum Testen bestimmter Aktivitäten, z. B. HelloAndroid, einen Testfallumfang ActivityInstrumentationTestCase2
  • In dieser Klasse kann der Tester die Testaktivität über die Methode getActivity () abrufen.
  • Sie können einen Test für eine Testaktivität frei erstellen, indem Sie eine Methode mit dem Namen "test + original Method Name" erstellen.
  • Bei der Testmethode kann der Tester die Android JUnit-Funktion verwenden, um den tatsächlichen Wert und den erwarteten Wert zu vergleichen. Diese Methoden werden unten gezeigt.

Beispielmethoden für das Robotium- und Android-Test-Framework

Diese Testsuiten oben haben überprüft, dass die Anwendungs-GUI einen Text "Hello World!" Anzeigen muss und einen Schaltflächennamen "Start" enthält.

SCHRITT 3) Führen Sie den Test aus

Nachdem Sie Ihr Testprogramm fertig geschrieben haben, führen Sie den Test mit den folgenden Schritten aus

  • Schließen Sie das Android-Gerät an Ihren PC an (oder starten Sie den Emulator, falls Sie kein echtes Gerät haben).
  • Klicken Sie in Ihrer IDE mit der rechten Maustaste auf "Als Android-Unit-Test ausführen"

Testprogramm ausführen

Neben dem Ausführen eines Tests in der IDE können Sie auch einen Test in der Befehlszeile ausführen. In diesem Testprogramm lautet das Testpaket com.example.helloandroid.test. Im Linux- Terminal können Sie den folgenden Befehl verwenden, um alle Tests in diesem Paket auszuführen:

$ adb shell am instrument -w -e package com.example.helloandroid.test

SCHRITT 4) Testergebnis abrufen

Nach der Testausführung erhalten Sie Testergebnisse.

In diesem Testprogramm werden 4 Testmethoden ausgeführt. In diesem Fall werden alle Testfälle bestanden.

Ausgabe des Testergebnisses für den Fall, dass alle Testfälle bestanden wurden

Falls der Testfall fehlschlägt, wird die Ausgabe angezeigt und zeigt Ihnen, welche Testfälle fehlgeschlagen sind

Ausgabe des Testergebnisses für den Fall, dass alle Testfälle fehlgeschlagen sind

Beispiele für Quellcode

Dieser Artikel enthält einige Beispiele für den Quellcode, die Ihnen helfen, das Lernprogramm klarer zu verstehen und das technische Wissen schnell einzuholen

  • HelloAndroid: Anwendung im Test.
  • HelloAndroidTest: Testprogramm mit Android Test Framework