Selendroid Tutorial para principiantes con ejemplo.
¿Alguna vez ha desarrollado una Android aplicación y publicarla en Google Play? ¿Qué harás si recibes una reseña de usuario como...?
Cuando publicas una aplicación en Google Play, debes probarla bien para evitar posibles errores. Hay un montón de escenarios de prueba que deben ejecutarse antes de publicar una aplicación. para guardar el Pruebas esfuerzo, necesita una herramienta de prueba. Una de las mejores herramientas de prueba para Android la aplicación es Selendroid.
¿Qué es el Selendroid?
Selendroid es un marco de automatización de pruebas para varios tipos de aplicaciones móviles: nativo y camiones híbridos Android aplicación y móvil web.
Puedes escribir las pruebas usando el Selenium 2 API de cliente. Porque Selendroid todavía reutilizaciones de lo existente Selenium infraestructura para la web
Selendroid es una poderosa herramienta de prueba. Se puede utilizar en emuladores y real Médicos
Por qué necesitamos Selendroid?
Selendroid es una gran herramienta de prueba. Pero es posible que aún dudes de su utilidad.
Esta sección presentará las características importantes del Selendroid para responder a la pregunta por qué necesitas Selendroid.
- Puede probar la aplicación bajo prueba usando Selendroid sin ninguna modificación de la aplicación. Sólo necesitas 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 firma.
- Selendroid La aplicación de prueba puede interactuar con varios dispositivos o simuladores simultáneamente. Es una gran ventaja de Selendroid. Para que puedas probar tu aplicación con varios Android dispositivos para comprobar 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 ni detener la prueba. Selendroid reconoce los nuevos dispositivos automáticamente
- Correspondiente a la Android Versión API actualizada, Selendroid también es compatible con el nuevo Android API (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…
Selendroid Architectura
Selendroid se basa en la Android marco de instrumentación. Selendroid Las pruebas se escriben en base a Selenium API de cliente de controlador web, por lo que admite la integración completa con la versión actual. Selenium marcos.
La siguiente figura describe la arquitectura de Selendroid
Selendroid contiene 4 componentes principales:
- Cliente de controlador web: el Java biblioteca cliente basada en Selenium. Esta biblioteca debe instalarse en la computadora (que se utiliza para desarrollar los casos de prueba)
- Selendroid-Servidor: el servidor que se ejecuta en la aplicación bajo prueba el Android dispositivo o simulador. Estos son los componentes principales de un Selendroid arquitectura
- Android Driver-App – Una aplicación integrada Android controlador, aplicación Web View para probar la web móvil.
- Selendroid-Independiente: este componente se utiliza para instalar el Selendroid servidor y la aplicación bajo prueba (AUT)
Empezar con Selendroid
Ya sabes la importancia del Selendroid. Ahora ensuciémonos las manos con Selendroid.
Hay 3 pasos que se deben realizar antes de la primera prueba con Selendroid
Configurando un Selendroid entorno
Selendroid puede funcionar en ventana, Linux y Mac OS. En este tutorial, configuraremos Selendroid en el sistema operativo Windows.
Antes de utilizar Selendroid, primero debes instalar el siguiente paquete
- Java SDK (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 Java SDK como software normal
- Última versión de Android SDK
- Su computadora debe tener al menos una Android Dispositivo virtual (AVD), o un dispositivo real Android dispositivo conectado a la PC.
- Selendroid Independiente con dependencias, Selendroid Clientey Selenium Cliente
- Eclipse software
- Configurar JAVA_HOME y ANDROID_HOME
Paso 1) En Windows, haga clic derecho en Computadora -> Propiedades -> Configuracion avanzada del sistema
Paso 2) Visualización de la ventana Propiedades del sistema, seleccione la pestaña Avanzado -> Variables de entorno
Paso 3) Aparecerá la ventana Entorno, haga clic en Nuevo -> Introduzca una variable ANDROID_HOME de la siguiente manera
El valor de la variable es la ruta a android-sdks que ya instalaste.
Encuentre la ruta de la variable del sistema -> Editar -> Añade la siguiente línea después de la línea actual
Similar a ANDROID_HOME, agregue la nueva variable JAVA_HOME con el valor que se muestra a continuación
El valor es el Camino hacia tu Java instalación JDK
Paso 4) Reinicia tu PC -> Terminado
Cómo lanzar Selendroid
Paso 1) Poner a prueba una aplicación
Puedes usar existentes Selendroid aplicación de prueba para comprobar cómo Selendroid trabajos (Enlace a la aplicación de muestra bajo prueba)
Una vez que se complete la descarga, copie este APK y el anterior Selendroid Tarro independiente archivo a una carpeta con el nombre “Gurú99″
Paso 2) Inicie el Selendroid
Abra la terminal en Windows Y navegue hasta la carpeta Guru99 creada en el paso 1.
Ejecute el siguiente comando
La salida se mostrará de la siguiente manera
Después de ejecutar este comando, Selendroid-¡Se inicia el servidor HTTP independiente! El número de puerto predeterminado de este servidor es 4444. Todos los dispositivos de hardware, así como Android Dispositivo virtual, será escaneado y reconocido automáticamente. Selendroid identificará el Android versión de destino y tamaño de pantalla del dispositivo.
Para verificar el Android Para obtener la versión de destino y la información del dispositivo, puede iniciar la siguiente URL en un navegador: http://localhost:4444/wd/hub/status
.
Selendroid comando básico
Esta sección le presenta algunos conceptos básicos Selendroid-Línea de comando independiente. Puede usarlos para configurar el Selendroid entorno de prueba
- 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: -puerto [número de puerto]
Por ejemplo:
En el comando anterior, 5555 es el nuevo puerto.
Entonces la URL para verificar el Android La versión de destino 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 se requiere la ruta absoluta para este archivo
Parámetro: -aplicación [ruta de archivo]
Por ejemplo:
En el comando anterior, el Selendroid busque automáticamente la base del archivo binario en “C:\Guru99App.apk” para obtener la información de la aplicación bajo prueba.
Comprueba la URL
http://localhost:4444/wd/hub/status
, verás esta información - Cambie el puerto el Selendroid utiliza para comunicarse con el servidor de instrumentación. Selendroid utiliza el puerto 8080 como predeterminado
Parámetro: -selendroidServerPort [número de puerto]
Ejemplo
El puerto ahora ha cambiado 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 comando
Después de este tiempo, nuestro 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 empiezas el 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. Valor predeterminado: ERROR.
Por ejemplo, establezca Selendroid Para imprimir solo el registro de ADVERTENCIA, puede utilizar este comando
La Selendroid imprimir sólo el registro de ADVERTENCIA
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 un Android aplicación bajo el nombre de prueba Guru99App. La aplicación incluye un campo de texto y un nombre de botón "Mostrar texto".
Necesitamos ejecutar lo siguiente Caso de prueba usando Selendroid
Casos de prueba | Estado | Rendimiento esperado |
---|---|---|
|
El binario de la aplicación bajo prueba está disponible.
Un dispositivo está conectado a la PC |
El texto “Texto Mostrar aquí” se cambia al texto
qué usuario ingresa en un campo de texto |
Paso 1) Créar un Java proyecto en Eclipse
Paso 2) Añade selenio y Selendroid Archivo jar en entornos eclipse
Haga clic derecho en Proyecto Guru99Test -> Construir camino -> Agregar externo Archives
Navegue hasta la carpeta que almacenó los archivos jar.
Se deben agregar 3 archivos jar
- selendroid-client-0.10.0.jar : Selendroid biblioteca cliente java
- selendroid-standalone-0.11.0-con-dependencias : Selendroid biblioteca de servidor independiente
- selenio-java-2.40.0.jar : Selenium Biblioteca de controladores web
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 utilizar 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 -> PREMIUM
Escriba com.guru.test en el campo Nombre en Nuevo Java Diálogo de paquete à Finalizar
La Eclipse creará listas de carpetas y subcarpetas como esta en la estructura del código fuente
Paso 4) Instalar TestNG for Eclipse
In Eclipse, Ayuda -> Instalar nuevo software, en el cuadro de diálogo Instalar, haga clic en Agregar e ingrese lo siguiente
- Nombre: TestNG
- Lugar: http://selendroid.io/
presiona OK -> Siguiente para instalar el TestNG
Paso 5) Copie Guru99App.apk a la carpeta de la aplicación de prueba.
Paso 6) Obtenga el ID 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, debes proporcionar la identificación de la aplicación en el formato: com.guru99app:1.0. Este Id. de aplicación se puede identificar en el paso 6. Si no configura el Id. de aplicación que coincida con el Android dispositivo, 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 Selendroid servidor en él
Selendroid También instala la aplicación en prueba e inicia el servidor selendroid en el dispositivo.
Después de inicializar correctamente la sesión de prueba, el comando de prueba comienza a ejecutarse en un dispositivo. (Como ingresar texto, presionar el botón…). Si la prueba agrega la sesión de prueba, el emulador se detendrá automáticamente
Paso 8) Iniciar la nueva sesión de prueba
Inicie el Selendroid servidor usando el siguiente comando en la terminal como en el paso 6
Una vez que el Selendroid Servidor iniciado, 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 derecho en el proyecto Guru99Test -> Depurar como -> Prueba Prueba.
Una sesión de prueba comenzará como se muestra a continuación.
Paso 9) Obtenga el ID del elemento GUI de una aplicación bajo prueba
Después de que la sesión de prueba comience exitosamente, 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.
Utilice el cursor del mouse para cada elemento de la interfaz de usuario de AUT (botón, campo de texto, etiqueta de texto), la identificación 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: “btnMostrar"
- ID de campo de texto: “edtTexto"
- ID de texto de etiqueta: “txtVer"
Esas identificaciones 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, que configurará la condición para una sesión de prueba. En caso de error, el Selendroid lanzará la excepción y la aplicación de prueba se detendrá.
El código incluye los comentarios para explicar cada afirmación.
package 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; import 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 using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new 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 la prueba nuevamente.
- Ingrese el texto "Hola Guru"
- 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 (por ejemplo, muestre el texto "Hola Guru")
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Finalizar prueba
El siguiente código completará la prueba deteniendo el Selendroid conductor.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Puede ver los detalles en el código de muestra incluido en este artículo.
Paso 10) Conecte Android dispositivo a la PC mediante un cable USB. Puntos a observar –
- Asegúrese de que el dispositivo no tenga configurado ningún bloqueo de pantalla.
- Los dispositivos deben conectarse a través de USB a la computadora en la que se ejecuta el componente selendroid-standalone.
- El dispositivo debe instalar al menos Android Target Versión API 10
Paso 11) Ejecute la aplicación de prueba: haga clic derecho en Guru99test -> Correr como -> TestNG test
Paso 10) El script comienza a ejecutarse de la siguiente manera
Paso 12) Una vez que la prueba finaliza la ejecución, TestNG genera automáticamente el informe de prueba de la siguiente manera
Buen trabajo, ya has terminado la prueba.
Resum
- Selendroid es una herramienta muy poderosa para probar Android aplicación nativa, 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 múltiples dispositivos.
- La totalidad Selendroid La suite se compone de cuatro componentes:
- cliente de controlador web,
- Selendroid-Servidor,
- Android Aplicación de controlador
- Selendroid-ser único
- Para utilizar Selendroid necesitas Java JDK, Android SDK y Eclipse instalado.