¿Ha desarrollado alguna vez una aplicación de Android y la ha publicado en Google Play? ¿Qué harás si obtienes una reseña de usuario como:
Cuando publica una aplicación en Google Play, debe estar bien probada para evitar posibles errores. Hay un montón de escenarios de prueba que deberían ejecutarse antes de publicar una aplicación. Para ahorrar el esfuerzo de prueba, necesita una herramienta de prueba. Una de las mejores herramientas de prueba para la aplicación de Android es Selendroid.
- ¿Qué es Selendroid?
- ¿Por qué necesitamos Selendroid?
- Arquitectura Selendroid
- Empezando con Selendroid
- Configuración de un entorno Selendroid
- Cómo iniciar Selendroid
- Comando básico de Selendroid
- Comience su primera prueba con Selendroid
¿Qué es Selendroid?
Selendroid es un marco de automatización de pruebas para múltiples tipos de aplicaciones móviles: aplicaciones nativas e híbridas de Android y web móvil .
Puede escribir las pruebas utilizando las API de cliente de Selenium 2. Porque Selendroid todavía reutiliza la infraestructura existente de Selenium para la web
Selendroid es una poderosa herramienta de prueba. Se puede utilizar en emuladores y dispositivos reales.
¿Por qué necesitamos Selendroid?
Selendroid es una gran herramienta de prueba. Pero aún puede dudar de su utilidad.
Esta sección presentará las características importantes de Selendroid para responder la pregunta de por qué necesita Selendroid.
- Puede probar la aplicación bajo prueba con Selendroid sin ninguna modificación de la aplicación. Solo necesita el archivo binario (APK) instalado en la computadora. Para instalar el archivo binario en el dispositivo, la aplicación de prueba y la aplicación móvil deben estar firmadas con la misma clave de signo
- La aplicación de prueba Selendroid puede interactuar con múltiples dispositivos o simuladores simultáneamente. Es una gran ventaja de Selendroid. Por lo tanto, puede probar su aplicación con varios dispositivos Android para verificar la compatibilidad.
- Selendroid puede simular acciones de usuarios humanos en una aplicación, como tocar, deslizar, arrastrar y soltar en dispositivos
- Puede cambiar los dispositivos de hardware (conectar y desconectar) durante la prueba sin reiniciar o detener la prueba. Selendroid reconoce los nuevos dispositivos automáticamente
- De acuerdo con la versión de la API de Android, Selendroid también es compatible con la nueva API de Android (de API 10 a API 19)
- Selendroid también tiene una herramienta de inspección incorporada para ayudarlo a identificar el elemento de la interfaz de usuario de una aplicación bajo prueba. Por ejemplo, el botón ID, el campo de texto, la vista de texto ...
Arquitectura Selendroid
Selendroid se basa en el marco de instrumentación de Android. Las pruebas de Selendroid están escritas en base a la API del cliente del controlador web de Selenium, por lo que admite la integración completa con los marcos de Selenium actuales.
La siguiente figura describe la arquitectura de Selendroid
Selendroid contiene 4 componentes principales:
- Cliente de controlador web: la biblioteca cliente de Java basada en Selenium. Esta biblioteca debe instalarse en la computadora (que se usa para desarrollar los casos de prueba)
- Selendroid-Server: el servidor que se ejecuta se encuentra en la aplicación que se está probando en un dispositivo o simulador Android. Estos son los componentes principales de una arquitectura Selendroid
- Aplicación de controlador de Android: un controlador de Android integrado, aplicación Web View para probar la web móvil.
- Selendroid-Standalone: este componente se utiliza para instalar el servidor Selendroid y la aplicación bajo prueba (AUT)
Empezando con Selendroid
Ya conoces la importancia del Selendroid. Ahora ensuciemos nuestras manos con Selendroid.
Se deben realizar 3 pasos antes de la primera prueba con Selendroid
Configuración de un entorno Selendroid
Selendroid puede funcionar en Windows, Linux y Mac OS. En este tutorial, configuraremos Selendroid en Windows OS.
Antes de usar Selendroid, primero debe instalar el siguiente paquete
- SDK de Java (mínimo 1.6)
Debe aceptar el acuerdo de licencia y descargar el instalador de Java (elija la base x64 o x86 en su sistema operativo)
Descargue e instale el SDK de Java como software normal
- Versión más reciente del SDK de Android
- Su computadora debe tener al menos un dispositivo virtual Android (AVD) o un dispositivo Android real conectado a la PC.
- Selendroid Standalone con dependencias, Selendroid Client y Selenium Client
- Software Eclipse
- Configurar JAVA_HOME y ANDROID_HOME
Paso 1) En la ventana, haga clic con el botón derecho en Computadora -> Propiedades -> Configuración avanzada del sistema
Paso 2) Visualización de la ventana Propiedades del sistema, seleccione la pestaña Avanzado -> Variables de entorno
Paso 3) La pantalla de la ventana del entorno, haga clic en Nuevo -> Ingrese una variable ANDROID_HOME de la siguiente manera
El valor de la variable es la ruta a android-sdks que ya instaló.
Busque la variable del sistema Ruta -> Editar -> Agregue la siguiente línea después de la línea actual
Similar a ANDROID_HOME, agregue una nueva variable JAVA_HOME con el valor que se muestra a continuación
El valor es la ruta a la instalación de Java JDK
Paso 4) Reinicie su PC -> Listo
Cómo iniciar Selendroid
Paso 1) Obtener una aplicación bajo prueba
Puede usar la aplicación de prueba Selendroid existente para verificar cómo funciona Selendroid (Enlace a la aplicación de muestra bajo prueba)
Una vez que se complete la descarga, copie este APK y el archivo jar independiente de Selendroid anterior en una carpeta con el nombre " Guru99"
Paso 2) Inicie Selendroid
Abra el terminal en Windows y navegue hasta la carpeta que Guru99 creó en el paso 1.
Ejecute el siguiente comando
La salida se mostrará de la siguiente manera
Después de ejecutar este comando, se inicia el servidor HTTP independiente de Selendroid. El número de puerto predeterminado de este servidor es 4444. Todos los dispositivos de hardware, así como el dispositivo virtual de Android, serán escaneados y reconocidos automáticamente. Selendroid identificará la versión de destino de Android y el tamaño de la pantalla del dispositivo.
Para verificar la versión de destino de Android, así como la información del dispositivo, puede iniciar la siguiente URL en un navegador:
http: // localhost: 4444 / wd / hub / status.
Comando básico de Selendroid
Esta sección le presenta algunas líneas de comando básicas de Selendroid-Standalone. Puede usarlos para configurar el entorno de prueba de Selendroid
- Configuración del puerto de Selendroid
El puerto predeterminado de Selendroid es 4444. Pero puede cambiar a otro puerto agregando un parámetro al comando para iniciar Selendroid
Parámetro: -port [número de puerto]
Por ejemplo:
En el comando anterior, 5555 es el nuevo puerto.
Entonces, la URL para verificar la versión de destino de Android se cambia a: http: // localhost: 5555 / wd / hub / status
- Especifique la ubicación de la aplicación bajo prueba (archivo APK binario). Selendroid a menudo requería la ruta absoluta para este archivo
Parámetro: -app [ruta de archivo]
Por ejemplo:
En el comando anterior, el Selendroid encuentra automáticamente la base del archivo binario en "C: \ Guru99App.apk" para obtener la información de la aplicación bajo prueba.
Verifique la URL http: // localhost: 4444 / wd / hub / status, verá esta información
- Cambie el puerto que utiliza Selendroid para comunicarse con el servidor de instrumentación. Selendroid usa el puerto 8080 como predeterminado
Parámetro: -selendroidServerPort [número de puerto]
Ejemplo
El puerto ahora se cambia a 9000
- Cambie el tiempo de espera para iniciar los emuladores. La unidad es milisegundos.
Parámetro: -timeoutEmulatorStart
De forma predeterminada, Selendroid esperará 300.000 milisegundos hasta que se inicie el emulador. Puede cambiar a un nuevo tiempo de espera (200.000 ms) mediante un comando
Después de este tiempo, nuestro expiró, si el emulador no puede iniciarse, el Selendroid arrojará el error de excepción (se produjo un error al buscar dispositivos / emuladores) y luego dejará de ejecutarse
- Cuando inicie el comando Selendroid en la terminal, verá un registro impreso en la pantalla. Puede cambiar el tipo de registro que ve agregando el siguiente parámetro
Parámetro: -logLevel [tipo de registro]
Los valores del nivel de registro son ERROR, WARNING, INFO, DEBUG y VERBOSE. Predeterminado: ERROR.
Por ejemplo, configure Selendroid para imprimir solo el registro de ADVERTENCIA, puede usar este comando
El Selendroid solo imprime el registro de ADVERTENCIAS
Comience su primera prueba con Selendroid
Esta sección es una guía paso a paso para crear su primer script de prueba usando Selendroid
Supongamos que tenemos una aplicación de Android con el nombre de prueba Guru99App. La aplicación incluye un campo de texto y un nombre de botón "Mostrar texto".
DESCARGA EL APK AQUÍ
Necesitamos ejecutar el siguiente caso de prueba usando Selendroid
Casos de prueba |
Condición |
Rendimiento esperado: |
|
El binario de la aplicación bajo prueba está disponible Un dispositivo está conectado a la PC |
El texto "Mostrar texto aquí" se cambia al texto qué usuario ingresa en un campo de texto |
Paso 1) Crea un proyecto Java en Eclipse
Paso 2) Agregue selenium y el archivo jar de Selendroid en entornos de eclipse
Haga clic con el botón derecho en Proyecto Guru99Test -> Ruta de compilación -> Agregar archivos externos
Navegue a la carpeta que almacenó los archivos jar
Se deben agregar 3 archivos jar
- selendroid-client-0.10.0.jar: biblioteca de cliente java de Selendroid
- selendroid-standalone-0.11.0-with-dependencies: biblioteca de servidor independiente Selendroid
- selenium-java-2.40.0.jar: biblioteca de controladores web de Selenium
Seleccionar todo -> Elija Abrir para agregar un archivo jar al proyecto
Paso 3) después de agregar la biblioteca anterior, esas bibliotecas se agregarán a las Bibliotecas de referencia del proyecto de prueba. Un evaluador puede usar las API de esas bibliotecas para desarrollar el programa de prueba.
Cree el paquete "com.guru.test" y agregue el archivo java "Guru99Test.java" como se muestra a continuación
Haga clic derecho en Guru99Test -> Nuevo -> Paquete
Escriba com.guru.test en el campo Nombre en el cuadro de diálogo Nuevo paquete Java à Finalizar
El Eclipse creará carpetas de lista y subcarpetas como esta en la estructura del código fuente
Paso 4) Instale TestNG para Eclipse
En Eclipse, Ayuda -> Instalar nuevo software, en el cuadro de diálogo Instalar, haga clic en Agregar e ingrese lo siguiente
- Nombre: TestNG
- Ubicación: http://selendroid.io/
Presione OK -> Siguiente para instalar TestNG
Paso 5) Copie el Guru99App.apk en la carpeta de la aplicación de prueba
Paso 6) Obtenga la identificación de una aplicación bajo prueba.
Supongamos que tenemos un nombre de archivo APK Guru99App.apk. Siga el paso que se describe en la sección anterior, ejecute el comando en la terminal
Abra el siguiente enlace en un navegador
http: // localhost: 4444 / wd / hub / status.
Se muestra la información del dispositivo, copie el valor de appId "com.guru99app: 1.0"
Paso 7) Abra el archivo Guru99Test.java (en el código de muestra) y cámbielo de la siguiente manera
Para crear una nueva sesión de prueba con Selendroid, debe proporcionar la identificación de la aplicación en el formato: com.guru99app: 1.0. Este ID de aplicación se identifica en el paso 6. Si no establece el ID de la aplicación que coincida con el dispositivo Android, la sesión de prueba arrojará un error y no se iniciará.
Después de inicializar el dispositivo encontrado, Selendroid crea un servidor selendroid personalizado e instala el servidor Selendroid en él
Selendroid también instala la aplicación bajo prueba e inicia el servidor selendroid en el dispositivo
Después de inicializar la sesión de prueba con éxito, el comando de prueba comienza a ejecutarse en un dispositivo. (Como ingresar texto, presione el botón
…). Si la prueba agrega la sesión de prueba, el emulador se detendrá automáticamentePaso 8) Inicie la nueva sesión de prueba
Inicie el servidor Selendroid usando el siguiente comando en la terminal como el paso 6
Después de que se inició el servidor Selendroid, abra el proyecto de prueba de muestra Guru99test en Eclipse, establezca un punto de interrupción en la línea 77 en el archivo Guru99Test.java haciendo doble clic en la línea 77 -> Se mostrará un punto como se muestra a continuación
Inicie una sesión de prueba haciendo clic con el botón derecho en el proyecto Guru99Test -> Depurar como -> Prueba de prueba.
Una sesión de prueba comenzará como a continuación.
Paso 9) Obtenga la identificación del elemento GUI de una aplicación bajo prueba
Después de que la sesión de prueba se inicie correctamente, abra el navegador, navegue hasta la URL http: // localhost: 4444 / inspector
Verá que la aplicación bajo prueba se inicia como se muestra a continuación
Use el mouse para cada elemento de la interfaz de usuario de AUT (botón, campo de texto, etiqueta de texto), la ID de cada elemento se resaltará en el panel derecho
Después de este paso, puede obtener el ID de cada elemento de la interfaz de usuario anterior
- Botón Mostrar ID de texto: " btnShow "
- ID del campo de texto: " edtText "
- ID de texto de etiqueta: " txtView "
Esos ID se utilizarán en el siguiente paso.
Paso 10) Ingrese al programa de prueba como se muestra a continuación
Un programa de prueba que utiliza Selendroid incluye 3 secciones
Prueba de configuración:
A continuación se muestra el código para la prueba de configuración, establecerá la condición para una sesión de prueba. En caso de un error, el Selendroid lanzará la excepción y la aplicación de prueba se detendrá.
El código incluye los comentarios para explicar cada declaración.
paquete com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** @author Guru99 Test App usando Selendroid* Aplicación bajo prueba: Guru99App** /públicoclass Guru99Test {// Declarar la variable del controlador webcontrolador WebDriver privado;/ *** Configurar el entorno antes de probar* @throws Exception* /@BeforeSuitepúblicovoid setUp () lanza Exception {// Iniciar selendroid-standalone durante la pruebaSelendroidConfiguration config = new SelendroidConfiguration ();// Agrega la aplicación selendroid-test-app al servidor independienteconfig.addSupportedApp ("Guru99App.apk");// inicia el servidor independienteSelendroidLauncher selendroidServer = nuevo SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Crea las capacidades de selendroidSelendroidCapabilities capa = new SelendroidCapabilities ();// Especificar para usar la aplicación de prueba de selendroidcapa.setAut ("com.guru99app: 1.0");// Especifique utilizar la API 19 del dispositivo Androidcapa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// No solicite el simulador, use un dispositivo realcapa.setEmulator (falso);//capa.wait(10000000);// Crear instancia de Selendroid Drivercontrolador = nuevo SelendroidDriver (capa);}
Ejecutar prueba
A continuación se muestra el código para ejecutar una prueba. El código incluye los comentarios.
Aquí están los pasos de prueba nuevamente
- Ingresa el texto "Hola, gurú"
- Haga clic en el botón Mostrar texto
- Espera un momento
- Verifique que la aplicación muestre el texto cuando el usuario ingrese a un campo de texto (p. Ej., Muestre el texto "Hola, gurú")
/ *** Comience a ejecutar el caso de prueba* 01. Ingrese el texto "Selendroid" en el campo de texto* 02. Presione el botón OK* @throws Exception* /@Pruebapúblicovoid selendroidTest () lanza Exception {// Imprime el registroSystem.out.print ("Iniciar la ejecución de la prueba");// Encuentra el campo de entrada de texto en la pantalla// La identificación de este campo de texto se obtuvo del paso 9WebElement inputField = driver.findElement (By.id ("edtText"));// Verifique que el campo de texto esté habilitado para que el usuario pueda ingresar textoAssert.assertEquals ("verdadero", inputField.getAttribute ("habilitado"));// Ingresa un texto al campo de textoinputField.sendKeys ("Hola gurú");// haga clic en el botón Mostrar texto// La identificación de este botón se obtuvo del paso 9Botón WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Tiempo de demora para que surta efectoHilo.sueño (5000);// Busque la etiqueta "Mostrar texto aquí" en la pantalla// La identificación de esta etiqueta se obtuvo del paso 9WebElement txtView = driver.findElement (By.id ("txtView"));// Obtener la visualización de texto en pantallaCadena esperada = txtView.getText ();// Verifique que el texto que ingresa el usuario en el campo de texto es el mismo que el que se muestra en la pantallaAssert.assertEquals (esperado, inputField.getText ());}
Finalizar prueba
El siguiente código completará la prueba al detener el controlador Selendroid.
/ *** Detenga el controlador Selendroid** /@DespuésSuitepúblicovacío tearDown () {driver.quit ();}
Puede ver los detalles en el código de muestra incluido en este artículo.
Paso 10) Conecte el dispositivo Android a la PC mediante un cable USB. Puntos a observar -
- Asegúrese de que el dispositivo no tenga un bloqueo de pantalla configurado.
- Los dispositivos deben conectarse a través de USB a la computadora en la que se está ejecutando el componente independiente de selendroid.
- El dispositivo debe instalar al menos la versión de destino de Android API 10
Paso 11) Ejecute la aplicación de prueba: haga clic con el botón derecho en Guru99test -> Ejecutar como -> Prueba TestNG
Paso 10) El script comienza a ejecutarse de la siguiente manera
Paso 12) Una vez que finaliza la ejecución de la prueba, TestNG genera automáticamente el informe de prueba de la siguiente manera
Buen trabajo, has terminado la prueba ahora.
Resumen
Resumen
- Selendroid es una herramienta muy poderosa para probar la aplicación nativa de Android, la aplicación híbrida y la aplicación web.
- Se puede utilizar tanto en dispositivos reales como en el simulador.
- También le permite ejecutar pruebas en paralelo ejecutando una prueba en varios dispositivos.
- El conjunto completo de Selendroid se compone de cuatro componentes:
- Cliente de controlador web,
- Servidor Selendroid,
- Aplicación de controlador de Android
- Selendroid-independiente
- Para usar Selendroid necesita Java JDK, Android SDK y Eclipse instalados.