Android: pruebas de interfaz de usuario
El SDK de Android proporciona las siguientes herramientas para respaldar las pruebas de IU funcionales y automatizadas en su aplicación.
- uiautomatorviewer
- uiautomator
uiautomatorviewer
Una herramienta GUI para escanear y analizar los componentes de la interfaz de usuario de una aplicación de Android.
La herramienta uiautomatorviewer proporciona una interfaz visual conveniente para inspeccionar la jerarquía de diseño y ver las propiedades de los componentes individuales de la IU que se muestran en el dispositivo de prueba. Con esta información, más tarde puede crear pruebas de uiautomator con objetos selectores que se dirigen a componentes de IU específicos para probar.
Para analizar los componentes de la interfaz de usuario de la aplicación que desea probar, realice los siguientes pasos después de instalar la aplicación dada en el ejemplo.
- Conecte su dispositivo Android a su máquina de desarrollo
- Abra una ventana de terminal y navegue hasta <android-sdk> / tools /
- Ejecute la herramienta con este comando
uiautomatorviewer
Los comandos se seguirían como se muestra a continuación
Verá aparecer la siguiente ventana. Es la ventana predeterminada de UI Automator Viewer.
Haga clic en el icono de dispositivos en la esquina superior derecha. Comenzará a tomar la instantánea XML de la interfaz de usuario de la pantalla actualmente abierta en el dispositivo. Sería algo como esto.
Después de eso, verá la instantánea de la pantalla de su dispositivo en la ventana uiautomatorviewer.
En el lado derecho de esta ventana, verá dos particiones. La partición superior explica la estructura de los nodos, la forma en que los componentes de la interfaz de usuario están organizados y contenidos. Al hacer clic en cada nodo, se dan detalles en la partición inferior.
Como ejemplo, considere la siguiente figura. Al hacer clic en el botón, puede ver en la partición superior que el botón está seleccionado, y en la partición inferior, se muestran sus detalles. Dado que este botón puede hacer clic, es por eso que su propiedad de hacer clic se establece en verdadero.
UI Automator Viewer también le ayuda a examinar su UI en diferentes orientaciones. Por ejemplo, simplemente cambie la orientación de su dispositivo a horizontal y vuelva a capturar la captura de pantalla. Se muestra en la siguiente figura:
uiautomator
Ahora puede crear sus propios casos de prueba y ejecutarlos con uiautomatorviewer para examinarlos. Para crear su propio caso de prueba, debe realizar los siguientes pasos:
Desde el Explorador de proyectos, haga clic con el botón derecho en el nuevo proyecto que creó, luego seleccione Propiedades> Ruta de compilación Java y haga lo siguiente:
Haga clic en Agregar biblioteca> JUnit y luego seleccione JUnit3 para agregar compatibilidad con JUnit.
Haga clic en Agregar archivos JAR externos ... y navegue hasta el directorio SDK. En el directorio de plataformas, seleccione la última versión del SDK y agregue los archivos uiautomator.jar y android.jar.
Amplíe su clase con UiAutomatorTestCase
Arregle los casos de prueba necesarios.
Una vez que haya codificado su prueba, siga estos pasos para crear e implementar su JAR de prueba en su dispositivo de prueba Android de destino.
Cree los archivos de configuración de compilación necesarios para compilar el JAR de salida. Para generar los archivos de configuración de compilación, abra una terminal y ejecute el siguiente comando:
<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>
<nombre> es el nombre del proyecto que contiene los archivos fuente de prueba de uiautomator y <ruta> es la ruta al directorio del proyecto correspondiente.
Desde la línea de comando, configure la variable ANDROID_HOME.
set ANDROID_HOME=<path_to_your_sdk>
- Vaya al directorio del proyecto donde se encuentra su archivo build.xml y cree su JAR de prueba.
ant build
- Implemente su archivo JAR de prueba generado en el dispositivo de prueba mediante el comando adb push.
adb push <path_to_output_jar> /data/local/tmp/
- Ejecute su prueba siguiendo el comando:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
Ejemplo
El siguiente ejemplo demuestra el uso de UITesting. Contiene una aplicación básica que se puede utilizar para uiautomatorviewer.
Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real y luego seguir los pasos de uiautomatorviewer explicados al principio.
Pasos | Descripción |
---|---|
1 | Utilizará Android Studio para crear una aplicación de Android en un paquete com.tutorialspoint.myapplication. |
2 | Modifique el archivo src / MainActivity.java para agregar el código de actividad. |
3 | Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario. |
4 | Cree el archivo src / second.java para agregar el código de actividad. |
5 | Modifique el archivo XML de diseño res / layout / view.xml agregue cualquier componente de GUI si es necesario. |
6 | Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados. |
Aquí está el contenido 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);
}
});
}
}
Aquí está el contenido 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();
}
});
}
}
Aquí está el contenido de activity_main.xml
En el siguiente código abc indica el 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>
Aquí está el contenido 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>
Aquí está el contenido de Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
Aquí está el contenido 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>
Intentemos ejecutar su aplicación UI Testing. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Antes de iniciar su aplicación, Android Studio mostrará la siguiente ventana para seleccionar una opción donde desea ejecutar su aplicación de Android.
Seleccione su dispositivo móvil como una opción y luego verifique su dispositivo móvil que mostrará la pantalla de la aplicación. Ahora simplemente siga los pasos mencionados en la parte superior debajo de la sección del visor del automatizador de interfaz de usuario para realizar pruebas de interfaz de usuario en esta aplicación.