Android - Test

Le framework Android comprend un framework de test intégré qui vous aide à tester tous les aspects de votre application et les outils SDK incluent des outils pour configurer et exécuter des applications de test. Que vous travailliez dans Eclipse avec ADT ou à partir de la ligne de commande, les outils du SDK vous aident à configurer et à exécuter vos tests dans un émulateur ou l'appareil que vous ciblez.

Structure de test

Les outils de construction et de test d'Android supposent que les projets de test sont organisés en une structure standard de tests, de classes de cas de test, de packages de test et de projets de test.

Outils de test sous Android

Il existe de nombreux outils qui peuvent être utilisés pour tester les applications Android. Certains sont officiels comme Junit, Monkey et certains sont des outils tiers qui peuvent être utilisés pour tester des applications Android. Dans ce chapitre, nous allons expliquer ces deux outils pour tester les applications Android.

  • JUnit
  • Monkey

JUnit

Vous pouvez utiliser le JUnit TestCaseclasse pour effectuer des tests unitaires sur une classe qui n'appelle pas les API Android. TestCase est également la classe de base d'AndroidTestCase, que vous pouvez utiliser pour tester les objets dépendants d'Android. En plus de fournir le framework JUnit, AndroidTestCase propose des méthodes de configuration, de démontage et d'assistance spécifiques à Android.

Pour utiliser TestCase, étendez votre classe avec la classe TestCase et implémentez un appel de méthode setUp (). Sa syntaxe est donnée ci-dessous -

public class MathTest extends TestCase {
   protected double fValue1;
   protected double fValue2;

   protected void setUp() {
      fValue1= 2.0;
      fValue2= 3.0;
   }
}

Pour chaque test, implémentez une méthode qui interagit avec l'appareil. Vérifiez les résultats attendus avec les assertions spécifiées en appelant assertTrue (String, boolean) avec un booléen.

public void testAdd() {
   double result= fValue1 + fValue2;
   assertTrue(result == 5.0);
}

Les méthodes assert comparent les valeurs que vous attendez d'un test aux résultats réels et lèvent une exception si la comparaison échoue.

Une fois les méthodes définies, vous pouvez les exécuter. Sa syntaxe est donnée ci-dessous -

TestCase test= new MathTest("testAdd");
test.run();

Singe

Le singe de l’exercice d’interface utilisateur / d’application, généralement appelé «singe», est un outil de ligne de commande qui envoie des flux pseudo-aléatoires de frappes, de touches et de gestes à un appareil. Vous l'exécutez avec l'outil Android Debug Bridge (adb).

Vous l'utilisez pour tester votre application et signaler les erreurs rencontrées. Vous pouvez répéter un flux d'événements en exécutant l'outil à chaque fois avec la même graine de nombre aléatoire.

Caractéristiques du singe

Monkey a de nombreuses fonctionnalités, mais tout peut être résumé dans ces quatre catégories.

  • Options de configuration de base
  • Contraintes opérationnelles
  • Types d'événements et fréquences
  • Options de débogage

Utilisation du singe

Pour utiliser monkey, ouvrez une invite de commande et accédez simplement au répertoire suivant.

android ->sdk ->platform-tools

Une fois dans le répertoire, connectez votre appareil au PC et exécutez la commande suivante.

adb shell monkey -p your.package.name -v 500

Cette commande peut être décomposée en ces étapes.

  • adb - Pont de débogage Android. Un outil utilisé pour se connecter et envoyer des commandes à votre téléphone Android à partir d'un ordinateur de bureau ou portable.
  • shell - shell est juste une interface sur le périphérique qui traduit nos commandes en commandes système.
  • monkey - monkey est l'outil de test.
  • v - v signifie méthode verbeuse.
  • 500- c'est la fréquence conut ou le nombre d'événements à envoyer pour le test.

Ceci est également montré dans la figure -

Dans la commande ci-dessus, vous exécutez l'outil monkey sur l'application d'interface utilisateur Android par défaut. Maintenant, pour l'exécuter dans votre application, voici ce que vous devez faire.

enfin, vous obtiendrez la finition comme indiqué ci-dessous

Cela a également été montré dans la figure ci-dessous. En tapant cette commande, vous générez en fait 500 événements aléatoires pour les tests.

Exemple

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

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

Pas La description
1 Vous utiliserezAndroid 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 layouta fichier XML res / layout / activity_main.xml ajoutez n'importe quel 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.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
   Button b1;
   @Override

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      b1=(Button)findViewById(R.id.button);
   }

   public void button(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_SHORT).show();
         }
      });
   }
}

Voici le contenu de activity_main.xml.

Dans le code ci-dessous 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:onClick="button"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="100dp" />

</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: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_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:id="@+id/textView3"
      android:textColor="#ff3aff22"
      android:textSize="35dp"
      android:layout_above="@+id/button2"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="90dp" />
      
</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 Android. 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 singe afin d'effectuer des tests sur cette application.