Android - UI Testing Tutorial

Android SDK bietet die folgenden Tools, um automatisierte, funktionale UI Tests auf Ihre Anwendung zu unterstützen.
  • uiautomatorviewer
  • uiautomator

uiautomatorviewer

Ein GUI-Tool zu scannen und zu analysieren, die UI-Komponenten eines Android-Anwendung.
Die uiautomatorviewer Tool bietet eine komfortable grafische Benutzeroberfläche, um das Layout-Hierarchie zu inspizieren und sehen Sie die Eigenschaften der einzelnen UI-Komponenten, die auf dem Testgerät angezeigt werden. Mit Hilfe dieser Informationen können Sie später erstellen uiautomator Tests mit Auswahlobjekte, die bestimmte UI-Komponenten zu testen, zu zielen.
Um die UI-Komponenten der Anwendung, die Sie testen möchten zu analysieren, führen Sie folgende Schritte nach der Installation der Anwendung im Beispiel angegeben.
  • Verbinden Sie Ihr Android-Gerät zu Ihrem Entwicklungscomputer
  • Öffnen Sie ein Terminal-Fenster und navigieren Sie zu <android-sdk> / tools /
  • Führen Sie das Tool mit diesem Befehl
uiautomatorviewer
Befehle würden, wie unten dargestellt befolgt werden
Sie werden sehen, das folgende Fenster angezeigt. Es ist das Standardfenster der Benutzeroberfläche von Automator-Viewer.
Android UI Testing Tutorial
  • Klicken Sie auf das Geräte-Symbol in der rechten oberen Ecke. Es wird anfangen, die UI-XML Momentaufnahme des Bildschirms aktuell im Gerät geöffnet wird. Es wäre so etwas wie dieses.
Android UI Testing Tutorial
Danach werden Sie die Momentaufnahme Ihrer Gerätebildschirm in der uiautomatorviewer Fenster.
Android UI Testing Tutorial
Auf der rechten Seite des Fensters, werden Sie zwei Partitionen zu sehen. Die obere Partition erklärt die Knoten-Struktur, die Art, wie die UI-Komponenten sind so angeordnet und enthalten ist. Durch Klicken auf jedem Knoten gibt Detail in der unteren Trenn.
Als Beispiel betrachten wir die Abbildung unten. Wenn Sie auf die Schaltfläche klicken, werden Sie in der oberen Partition, Knopf ausgewählt wird sehen können, und in der unteren Trenn, werden dessen Details angezeigt. Da diese Schaltfläche klicken Sie in der Lage, deshalb seine Eigenschaft, klicken Sie in der Lage auf true gesetzt ist.
Android UI Testing Tutorial
UI Automator-Viewer hilft Ihnen auch, Ihre UI in verschiedenen Orientierungen zu untersuchen. Zum Beispiel, nur Ihr Gerät Ausrichtung zu ändern, um Landschaft und wieder den Screenshot zu erfassen. Es ist in der nachfolgenden Abbildung gezeigt -
Android UI Testing Tutorial

uiautomator

Jetzt können Sie Ihre eigenen Testfälle erstellen und führen Sie es mit uiautomatorviewer, um sie zu untersuchen. Um Ihre eigenen Testfall zu erstellen, müssen Sie folgende Schritte durchführen -
  • Aus dem Projekt-Explorer mit der rechten Maustaste auf das neue Projekt, das Sie erstellt haben, und wählen Sie Eigenschaften> Java Build Path, und gehen Sie wie folgt -
  • Klicken Sie auf Bibliothek hinzufügen> JUnit wählen Sie dann JUnit3 zu JUnit-Unterstützung hinzufügen.
  • Klicken Sie auf Add External JARs ... und navigieren Sie zum SDK-Verzeichnis. Unter der Plattformen Verzeichnis, wählen Sie die neueste SDK-Version, und fügen Sie sowohl die uiautomator.jar und android.jar Dateien.
  • Erweitern Sie Ihre Klasse mit UiAutomatorTestCase
  • Rechts die erforderlichen Testfälle.
  • Sobald Sie Ihr Test codiert haben, gehen Sie folgendermaßen vor zum Erstellen und Bereitstellen Ihrer Test JAR, um Ihre Ziel Android Testgerät.
  • Erstellen Sie die erforderlichen Build-Konfigurationsdateien, um die Ausgabe JAR bauen. Um die Build-Konfigurationsdateien zu erzeugen, öffnen Sie ein Terminal und führen Sie den folgenden Befehl ein:
<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>
    Das ist der Name des Projekts, das Sie Ihre uiautomator Testquelldateien enthält, und die ist der Pfad zu dem entsprechenden Projektverzeichnis.
  • Von der Kommandozeile, setzen Sie den ANDROID_HOME variabel.
set ANDROID_HOME=<path_to_your_sdk>
  • Zum Projekt-Verzeichnis, wo Ihre build.xml Datei befindet, und bauen Sie Ihre Test-JAR.
ant build
  • Stellen Sie Ihre generierten Test JAR-Datei in das Testgerät mit Hilfe des adb Push-Befehl.
adb push <path_to_output_jar> /data/local/tmp/
  • Führen Sie den Test, indem Sie folgenden Befehl -
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings

Beispiel

Das folgende Beispiel demonstriert die Verwendung von UITesting. Es Kästen einer einfachen Anwendung, die für uiautomatorviewer verwendet werden kann.
Um bei diesem Beispiel zu experimentieren, müssen Sie diese auf einem Gerät laufen und folgen Sie den uiautomatorviewer Schritte am Anfang erklärt.
SchritteBezeichnung
1Sie werden Android-Studio verwenden, um ein Android-Anwendung unter einem Paket com.tutorialspoint.myapplication schaffen ;. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden.
2Ändern src / MainActivity.java Datei an Aktivität Code hinzufügen.
3Ändern Sie das Layout XML-Datei res / layout / activity_main.xml jede GUI-Komponente hinzufügen, wenn erforderlich.
4Erstellen src / second.java Datei an Aktivität Code hinzufügen.
5Ändern Sie das Layout XML-Datei res / layout / view.xml jede GUI-Komponente hinzufügen, wenn erforderlich.
6Führen Sie die Anwendung, und wählen Sie einen laufenden Android-Gerät und installieren Sie die Anwendung und überprüfen Sie die Ergebnisse.
Hier beträgt der Gehalt an MainActivity.java.
package com.tutorialspoint.myapplication;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {
   Button b1;
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      b1=(Button)findViewById(R.id.button);
      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent in =new Intent(MainActivity.this,second.class);
            startActivity(in);
         }
      });
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
   }
   
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      
      int id = item.getItemId();
      
      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}
Hier beträgt der Gehalt an second.java.
package com.tutorialspoint.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

/**
 * Created by Sairamkrishna on 4/10/2015.
 */
public class second extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.view);
      Button b1=(Button)findViewById(R.id.button2);
      
      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Toast.makeText(second.this,"Thanks",Toast.LENGTH_LONG).show();
         }
      });
   }
}
Hier beträgt der Gehalt an activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="UI Animator Viewer"
      android:id="@+id/textView"
      android:textSize="25sp"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView"
      android:textColor="#ff36ff15"
      android:textIsSelectable="false"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/logo"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Button"
      android:id="@+id/button"
      android:layout_marginTop="98dp"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true" />

</RelativeLayout>
Hier beträgt der Gehalt an view.xml.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Button"
        android:id="@+id/button2"
        android:layout_gravity="center_horizontal"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>
Hier beträgt der Gehalt an strings.xml.
<resources>
    <string name="app_name">My Application</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
</resources>
Hier beträgt der Gehalt an AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.tutorialspoint.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
      <activity android:name=".second"></activity>
      
   </application>
</manifest>
Lassen Sie uns versuchen, Ihre UI Testing Anwendung auszuführen. Ich nehme an, Sie Ihre aktuelle Android-Gerät mit dem Computer verbunden haben. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf Eclipse-Run IconAusführen-Symbol in der Werkzeugleiste. Vor dem Start der Anwendung wird Android Studio Display folgende Fenster, um eine Option, wo Sie Ihre Android-Anwendung ausgeführt werden soll.
Anroid UI Testing Tutorial
Wählen Sie Ihr Mobilgerät als Option und prüfen Sie dann Ihr mobiles Gerät, die Anwendungsbildschirm anzeigt. Jetzt folgen Sie einfach den an der Spitze unter dem ui Automator Viewer Schnitt, um UI-Tests in diesem Antrag genannten Schritte durchführen.
Share on Google Plus

About ptjqatar

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 التعليقات:

Kommentar veröffentlichen