Teste de celular - Selendroid Framework

Selendroid é uma estrutura de automação de teste para testar aplicativos Android nativos e híbridos. Os testes Selendroid são escritos usando a API do cliente Selenium Webdriver.

Benefícios do Selendroid

  • Totalmente compatível com JSON Wire Protocol / Selenium 3 Ready.

  • Nenhuma modificação do aplicativo em teste é necessária para automatizá-lo.

  • Testando a web móvel usando o aplicativo de visualização da web do driver Android integrado.

  • Mesmo conceito para automatizar aplicativos nativos ou híbridos.

  • Os elementos da IU podem ser encontrados por diferentes tipos de localizadores.

  • Gestos são suportados: API de interações avançadas do usuário.

  • Os emuladores existentes são iniciados automaticamente.

  • Selendroid suporta conexão automática de dispositivos de hardware.

  • Integração total como um nó no Selenium Grid para escalonamento e teste paralelo.

  • Suporte a múltiplos APIs de destino Android (10 a 19).

  • Construído no Inspector para simplificar o desenvolvimento de casos de teste.

  • Selendroid pode ser estendido em tempo de execução com suas próprias extensões.

  • Selendroid pode interagir com vários dispositivos Android (emuladores ou dispositivos de hardware) ao mesmo tempo.

Desvantagens do Selendroid

A desvantagem dessa ferramenta é que ela é bastante lenta e, em algumas máquinas com menos de 4 GB de RAM, é inutilizável.

Como usar o Selendroid

Step 1- O pré-requisito para usar o Robotium é o Java SDK (mínimo 1.6). Se você não tiver o Java instalado em seu sistema, siga as etapas abaixo.

  • Baixe JDK e JRE do Oracle JavaSE

  • Aceite o contrato de licença.

  • Instale o JDK e o JRE.

  • Defina a variável de ambiente conforme mostrado na captura de tela abaixo.

Step 2- Baixe o Android Studio do SDK Android (isso levará algum tempo devido ao tamanho do arquivo).

  • Clique duas vezes no exe e execute o instalador.
  • Continue com todas as opções padrão.
  • Defina o ANDROID_HOME.

Step 3- Baixe os arquivos jar do Selenium e teste o aplicativo do Selendroid

  • Baixe o arquivo jar de selênio e teste o aplicativo.
  • Coloque-o em qualquer pasta, ou seja, D: \ SelendroidJars.

Step 4 - Dispositivo físico com cabo USB.

  • Certifique-se de que o dispositivo esteja conectado à estação de trabalho com o cabo USB.

  • Certifique-se de que o modo de depuração USB (em configurações → Opções do desenvolvedor) esteja ativado.

Teste um aplicativo com Selendroid

Para testar um aplicativo usando Selendroid, siga as etapas abaixo -

Step 1 - Instale o Eclipse.

Step 2 - Crie um projeto Java.

Step 3 - Adicione o arquivo jar Selendroid baixado ao projeto recém-criado.

Step 4 - Adicione os arquivos jar do Selenium baixados ao projeto recém-criado.

Step 5 - Configure testNG no Eclipse.

Step 6- Conecte os dispositivos móveis com o sistema usando o cabo USB. Defina o modo de depuração USB nas opções do desenvolvedor em configurações.

Step 7- Execute o servidor Selendroid. Abra o prompt de comando e escreva o seguinte código e pressione Enter -

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

O Selendroid-standalone iniciará um servidor http na porta 4444 e fará a varredura de todos os dispositivos virtuais Android (avd) que o usuário criou (~ / .android / avd /).

Abra o navegador da web e navegue até: http://localhost:4444/wd/hub/status.

Step 8- Criar um projeto Java; adicione bibliotecas autônomas Selendroid, jars Selenium e bibliotecas JUnit no caminho de construção.

Step 9 - Crie um pacote no projeto Java.

Step 10 - Crie uma classe no pacote e escreva o código a seguir.

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 - Execute a classe com a configuração de execução testNG.