Android - Test dell'interfaccia utente
Android SDK fornisce i seguenti strumenti per supportare i test dell'interfaccia utente automatizzati e funzionali sulla tua applicazione.
- uiautomatorviewer
- uiautomator
uiautomatorviewer
Uno strumento GUI per scansionare e analizzare i componenti dell'interfaccia utente di un'applicazione Android.
Lo strumento uiautomatorviewer fornisce una comoda interfaccia visiva per ispezionare la gerarchia del layout e visualizzare le proprietà dei singoli componenti dell'interfaccia utente visualizzati sul dispositivo di prova. Utilizzando queste informazioni, è possibile in seguito creare test uiautomator con oggetti selettore che hanno come destinazione componenti UI specifici da testare.
Per analizzare i componenti dell'interfaccia utente dell'applicazione che si desidera testare, eseguire i passaggi seguenti dopo aver installato l'applicazione fornita nell'esempio.
- Collega il tuo dispositivo Android alla tua macchina di sviluppo
- Apri una finestra di terminale e vai a <android-sdk> / tools /
- Esegui lo strumento con questo comando
uiautomatorviewer
I comandi dovrebbero essere seguiti come mostrato di seguito
Vedrai apparire la seguente finestra. È la finestra predefinita di UI Automator Viewer.
Fare clic sull'icona dei dispositivi nell'angolo in alto a destra. Inizierà a scattare l'istantanea XML dell'interfaccia utente della schermata attualmente aperta nel dispositivo. Sarebbe qualcosa del genere.
Dopodiché, vedrai l'istantanea dello schermo del tuo dispositivo nella finestra di uiautomatorviewer.
Sul lato destro di questa finestra, vedrai due partizioni. La partizione superiore spiega la struttura dei nodi, il modo in cui i componenti dell'interfaccia utente sono disposti e contenuti. Facendo clic su ogni nodo vengono forniti i dettagli nella partizione inferiore.
Ad esempio, considera la figura seguente. Quando fai clic sul pulsante, puoi vedere nella partizione superiore che Button è selezionato e nella partizione inferiore vengono mostrati i suoi dettagli. Poiché questo pulsante è in grado di fare clic, ecco perché la sua proprietà di clic è impostata su true.
UI Automator Viewer ti aiuta anche a esaminare la tua interfaccia utente con diversi orientamenti. Ad esempio, cambia semplicemente l'orientamento del dispositivo in orizzontale e acquisisci di nuovo la schermata. È mostrato nella figura seguente:
uiautomator
Ora puoi creare i tuoi casi di test ed eseguirlo con uiautomatorviewer per esaminarli. Per creare il tuo caso di test, devi eseguire i seguenti passaggi:
Da Esplora progetti, fai clic con il pulsante destro del mouse sul nuovo progetto che hai creato, quindi seleziona Proprietà> Percorso build Java e procedi come segue:
Fare clic su Aggiungi libreria> JUnit quindi selezionare JUnit3 per aggiungere il supporto JUnit.
Fare clic su Aggiungi JAR esterni ... e accedere alla directory SDK. Nella directory delle piattaforme, seleziona l'ultima versione dell'SDK e aggiungi i file uiautomator.jar e android.jar.
Estendi la tua classe con UiAutomatorTestCase
Giusto i casi di test necessari.
Dopo aver codificato il test, segui questi passaggi per creare e distribuire il tuo JAR di test sul tuo dispositivo di test Android di destinazione.
Creare i file di configurazione build richiesti per creare il JAR di output. Per generare i file di configurazione della build, apri un terminale ed esegui il seguente comando:
<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>
<name> è il nome del progetto che contiene i file di origine del test di uiautomator e <path> è il percorso della directory del progetto corrispondente.
Dalla riga di comando, imposta la variabile ANDROID_HOME.
set ANDROID_HOME=<path_to_your_sdk>
- Vai alla directory del progetto in cui si trova il tuo file build.xml e crea il tuo JAR di prova.
ant build
- Distribuisci il file JAR di prova generato sul dispositivo di prova utilizzando il comando adb push.
adb push <path_to_output_jar> /data/local/tmp/
- Esegui il test seguendo il comando:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
Esempio
L'esempio seguente mostra l'uso di UITesting. Crea un'applicazione di base che può essere utilizzata per uiautomatorviewer.
Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale e quindi seguire i passaggi di uiautomatorviewer 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 il file XML di layout res / layout / activity_main.xml aggiungi qualsiasi componente della 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.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);
}
});
}
}
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_LONG).show();
}
});
}
}
Ecco il contenuto di activity_main.xml
Nel codice seguente 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:id="@+id/button"
android:layout_marginTop="98dp"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true" />
</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: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>
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 dell'interfaccia utente. Presumo che tu abbia collegato il tuo dispositivo mobile Android effettivo al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del 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 del visualizzatore dell'automazione dell'interfaccia utente per eseguire i test dell'interfaccia utente su questa applicazione.