Test mobile - Robotium Framework

Robotium è un framework di test open source per la scrittura di casi di test gray-box automatici per le applicazioni Android. Con il supporto di Robotium, gli sviluppatori di casi di test possono scrivere scenari di test di funzioni, sistemi e test di accettazione, coprendo più attività Android.

Robotium può essere utilizzato sia per testare applicazioni in cui è disponibile il codice sorgente sia per applicazioni in cui è disponibile solo il file APK.

Vantaggi di Robotium

  • Facile da scrivere, codice più breve. Tempo minimo necessario per scrivere casi di test solidi.

  • È possibile sviluppare potenti casi di test, con una conoscenza minima dell'applicazione sottoposta a test.

  • Il framework gestisce automaticamente più attività Android. La leggibilità dei casi di test è notevolmente migliorata rispetto ai test di strumentazione standard.

  • Tempi e ritardi automatici.

  • Segue automaticamente l'attività corrente.

  • Trova automaticamente le visualizzazioni.

  • Prende automaticamente le proprie decisioni (es: quando scorrere, ecc.)

  • Nessuna modifica alla piattaforma Android.

  • L'esecuzione del test è veloce.

  • I casi di test sono più robusti grazie all'associazione in fase di esecuzione ai componenti della GUI.

  • Si integra perfettamente con Maven o Ant.

Inconvenienti di Robotium

  • Robotium non può gestire componenti Flash o Web.

  • Gestisce solo un'applicazione alla volta.

  • Non può simulare il clic sulla tastiera virtuale utilizzando Robotium (è necessario utilizzare 'enterText ()' per inserire il testo in un campo EditText)

  • Robotium non può interagire con le notifiche della barra di stato, ovvero aprire l'area di notifica e fare clic su una notifica specificata.

  • Può essere un po 'lento, soprattutto in esecuzione su dispositivi meno recenti.

Come usare Robotium

Step 1- I prerequisiti per utilizzare Robotium è Java SDK (minimo 1.6). Se non hai Java installato sul tuo sistema, segui i passaggi indicati di seguito.

  • Scarica JDK e JRE da Oracle Technology Network

  • Accetta il contratto di licenza.

  • Installa JDK e JRE.

  • Imposta la variabile d'ambiente come mostrato nello screenshot qui sotto.

Step 2- Scarica Android Studio da Android Studio

  • Fare doppio clic sull'exe ed eseguire il programma di installazione.
  • Continua con tutte le opzioni predefinite.
  • Imposta ANDROID_HOME.

Step 3 - Installa immagini e strumenti Android.

  • Fare clic su SDK Manager -
  • Seleziona il pacchetto necessario. Ad esempio, se stiamo creando un'app per Android 4.4.2, assicurati che i seguenti pacchetti siano selezionati nella sezione Strumenti:

    • Strumenti Android SDK rev 22.6.3
    • Strumenti della piattaforma Android rev 19.0.1
    • Strumenti di build SDK per Android rev 19.1

Step 4 - Crea dispositivi virtuali Android.

  • Apri Android Studio e fai clic su AVD Manager nella barra degli strumenti. Gli AVD ci consentono di testare ed eseguire le nostre app Android.
  • Utilizza le seguenti impostazioni per un Nexus5 AVD:

    • Dispositivo: Nexus 5 (4.95, 1080 x 1920; xxhdpi)
    • Target: API di Google x86 (Google Inc.) - Livello API 19
    • (Assicurati di selezionare il target con le API di Google nel nome.)
    • CPU - Intel Atom (x86)
    • Seleziona la casella Usa GPU host
    • Fare clic su OK
  • Ora dovresti vedere l'AVD che hai creato in AVD Manager, dove puoi avviarlo, eliminarlo o crearne un altro!

Step 5- File Robotium Jar Scarica il file Robotium Jar da RobotiumTech

Prova un'app con Robotium

Per testare un'app con Robotium, segui i passaggi indicati di seguito:

Step 1 - Creare un progetto di prova in Android Studio denominato "RobotiumTest".

Scegli tutte le opzioni predefinite fino a raggiungere la pagina principale.

Step 2 - Copia il file jar Robotium nella cartella Lib del progetto.

Step 3 - Aggiungi la dipendenza nel file build.gradle sotto src cartella.

androidTestCompile "com.jayway.android.robotium: robotium-solo-5.5.3"

Step 4 - Sincronizza il Gradle.

Step 5 - Crea la classe Test come segue -

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

Step 6- Salva tutte le modifiche. Assicurati che non siano presenti errori.

Step 7- Ora, esegui il test case. Se il test case ha esito positivo, dovresti vedere il seguente output!