Tutorial de Selendroid para principiantes con ejemplo

¿Alguna vez ha desarrollado una aplicación para Android y la ha publicado en Google Play? ¿Qué harás si recibes una reseña de usuario como...?

Tutorial selendroide

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 aplicaciones de Android es Selendroide.

¿Qué es Selendroid?

Selendroid es un marco de automatización de pruebas para varios tipos de aplicaciones móviles: nativo y camiones híbridos aplicación de Android y móvil web.

¿Qué es el selendroide?

Puedes escribir las pruebas usando el Selenio 2 API de cliente. Porque Selendroid todavía reutiliza la infraestructura Selenium existente para la web.

Selendroid es una poderosa herramienta de prueba. Se puede utilizar en emuladores y real Médicos

¿Qué es el selendroide?

¿Por qué necesitamos Selendroid?

Selendroid es una gran herramienta de prueba. Pero es posible que aún dudes de su utilidad.

¿Por qué necesitamos Selendroid?

Esta sección presentará las características importantes de Selendroid para responder la pregunta de por qué necesita Selendroid.

¿Por qué necesitamos 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.
  • La aplicación de prueba Selendroid puede interactuar con múltiples dispositivos o simuladores simultáneamente.neously. Es una gran ventaja de Selendroid. Para que puedas probar tu 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 ni detener la prueba. Selendroid reconoce los nuevos dispositivos automáticamente
  • En correspondencia con la versión superior de la API de Android, Selendroid también admite 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…

Selendroide Architectura

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 Selenium, por lo que admite la integración completa con los marcos actuales de Selenium.

El following La figura describe el architectura de Selendroid

Selendroide Architectura

Selendroid contiene 4 componentes principales:

Selendroide Architectura

  • 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-Server: el servidor que se ejecuta en la aplicación bajo prueba en un dispositivo o simulador Android. Estos son los componentes principales de un Selendroid. architectura
  • 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 ensuciémonos las manos con Selendroid.

Hay 3 pasos que se deben realizar antes de la primera prueba con Selendroid

Empezando con Selendroid

Configurar un entorno Selendroid

Selendroid puede funcionar en Windows, Linux y Mac OS. En este tutorial, configuraremos Selendroid en el sistema operativo Windows.

Antes de usar Selendroid, necesitas instalar followwing paquete primero

  • 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)

    Configurar un entorno Selendroid

    Descargue e instale el SDK de Java como software normal

  • Última versión de Android SDK
  • Su computadora debe tener al menos un dispositivo virtual Android (AVD) o un dispositivo Android real conectado a la PC.
  • Selendroid independiente con dependencias, Cliente Selendroid y Cliente de selenio
  • Eclipse software
  • Configurar JAVA_HOME y ANDROID_HOME

    Paso 1) En Windows, haga clic derecho en Computadora -> Propiedades -> Configuracion avanzada del sistema

    Configurar un entorno Selendroid

    Paso 2) Visualización de la ventana Propiedades del sistema, seleccione la pestaña Avanzado -> Variables de entorno

    Configurar un entorno Selendroid

    Paso 3) Aparecerá la ventana Entorno, haga clic en Nuevo -> Ingrese una variable ANDROID_HOME como siguewing

    Configurar un entorno Selendroid

    El valor de la variable es la ruta a los SDK de Android que ya instaló.

    Encuentre la ruta de la variable del sistema -> Editar -> Agrega el siguientewing línea después de la línea actual

    Configurar un entorno Selendroid

    Configurar un entorno Selendroid

    Similar a ANDROID_HOME, agregue una nueva variable JAVA_HOME con el valor siguiente

    Configurar un entorno Selendroid

    El valor es la ruta a su instalación de Java JDK.

    Paso 4) Reinicia tu PC -> Terminado

Cómo iniciar Selendroid

Paso 1) Poner a prueba una aplicación

Puede utilizar la aplicación de prueba Selendroid existente para comprobar 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 anterior Tarro independiente Selendroid 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 siguientewing comando

Iniciar Selendroid

La salida se mostrará de la siguiente manerawing

Iniciar Selendroid

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 Android, serán escaneados y reconocidos automáticamente. Selendroid identificará la versión de destino de Android y el tamaño de pantalla del dispositivo.

Para verificar la versión de destino de Android, así como la información del dispositivo, puede iniciar lo siguientewing URL en un navegador: http://localhost:4444/wd/hub/status.

Iniciar Selendroid

Comando básico 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.

  1. 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:

    Comando básico selendroide

    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

  1. 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: -aplicación [ruta de archivo]

    Por ejemplo:

    Comando básico selendroide

    En el comando anterior, Selendroid busca 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

    Comando básico selendroide

  2. Cambie el puerto que utiliza el Selendroid para comunicarse con el servidor de instrumentación. Selendroid usa el puerto 8080 como predeterminado

    Parámetro: -selendroidServerPort [número de puerto]

    Ejemplo

    Comando básico selendroide

    El puerto ahora ha cambiado a 9000.

  3. 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

    Comando básico selendroide

    Después de este tiempo, nuestro emulador no puede iniciarse, Selendroid generará un error de excepción (Se produjo un error al buscar dispositivos/emuladores) y luego dejará de ejecutarse.

  4. Cuando inicie el comando Selendroid en la terminal, verá un registro impreso en la pantalla. Puede cambiar el tipo de registro que ve agregando lo siguientewing 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, configure Selendroid para que imprima solo el registro de ADVERTENCIA, puede usar este comando

    Comando básico selendroide

    El Selendroid solo imprime el registro de ADVERTENCIA

Comienza tu 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Í

Primera prueba con Selendroid

Necesitamos ejecutar followwing Caso de prueba usando selendroide

Casos de prueba Estado Rendimiento esperado
  1. Iniciar la aplicacion
  2. Introduce un texto “Prueba Guru99”al campo de texto
  3. Presione el botón "Mostrar texto"
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) Crear un proyecto Java en Eclipse

Paso 2) Agregue el archivo jar de selenio y Selendroid en eclipse ambientes

Haga clic derecho en Proyecto Guru99Test -> Construir camino -> Agregar externo Archives

Primera prueba con Selendroid

Navegue hasta la carpeta que almacenó los archivos jar.

Se deben agregar 3 archivos jar

  • selendroid-client-0.10.0.jar: biblioteca cliente java de Selendroid
  • selendroid-standalone-0.11.0-with-dependencies: biblioteca del 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

Primera prueba con Selendroid

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 -> Novedad -> Contenido del Paquete

Primera prueba con Selendroid

Escriba com.guru.test en el campo Nombre en el cuadro de diálogo Nuevo paquete Java à Finalizar

Primera prueba con Selendroid

El Eclipse creará listas de carpetas y subcarpetas como esta en la estructura del código fuente

Primera prueba con Selendroid

Paso 4) Instalar PruebaNG para Eclipse

In Eclipse, Ayuda -> Instale nuevo software, en el cuadro de diálogo de instalación, haga clic en Agregar e ingrese lo siguientewing

presiona OK -> Siguiente para instalar el TestNG

Primera prueba con Selendroid

Paso 5) Copie Guru99App.apk a la carpeta de la aplicación de prueba.

Primera prueba con Selendroid

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

Primera prueba con Selendroid

Abrir seguimientowing 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”

Primera prueba con Selendroid

Paso 7) Abra el archivo Guru99Test.java (en el código de muestra) y cámbielo como siguewing

Primera prueba con Selendroid

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 configura el Id. de aplicación que coincida con el dispositivo Android, la sesión de prueba generará 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 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 servidor Selendroid usando el siguientewing comando en la terminal como el paso 6

Primera prueba con Selendroid

Después de que se inicie el servidor Selendroid, abra el proyecto de prueba de muestra Guru99test en Eclipse, establezca un punto de interrupción en la línea 77 del archivo Guru99Test.java mediante double haga clic en la línea 77 -> Se mostrará un punto como se muestra a continuación.

Primera prueba con Selendroid

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.

Primera prueba con Selendroid

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.

Primera prueba con Selendroid

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

Primera prueba con Selendroid

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:

Following es el código para la prueba de configuración, configurará la condición para una sesión de prueba. En caso de error, Selendroid generará 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.

  1. Ingrese el texto "Hola Guru"
  2. Haga clic en el botón Mostrar texto
  3. Espera un momento
  4. 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 following El código completará la prueba deteniendo el controlador Selendroid.

 /**
		     * 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 el dispositivo Android 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 mediante USB a la computadora en la que se ejecuta el componente independiente selendroid.
  • El dispositivo debe instalar al menos Android Target Version API 10

Paso 11) Ejecute la aplicación de prueba: haga clic derecho en Guru99test -> Correr como -> Prueba de prueba NG

Primera prueba con Selendroid

Paso 10) El script se inicia de la siguiente manerawing

Primera prueba con Selendroid

Paso 12) Una vez que la prueba finaliza la ejecución, TestNG genera automáticamente el informe de prueba de la siguiente manerawing

Primera prueba con Selendroid

Primera prueba con Selendroid

Buen trabajo, ya has terminado la prueba.

Resumen

  • Selendroid es una herramienta muy poderosa para probar aplicaciones nativas de Android, aplicaciones híbridas y aplicaciones 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.
  • Toda la suite Selendroid se compone de cuatro componentes:
    • cliente de controlador web,
    • Servidor Selendroid,
    • Aplicación de controlador de Android
    • Selendroid independiente
  • Para utilizar Selendroid necesita Java JDK, Android SDK y Eclipse instalado.