Selendroid Tutorial para principiantes con ejemplo.

ยฟAlguna vez ha desarrollado una Android aplicaciรณn y publicarla en Google ยฟJugar? ยฟQuรฉ harรกs si recibes una reseรฑa de usuario como esta?

Selendroid Tutorial

Cuando publicas una aplicaciรณn en Google Para jugar, debe probarse bien para evitar posibles errores. Hay muchรญsimos escenarios de prueba que deben ejecutarse antes de publicar una aplicaciรณn. Para ahorrar el Pruebas esfuerzo, necesita una herramienta de prueba. Una de las mejores herramientas de prueba para Android la aplicaciรณn es Selendroid.

ยฟQuรฉ es 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.

ยฟQuรฉ es Selendroid

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

ยฟQuรฉ es Selendroid

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 del Selendroid para responder a la pregunta por quรฉ necesitas 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.
  • 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 el sistema.ping 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 Architectura

Selendroid contiene 4 componentes principales:

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

Empezar con Selendroid

Configurando un Selendroid entorno empresarial

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)

    Configurando un Selendroid Medio Ambiente

    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 Cliente, y Selenium Cliente
  • Eclipse software
  • Configurar JAVA_HOME y ANDROID_HOME

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

    Configurando un Selendroid Medio Ambiente

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

    Configurando un Selendroid Medio Ambiente

    Paso 3) Aparecerรก la ventana Entorno, haga clic en Nuevo -> Introduzca una variable ANDROID_HOME de la siguiente manera

    Configurando un Selendroid Medio Ambiente

    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

    Configurando un Selendroid Medio Ambiente

    Configurando un Selendroid Medio Ambiente

    Similar a ANDROID_HOME, agregue la nueva variable JAVA_HOME con el valor que se muestra a continuaciรณn

    Configurando un Selendroid Medio Ambiente

    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 โ€œGuru99 "

Paso 2) Inicie el Selendroid

Abra la terminal en Windows y navegar a la carpeta Guru99 creados en el paso 1.

Ejecute el siguiente comando

Lanza Selendroid

La salida se mostrarรก de la siguiente manera

Lanza Selendroid

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 Con la versiรณn de destino y la informaciรณn del dispositivo, puede ejecutar lo siguiente: URL en un navegador: http://localhost:4444/wd/hub/status.

Lanza Selendroid

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

  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:

    Selendroid Comando bรกsico

    En el comando anterior, 5555 es el nuevo puerto.

Entonces el URL para verificar Android La versiรณn de destino 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 se requiere la ruta absoluta para este archivo

    Parรกmetro: -aplicaciรณn [ruta de archivo]

    Por ejemplo:

    Selendroid Comando bรกsico

    En el comando anterior, el Selendroid encuentra automรกticamente el archivo binario en funciรณn de โ€œC:\GuruEscriba "99App.apk" para obtener la informaciรณn de la aplicaciรณn que se estรก probando.

    Asegรบrate de leer URL http://localhost:4444/wd/hub/status, verรกs esta informaciรณn

    Selendroid Comando bรกsico

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

    Selendroid Comando bรกsico

    El puerto ahora ha cambiado a 9000.

  3. Cambie el tiempo de espera para iniciar los emuladores. La unidad es milisegundos.

    Parรกmetro: -timeoutEmulatorStart

    Por defecto, Selendroid Esperarรก 300,000 milisegundos hasta que se inicie el emulador. Puede cambiar a un nuevo tiempo de espera (200,000 ms) mediante comando

    Selendroid Comando bรกsico

    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

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

    Selendroid Comando bรกsico

    El 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 nombre de prueba Guru99App. La aplicaciรณn incluye un campo de texto y un botรณn llamado โ€œMostrar textoโ€.

DESCARGA EL APK AQUร

Primera prueba con Selendroid

Necesitamos ejecutar lo siguiente Caso de prueba usando Selendroid

Casos de prueba Estado del producto Rendimiento esperado
  1. Iniciar la aplicacion
  2. Introduce un texto โ€œGuruNUNCA pruebeโ€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) Crรฉar un Java proyecto en Eclipse

Paso 2) Aรฑade selenio y Selendroid Archivo jar en entornos eclipse

Haga clic con el botรณn GuruProyecto de prueba 99 -> 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 : 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

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 en Guru99Prueba -> New -> PREMIUM

Primera prueba con Selendroid

Escriba com.guru.test en el campo Nombre en Nuevo Java Diรกlogo de paquete ร  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) Instale TestNG por la Eclipse

In Eclipse, Ayuda -> Instalar nuevo software, en el cuadro de diรกlogo Instalar, haga clic en Agregar e ingrese lo siguiente

presiona OK -> Siguiente para instalar el TestNG

Primera prueba con Selendroid

Paso 5) Copia el 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 archivo APK llamado Guru99App.apk. Sigue los pasos descritos en la secciรณn anterior y ejecuta el comando en la terminal.

Primera prueba con Selendroid

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โ€

Primera prueba con Selendroid

Paso 7) Abra el archivo Guru99Test.java (en el cรณdigo de ejemplo) y modifรญquelo como sigue

Primera prueba con Selendroid

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

Primera prueba con Selendroid

Una vez que el Selendroid Servidor iniciado, abra el proyecto de prueba de ejemplo. Guru99prueba en Eclipse, establece un punto de interrupciรณn en la lรญnea 77 del archivo Guru99Test.java haciendo doble 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 con el botรณn derecho en GuruProyecto 99Test -> 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 se inicie correctamente, abra el navegador y navegue a 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:

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.

  1. Introduce el texto โ€œHolaโ€ Guru"
  2. Haga clic en el botรณn Mostrar texto
  3. Espera un momento
  4. Verifica que la aplicaciรณn muestre el texto que el usuario ingresa en un campo de texto (Ej. Mostrar 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 deteniรฉndoseping <font dir="auto" style="vertical-align: inherit;">las </font> 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) Conectar 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) Ejecutar la aplicaciรณn de prueba: clic derecho Guru99test -> Correr como -> TestNG compruรฉbalo

Primera prueba con Selendroid

Paso 10) El script comienza a ejecutarse de la siguiente manera

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 manera

Primera prueba con Selendroid

Primera prueba con Selendroid

Buen trabajo, ya has terminado la prueba.

Resumen

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

Resumir este post con: