Android - Test
Il framework Android include un framework di test integrato che ti aiuta a testare tutti gli aspetti della tua applicazione e gli strumenti SDK includono strumenti per la configurazione e l'esecuzione di applicazioni di test. Sia che tu stia lavorando in Eclipse con ADT o dalla riga di comando, gli strumenti SDK ti aiutano a configurare ed eseguire i tuoi test all'interno di un emulatore o del dispositivo che stai mirando.
Struttura del test
Gli strumenti di compilazione e test di Android presuppongono che i progetti di test siano organizzati in una struttura standard di test, classi di casi di test, pacchetti di test e progetti di test.
Strumenti di test in Android
Esistono molti strumenti che possono essere utilizzati per testare le applicazioni Android. Alcuni sono ufficiali come Junit, Monkey e alcuni sono strumenti di terze parti che possono essere utilizzati per testare le applicazioni Android. In questo capitolo spiegheremo questi due strumenti per testare le applicazioni Android.
- JUnit
- Monkey
JUnit
Puoi usare JUnit TestCaseclass per eseguire unit test su una classe che non chiama API Android. TestCase è anche la classe base per AndroidTestCase, che puoi usare per testare oggetti dipendenti da Android. Oltre a fornire il framework JUnit, AndroidTestCase offre metodi di configurazione, smontaggio e supporto specifici per Android.
Per utilizzare TestCase, estendi la tua classe con la classe TestCase e implementa una chiamata al metodo setUp (). La sua sintassi è data di seguito:
public class MathTest extends TestCase {
protected double fValue1;
protected double fValue2;
protected void setUp() {
fValue1= 2.0;
fValue2= 3.0;
}
}
Per ogni test implementare un metodo che interagisce con il dispositivo. Verificare i risultati attesi con le asserzioni specificate chiamando assertTrue (String, boolean) con un booleano.
public void testAdd() {
double result= fValue1 + fValue2;
assertTrue(result == 5.0);
}
I metodi di asserzione confrontano i valori attesi da un test con i risultati effettivi e generano un'eccezione se il confronto non riesce.
Una volta definiti i metodi, è possibile eseguirli. La sua sintassi è data di seguito:
TestCase test= new MathTest("testAdd");
test.run();
Scimmia
L'UI / Application Exerciser Monkey, solitamente chiamata "monkey", è uno strumento da riga di comando che invia flussi pseudo-casuali di sequenze di tasti, tocchi e gesti a un dispositivo. Lo esegui con lo strumento Android Debug Bridge (adb).
Lo usi per sottoporre a stress test la tua applicazione e segnalare gli errori riscontrati. È possibile ripetere un flusso di eventi eseguendo lo strumento ogni volta con lo stesso seme di numero casuale.
Caratteristiche della scimmia
Monkey ha molte caratteristiche, ma tutte possono essere riassunte in queste quattro categorie.
- Opzioni di configurazione di base
- Vincoli operativi
- Tipi di eventi e frequenze
- Opzioni di debug
Uso della scimmia
Per utilizzare monkey, apri un prompt dei comandi e vai alla seguente directory.
android ->sdk ->platform-tools
Una volta all'interno della directory, collega il tuo dispositivo al PC ed esegui il seguente comando.
adb shell monkey -p your.package.name -v 500
Questo comando può essere suddiviso in questi passaggi.
- adb - Android Debug Bridge. Uno strumento utilizzato per connettersi e inviare comandi al telefono Android da un computer desktop o laptop.
- shell - shell è solo un'interfaccia sul dispositivo che traduce i nostri comandi in comandi di sistema.
- monkey - monkey è lo strumento di test.
- v - v sta per metodo verbose.
- 500- è la frequenza conut o il numero di eventi da inviare per il test.
Questo è mostrato anche nella figura:
Nel comando precedente, esegui lo strumento scimmia sull'applicazione dell'interfaccia utente Android predefinita. Ora per eseguirlo sulla tua applicazione, ecco cosa devi fare.
finalmente arriverete alla fine come mostrato di seguito
Ciò è stato mostrato anche nella figura seguente. Digitando questo comando, stai effettivamente generando 500 eventi casuali per il test.
Esempio
L'esempio seguente mostra l'uso di Testing. Crea un'applicazione di base che può essere utilizzata per la scimmia.
Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale e quindi seguire i passaggi della scimmia spiegati all'inizio.
Passi | Descrizione |
---|---|
1 | Utilizzerai Android Studio per creare un'applicazione Android con un pacchetto com.tutorialspoint.myapplication. |
2 | Modifica il file src / MainActivity.java per aggiungere il codice dell'attività. |
3 | Modifica layouta file XML res / layout / activity_main.xml aggiungi qualsiasi componente GUI, se necessario. |
4 | Crea il file src / second.java per aggiungere il codice dell'attività. |
5 | Modifica layout file XML res / layout / view.xml aggiungere qualsiasi componente GUI, se necessario. |
6 | Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati. |
Ecco il contenuto di 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);
}
}
Ecco il contenuto di 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();
}
});
}
}
Ecco il contenuto di activity_main.xml.
Nel codice sottostante abc indica il logo di 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>
Ecco il contenuto di 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>
Ecco il contenuto di Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
Ecco il contenuto di 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>
Proviamo a eseguire l'applicazione di test Android. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio visualizzerà la seguente finestra per selezionare un'opzione in cui si desidera eseguire l'applicazione Android.
Seleziona il tuo dispositivo mobile come opzione, quindi controlla il tuo dispositivo mobile che visualizzerà la schermata dell'applicazione. Ora segui i passaggi menzionati in alto nella sezione scimmia per eseguire i test su questa applicazione.