Android - Test de l'interface utilisateur

Android SDK fournit les outils suivants pour prendre en charge les tests d'interface utilisateur automatisés et fonctionnels de votre application.

  • uiautomatorviewer
  • uiautomator

uiautomatorviewer

Un outil GUI pour scanner et analyser les composants de l'interface utilisateur d'une application Android.

L'outil uiautomatorviewer fournit une interface visuelle pratique pour inspecter la hiérarchie de disposition et afficher les propriétés des composants d'interface utilisateur individuels qui sont affichés sur le périphérique de test. À l'aide de ces informations, vous pouvez créer ultérieurement des tests uiautomator avec des objets de sélecteur qui ciblent des composants d'interface utilisateur spécifiques à tester.

Pour analyser les composants de l'interface utilisateur de l'application que vous souhaitez tester, effectuez les étapes suivantes après avoir installé l'application donnée dans l'exemple.

  • Connectez votre appareil Android à votre machine de développement
  • Ouvrez une fenêtre de terminal et accédez à <android-sdk> / tools /
  • Exécutez l'outil avec cette commande
uiautomatorviewer

Les commandes seraient suivies comme indiqué ci-dessous

Vous verrez la fenêtre suivante apparaître. Il s'agit de la fenêtre par défaut de la visionneuse UI Automator.

  • Cliquez sur l'icône des appareils dans le coin supérieur droit. Il commencera à prendre l'instantané XML de l'interface utilisateur de l'écran actuellement ouvert dans l'appareil. Ce serait quelque chose comme ça.

Après cela, vous verrez l'instantané de l'écran de votre appareil dans la fenêtre uiautomatorviewer.

Sur le côté droit de cette fenêtre, vous verrez deux partitions. La partition supérieure explique la structure des nœuds, la façon dont les composants de l'interface utilisateur sont organisés et contenus. Cliquer sur chaque nœud donne des détails dans la partition inférieure.

À titre d'exemple, considérons la figure ci-dessous. Lorsque vous cliquez sur le bouton, vous pouvez voir dans la partition supérieure que Button est sélectionné, et dans la partition inférieure, ses détails sont affichés. Étant donné que ce bouton peut cliquer, c'est pourquoi sa propriété de clic est définie sur true.

UI Automator Viewer vous aide également à examiner votre interface utilisateur dans différentes orientations. Par exemple, changez simplement l'orientation de votre appareil en paysage et capturez à nouveau la capture d'écran. Il est montré dans la figure ci-dessous -

uiautomator

Vous pouvez maintenant créer vos propres cas de test et l'exécuter avec uiautomatorviewer pour les examiner. Afin de créer votre propre scénario de test, vous devez effectuer les étapes suivantes -

  • Dans l'Explorateur de projets, cliquez avec le bouton droit sur le nouveau projet que vous avez créé, puis sélectionnez Propriétés> Chemin de construction Java, et procédez comme suit -

  • Cliquez sur Ajouter une bibliothèque> JUnit puis sélectionnez JUnit3 pour ajouter la prise en charge de JUnit.

  • Cliquez sur Ajouter des fichiers JAR externes ... et accédez au répertoire SDK. Dans le répertoire des plates-formes, sélectionnez la dernière version du SDK et ajoutez les fichiers uiautomator.jar et android.jar.

  • Prolongez votre cours avec UiAutomatorTestCase

  • Corrigez les cas de test nécessaires.

  • Une fois que vous avez codé votre test, suivez ces étapes pour créer et déployer votre JAR de test sur votre appareil de test Android cible.

  • Créez les fichiers de configuration de construction requis pour créer le JAR de sortie. Pour générer les fichiers de configuration de construction, ouvrez un terminal et exécutez la commande suivante:

<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>
  • Le <nom> est le nom du projet qui contient vos fichiers source de test uiautomator, et le <chemin> est le chemin vers le répertoire de projet correspondant.

  • À partir de la ligne de commande, définissez la variable ANDROID_HOME.

set ANDROID_HOME=<path_to_your_sdk>
  • Accédez au répertoire du projet où se trouve votre fichier build.xml et générez votre JAR de test.
ant build
  • Déployez votre fichier JAR de test généré sur le périphérique de test à l'aide de la commande adb push.
adb push <path_to_output_jar> /data/local/tmp/
  • Exécutez votre test en suivant la commande -
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings

Exemple

L'exemple ci-dessous illustre l'utilisation de UITesting. Il crée une application de base qui peut être utilisée pour uiautomatorviewer.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel, puis suivre les étapes uiautomatorviewer expliquées au début.

Pas La description
1 Vous utiliserez Android studio pour créer une application Android sous un package com.tutorialspoint.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter le code d'activité.
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez tout composant GUI si nécessaire.
4 Créez le fichier src / second.java pour ajouter le code d'activité.
5 Modifiez le fichier XML de mise en page res / layout / view.xml, ajoutez un composant GUI si nécessaire.
6 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu de MainActivity.java.

package com.tutorialspoint.myapplication;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
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);
         }
      });
   }
}

Voici le contenu de 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;

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

Voici le contenu de activity_main.xml

Dans le code suivant abc indique le logo de tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<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/abc"
      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>

Voici le contenu de 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>

Voici le contenu de Strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Voici le contenu de 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>

Essayons d'exécuter votre application de test d'interface utilisateur. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Avant de démarrer votre application, Android studio affichera la fenêtre suivante pour sélectionner une option dans laquelle vous souhaitez exécuter votre application Android.

Sélectionnez votre appareil mobile en option, puis vérifiez votre appareil mobile qui affichera l'écran d'application. Maintenant, suivez simplement les étapes mentionnées en haut sous la section de la visionneuse de l'automate d'interface utilisateur afin d'effectuer des tests d'interface utilisateur sur cette application.