Pruebas móviles - Selendroid Framework

Selendroid es un marco de automatización de pruebas para probar aplicaciones nativas e híbridas de Android. Las pruebas de Selendroid se escriben utilizando la API del cliente Selenium Webdriver.

Beneficios de Selendroid

  • Totalmente compatible con JSON Wire Protocol / Selenium 3 Ready.

  • No se requiere modificación de la aplicación bajo prueba para automatizarla.

  • Prueba de la web móvil utilizando la aplicación webview del controlador de Android incorporada.

  • Mismo concepto para automatizar aplicaciones nativas o híbridas.

  • Los elementos de la interfaz de usuario se pueden encontrar mediante diferentes tipos de localizadores.

  • Los gestos son compatibles: API de interacciones de usuario avanzadas.

  • Los emuladores existentes se inician automáticamente.

  • Selendroid admite la conexión en caliente de dispositivos de hardware.

  • Integración completa como un nodo en Selenium Grid para escalado y pruebas paralelas.

  • Compatibilidad con varias API de destino de Android (10 a 19).

  • Inspector integrado para simplificar el desarrollo de casos de prueba.

  • Selendroid se puede extender en tiempo de ejecución con sus propias extensiones.

  • Selendroid puede interactuar con múltiples dispositivos Android (emuladores o dispositivos de hardware) al mismo tiempo.

Inconvenientes de Selendroid

El inconveniente de esta herramienta es que es bastante lenta y, en algunas máquinas con menos de 4 GB de RAM, no se puede utilizar.

Cómo usar Selendroid

Step 1- Los requisitos previos para utilizar Robotium es Java SDK (mínimo 1.6). Si no tiene Java instalado en su sistema, siga los pasos que se indican a continuación.

  • Descargue JDK y JRE desde Oracle JavaSE

  • Acepta el contrato de licencia.

  • Instale JDK y JRE.

  • Configure la variable de entorno como se muestra en la captura de pantalla a continuación.

Step 2- Descargue Android Studio desde el SDK de Android (llevará tiempo debido al tamaño del archivo).

  • Haga doble clic en el exe y ejecute el instalador.
  • Continúe con todas las opciones predeterminadas.
  • Establezca ANDROID_HOME.

Step 3- Descargue los archivos jar de Selenium y la aplicación de prueba de Selendroid

  • Descargue el archivo jar de selenio y la aplicación de prueba.
  • Colóquelo en cualquier carpeta, es decir, D: \ SelendroidJars.

Step 4 - Dispositivo físico con cable USB.

  • Asegúrese de que el dispositivo esté conectado a la estación de trabajo con un cable USB.

  • Asegúrese de que el modo de depuración USB (en configuración → Opciones de desarrollador) esté habilitado.

Probar una aplicación con Selendroid

Para probar una aplicación con Selendroid, siga los pasos que se indican a continuación:

Step 1 - Instala Eclipse.

Step 2 - Crea un proyecto Java.

Step 3 - Agregue el archivo jar de Selendroid descargado al proyecto recién creado.

Step 4 - Agregue los archivos jar de Selenium descargados al proyecto recién creado.

Step 5 - Configurar testNG en el Eclipse.

Step 6- Conecte los dispositivos móviles con el sistema mediante un cable USB. Configure el modo de depuración USB desde las opciones del desarrollador en la configuración.

Step 7- Ejecute el servidor Selendroid. Abra el símbolo del sistema y escriba el siguiente código y presione Enter -

java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk

Selendroid-standalone iniciará un servidor http en el puerto 4444 y escaneará todos los dispositivos virtuales Android (avd) que el usuario haya creado (~ / .android / avd /).

Abra el navegador web y navegue hasta: http://localhost:4444/wd/hub/status.

Step 8- Crear un proyecto Java; agregue las bibliotecas Selendroid Standalone, los tarros de Selenium y las bibliotecas JUnit en la ruta de compilación.

Step 9 - Crear paquete bajo el proyecto Java.

Step 10 - Cree una clase debajo del paquete y escriba el siguiente código.

package selTest;

import io.selendroid.SelendroidDriver; 
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;

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;

public class SelendroidTest {

   private WebDriver driver ;

   @BeforeSuite 
   public void setUp() throws Exception {
      SelendroidConfiguration config = new SelendroidConfiguration();
      config.addSupportedApp("selendroid-test-app-0.9.0.apk");
      SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
      selendroidServer.launchSelendroid();
	  
      SelendroidCapabilities caps = new
         SelendroidCapabilities("io.selendroid.testapp:0.9.0"); 
      driver = new SelendroidDriver(caps);
   }
   
   @Test 
   public void selendroidTest() throws Exception {
      WebElement inputField = driver.findElement(By.id("my_text_field"));
      Assert.assertEquals("true", inputField.getAttribute("enabled"));
      inputField.sendKeys("Selendroid");
      
      Assert.assertEquals("Selendroid", inputField.getText());
	  
      WebElement button = driver.findElement(By.id("buttonTest"));
      button.click();
	  
      button = driver.findElement(By.id("button2"));
      button.click();
      
      Thread.sleep(5000);
	  
      button = driver.findElement(By.id("startUserRegistration"));
      button.click();
      
      Thread.sleep(10000);
	  
      WebElement element = driver.findElement(By.id("label_username")); 
      
      String text = element.getText();
      System.out.println(text);
      element = driver.findElement(By.id("inputUsername"));
      element.sendKeys("bob");
      
      element = driver.findElement(By.id("inputEmail"));
      element.sendKeys("[email protected]"); 
      
      element = driver.findElement(By.id("inputPassword"));
      element.clear();
      element.sendKeys("test1233");
      
      element = driver.findElement(By.id("inputName"));
      element.clear(); 
      element.sendKeys("My Name ");
	  
      element = driver.findElement(By.id("input_preferedProgrammingLanguage")); 
      element.click();
      
      element = driver.findElement(By.id("text1"));
      element.click();
	  
      element = driver.findElement(By.id("input_adds"));
      element.click();
	  
      element = driver.findElement(By.id("btnRegisterUser"));
      element.click();
      
      element = driver.findElement(By.id("buttonRegisterUser"));
      element.click(); 
   }
   
   @AfterSuite 
   public void tearDown(){ 
      driver.quit(); 
   } 
}

Step 11 - Ejecutar la clase con la configuración de ejecución testNG.