Robotium Tutorial: Android Testframework mit Beispiel
⚡ Intelligente Zusammenfassung
Robotium ist ein Open-Source Android Ein Testautomatisierungsframework, das native und hybride Apps über ihre Benutzeroberfläche steuert und es einem Tester ermöglicht, Funktions-, System- und Akzeptanzszenarien zu skripten, die sich über mehrere Bereiche erstrecken. Android Aktivitäten.
Was ist Robotium?
Robotium ist ein Android Testframework, das Testfälle für native und hybride Anwendungen automatisiert. RobotiumEin Entwickler kann robuste automatisierte GUI-Testfälle erstellen für Android Ein Entwickler kann außerdem funktionale, System- und Akzeptanztestszenarien schreiben, die sich über mehrere Anwendungen erstrecken. Android Aktivitäten.
Robotium Test-Framework
Die Standard Android Das Testframework weist die unten aufgeführten Einschränkungen auf.
- Mehrere Aktivitäten können nicht bearbeitet werden
- Die Leistung der Testausführung ist langsam
- Die Testfälle sind komplex und schwer umzusetzen.
Das Robotium Das Framework ist die bessere Wahl für die Durchführung von Tests auf einem Android Anwendung.
Robotium ist ein Open-Source-Framework und wird als Erweiterung von betrachtet Android Testframework. Verwendung RobotiumEin Entwickler kann robuste automatisierte GUI-Testfälle erstellen für Android Darüber hinaus kann ein Entwickler funktionale, System- und Akzeptanztestszenarien schreiben, die sich über mehrere Anwendungen erstrecken. Android Aktivitäten.
Die folgende Tabelle fasst die erweiterten Funktionen zusammen, die sie voneinander unterscheiden. Robotium aus dem einfachen Instrumentierungsrahmen.
Erweiterte Funktionen von Robotium
Robotium Testfallklassen
Robotium Es wird eine kleine Anzahl von Klassen zum Testen mitgeliefert, und das Beispiel im Artikel importiert die ältere Version. com.jayway.android.robotium.solo Paket. Diese Klassen unterstützen Testfälle, die sich über mehrere Aktivitäten erstrecken, und Solo ist integriert mit ActivityInstrumentationTestCase2.
Hinweis: Strom Robotium Releases legen dieselbe Klasse unter der kürzeren Version offen. com.robotium.solo Paket, während die Maven-Koordinate erhalten blieb com.jayway.android.robotium:robotium-soloPassen Sie den Import an die JAR-Version an, die Sie dem Projekt tatsächlich hinzufügen.
Das folgende Diagramm zeigt, wie die Solo-Klasse über dem Instrumentierungstestfall angeordnet ist.
Integration von Robotium und ActivityInstrumentationTestCase2
Ein Tester kann Testfälle schreiben, ohne Kenntnisse über das Anwendungsdesign zu besitzen, was diesen Ansatz zu einer Form von Black-Box-TestDas ist ein herausragender Vorteil gegenüber dem einfachen Android Testfallklassen.
Anleitung von Robotium
So verwenden Sie Robotium in Ihrem Android Für dieses Testprojekt müssen Sie die folgenden Schritte befolgen.
Anwendung Robotium
Um die Qualität Ihrer Android Für die Bewerbung befolgen Sie bitte das unten beschriebene vierstufige Verfahren.
- Entwurf der Testspezifikation
- Entwickeln Sie das Testprogramm
- Führen Sie den Testfall auf dem Zielgerät aus.
- Sammeln Sie das Testergebnis
Das folgende Flussdiagramm ordnet diese vier Phasen in der richtigen Reihenfolge an.
Android Anwendungstestverfahren
SCHRITT 1) Entwurf der Testspezifikation
Dies ist der erste Schritt beim Testen Ihrer Anwendung. In diesem Schritt definieren Sie das zu testende Ziel. Android Eine Anwendung hat viele zu testende Ziele, wie z. B. die Benutzeroberfläche, Aktivitäten, Komponenten und Dienste. Eine klare Definition der Ziele trägt zu einer umfassenden Testabdeckung bei.
- Planen Sie die durchzuführenden Testarten (Komponententest, Funktionstest, Systemtest).
- Gestalte jedes Testfall für maximale Abdeckung während der Fahrtping Die Anzahl der Testfälle sollte gering sein. Je mehr Code getestet wird, desto höher ist die Wahrscheinlichkeit, Fehler frühzeitig zu erkennen.
SCHRITT 2) Testprogramm schreiben
Dieser Abschnitt führt Sie durch das Schreiben eines Android Testprogramm mit Android JUnit Tests und RobotiumAngenommen, Sie haben bereits einen entwickelt Android Programm namens HalloAndroidDieses Programm verfügt über die unten beschriebenen Funktionen.
- Zeigen Sie den Text „Hallo Welt!“ auf dem Bildschirm an.
- Zeige ein Hallo anAndroid Meldung, wenn der Benutzer die Taste „Start“ drückt.
Der untenstehende Screenshot zeigt die zu testende Anwendung auf einem Gerät.
HalloAndroid Anwendung
Systemanforderungen
- Das Android Die Plattform wird mit einer vorintegrierten JUnit 3-Rahmenwerk, welches ist das
ActivityInstrumentationTestCase2aufbaut. - So erstellen Sie eine Android Testprojekt von EclipseIhre Maschine benötigt einen funktionierenden Android SDK-Installation.
- Installieren Sie die aktuelle Android Plattform-SDK anstelle einer festgelegten älteren Version.
Die Screenshots in dieser Komplettlösung verwenden Eclipse mit dem ADT-Plugin, das zum Zeitpunkt der Erstellung des Beispiels die Standard-Toolchain war. Eclipse ADT wird nicht mehr unterstützt, daher würden Sie auf einem modernen Rechner herunterladen Android Studio stattdessen denselben Testcode innerhalb eines wiederverwenden Gradle Modul.
Bei der Robotium Testframework herunterladen Robotium Bibliothek aus der Robotium Projekt-Seite.
Erstellen Sie ein Android Testprojekt
- Klicken Sie auf Datei -> Neu -> Andere
- Wählen Android -> Android Führen Sie das Testprojekt wie in der Abbildung unten gezeigt durch und wählen Sie dann „Weiter“.
Erstelle eine neue Android Testprojekt
Geben Sie Ihrem Testprojekt einen Namen. Gemäß der Namenskonvention sollte das Testprojekt „Hallo“ heißen.AndroidPrüfen".
Fügen Sie den Testprojektnamen gemäß der Namenskonvention hinzu.
Wählen Sie die zu testende Zielanwendung aus. In diesem Fall ist es Hello.Androidund klicken Sie dann auf „Fertig stellen“.
Wählen Sie die zu testende Zielanwendung aus.
Erstellen Sie Testsuiten
Basierend auf Ihrer Testspezifikation erstellen Sie nun Test-Suites für Ihr Testprogramm. Sie können aus verschiedenen Optionen wählen. Softwaretest Frameworks. Dieses Tutorial verwendet die Standard-Frameworks. Android Testrahmen ActivityInstrumentationTestCase2Zum Testen mit Robotium, Ergänzen Sie die Robotium Bibliotheksdatei zu einer libs Verzeichnis innerhalb Ihres Projektordners.
Ein Testfall definiert die Testumgebung, die zum Ausführen mehrerer Tests verwendet wird. Um einen Testfall zu definieren, folgen Sie der unten stehenden Programmstruktur.
- Implementieren Sie eine Unterklasse von TestCase.
- Definiere Instanzvariablen, die den Zustand der Fixture speichern.
- Initialisieren Sie den Fixture-Zustand durch Überschreiben von setUp().
- Nach einem Test kann durch Überschreiben der Methode tearDown() aufgeräumt werden.
Das untenstehende Diagramm überträgt diese Struktur auf das Testprogramm, das Sie gleich schreiben werden.
Testprogrammstruktur
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; public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> { private HelloAndroid mActivity; private TextView mView; private String resourceString; private Solo solo; public HelloAndroidTest () { // TODO Auto-generated constructor stub super("com.example.helloandroid",HelloAndroid.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub // super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(),getActivity()); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub //super.tearDown(); solo.finishOpenedActivities(); } public void testPrecondition() { assertNotNull(mView); } /* test Target application contains a text display "Hello World!"*/ public void testSearchText() { assertEquals(resourceString,(String) mView.getText()); } /* test HelloAndroid Activity on target application is exist*/ public void testCurrentActivity() throws Exception { solo.assertCurrentActivity("wrong activity", HelloAndroid.class); } /* test Application UI contains "Start" button */ /* send event click button to target application */ public void testSearchButton() throws Exception { boolean found = solo.searchButton("Start"); solo.clickOnButton("Start"); assertTrue(found); } }
Testfälle hinzufügen
- Erstellen Sie die TestCase-Klassen im selben Paket wie die Testsuite.
- Um eine bestimmte Aktivität zu testen, zum Beispiel HalloAndroidErstellen Sie einen Testfall, der ActivityInstrumentationTestCase2 erweitert.Android>.
- Innerhalb dieser Klasse ruft der Tester die zu testende Aktivität über die Methode getActivity() ab.
- Erstellen Sie beliebig einen Test für die Aktivität, indem Sie eine Methode mit dem Namen „Test + ursprünglicher Methodenname“ hinzufügen.
- Innerhalb der Testmethode kann der Tester verwenden Android JUnit Funktionen zum Vergleich des Ist-Werts mit dem Soll-Wert. Diese Methoden werden im Folgenden dargestellt.
Die folgende Tabelle listet die in den beiden Frameworks am häufigsten verwendeten Assertions- und Interaktionsmethoden auf.
Beispielmethoden von Robotium und der Android Testrahmen
Die obige Testsuite überprüft, ob die GUI der Anwendung den Text „Hello World!“ anzeigt und eine Schaltfläche mit der Bezeichnung „Start“ enthält.
SCHRITT 3) Test ausführen
Nachdem Sie Ihr Testprogramm fertiggestellt haben, führen Sie den Test anhand der folgenden Schritte aus.
- Verbinde ein Android Verbinden Sie das Gerät mit Ihrem PC oder starten Sie einen Emulator, falls kein echtes Gerät verfügbar ist.
- Klicken Sie in Ihrer IDE mit der rechten Maustaste auf das Testprojekt und wählen Sie Ausführen als → Android Komponententest.
Der untenstehende Screenshot zeigt, wie der Testlauf aus der IDE gestartet wird.
Ausführen des Testprogramms
Neben der Ausführung des Tests über die IDE kann er auch über die Kommandozeile ausgeführt werden. In diesem Testprogramm ist das Testpaket com.example.helloandroid.test. Führen Sie in einem Linux-Terminal den folgenden Befehl aus, 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 werden die Testergebnisse erfasst.
In diesem Testprogramm werden vier Testmethoden ausgeführt. Im folgenden Testlauf wurden alle Testfälle erfolgreich abgeschlossen.
Ausgabe des Testergebnisses, wenn alle Testfälle erfolgreich waren
Wenn ein Testfall fehlschlägt, wird die Ausgabe angezeigt und zeigt Ihnen, welche Testfälle fehlgeschlagen sind.
Ausgabe des Testergebnisses bei einem fehlgeschlagenen Testfall
Quelle Code Beispiele
Dieser Artikel enthält Quellcodebeispiele, die Ihnen helfen, dem Tutorial besser zu folgen und die technischen Details schnell zu erfassen.
- HalloAndroid: die zu testende Anwendung.
- HalloAndroidTest: das Testprogramm, das die Android Testframework.
Wenn Sie vergleichen möchten Robotium mit den anderen Optionen in diesem Bereich, siehe Testen mobiler Anwendungen Leitfaden, der Appium Lernprogramm und die Zusammenfassung von Testtools für mobile Apps.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)