Selendroid Tutorial para iniciantes com exemplo

Vocรช jรก desenvolveu um Android aplicaรงรฃo e publicรก-la em Google Jogar? O que vocรช farรก se receber uma avaliaรงรฃo de usuรกrio como esta?

Selendroid Tutorial

Ao publicar um aplicativo em Google Para jogar, รฉ essencial testar bem o aplicativo para evitar possรญveis erros. Existem inรบmeros cenรกrios de teste que devem ser executados antes de publicar um aplicativo. Para economizar tempo e dinheiro, รฉ importante garantir que ele esteja sempre pronto para uso. Testes esforรงo, vocรช precisa de uma ferramenta de teste. Uma das melhores ferramentas de teste para Android app รฉ Selendroid.

O que รฉ a Selendroid?

Selendroid รฉ uma estrutura de automaรงรฃo de teste para vรกrios tipos de aplicativos mรณveis: nativo e hรญbrido Android aplicativo e mรณvel teia.

O que รฉ a Selendroid

Vocรช pode escrever os testes usando o Selenium 2 APIs de cliente. Porque Selendroid ainda reutiliza o existente Selenium infraestrutura para a web

Selendroid รฉ uma ferramenta de teste poderosa. Pode ser usado em emuladores e real dispositivos

O que รฉ a Selendroid

Por que precisamos Selendroid?

Selendroid รฉ uma รณtima ferramenta de teste. Mas vocรช ainda pode duvidar de sua utilidade.

Por que precisamos Selendroid

Esta seรงรฃo apresentarรก os recursos importantes do Selendroid para responder ร  pergunta por que vocรช precisa Selendroid.

Por que precisamos Selendroid

  • Vocรช pode testar o aplicativo em teste usando Selendroid sem qualquer modificaรงรฃo do aplicativo. Vocรช sรณ precisa do arquivo binรกrio (APK) instalado no computador. Para instalar o arquivo binรกrio no dispositivo, o aplicativo de teste e o aplicativo mรณvel devem ser assinados com a mesma chave de sinal
  • Selendroid o aplicativo de teste pode interagir com vรกrios dispositivos ou simuladores simultaneamente. ร‰ uma grande vantagem de Selendroid. Assim, vocรช pode testar seu aplicativo com vรกrios Android dispositivos para verificar a compatibilidade.
  • Selendroid pode simular aรงรตes de usuรกrios humanos em um aplicativo, como tocar, deslizar, arrastar e soltar em dispositivos
  • Vocรช pode trocar os dispositivos de hardware (conectar e desconectar) durante o teste sem precisar reiniciar ou interromper o processo.ping o teste. Selendroid reconhece os novos dispositivos automaticamente
  • Correspondente a Android Versรฃo da API ativada, Selendroid tambรฉm suporta o novo Android API (da API 10 ร  API 19)
  • Selendroid tambรฉm possui alguma ferramenta de inspetor integrada para ajudรก-lo a identificar o elemento da interface do usuรกrio de um aplicativo em teste. Por exemplo, o botรฃo ID, campo de texto, visualizaรงรฃo de textoโ€ฆ

Selendroid Archiarquitetura

Selendroid baseia-se na Android estrutura de instrumentaรงรฃo. Selendroid os testes sรฃo escritos com base no Selenium API do cliente do driver da Web, portanto, suporta integraรงรฃo total com o atual Selenium estruturas.

A figura a seguir descreve a arquitetura de Selendroid

Selendroid Archiarquitetura

Selendroid contรฉm 4 componentes principais:

Selendroid Archiarquitetura

  • Cliente de driver da Web โ€“ O Java biblioteca cliente baseada em Selenium. Esta biblioteca deve ser instalada no computador (que รฉ utilizado para desenvolver os casos de teste)
  • Selendroid-Servidor โ€“ O servidor que roda no aplicativo em teste em Android dispositivo ou simulador. Estes sรฃo os principais componentes de um Selendroid arquitetura
  • Android Driver-App โ€“ Um integrado Android driver, aplicativo Web View para testar a web mรณvel.
  • Selendroid-Standalone โ€“ Este componente รฉ usado para instalar o Selendroid servidor e o aplicativo em teste (AUT)

Comeรงando com Selendroid

Vocรช jรก sabe a importรขncia do Selendroid. Agora vamos sujar as mรฃos com Selendroid.

Existem 3 etapas que devem ser executadas antes do primeiro teste com Selendroid

Comeรงando com Selendroid

Configurando um Selendroid meio Ambiente

Selendroid pode trabalhar na janela, Linux e Mac OS. Neste tutorial, iremos configurar Selendroid no sistema operacional Windows.

Antes de usar Selendroid, vocรช precisa instalar o seguinte pacote primeiro

  • Java SDK (mรญnimo 1.6)

    Vocรช deve aceitar o contrato de licenรงa e baixar o instalador java (escolha x64 ou x86 base em seu sistema operacional)

    Configurando um Selendroid Meio Ambiente

    Baixe e instale o Java SDK como software normal

  • รšltima versรฃo do Android SDK
  • Seu computador deve ter pelo menos um Android Dispositivo Virtual (AVD) ou um dispositivo real Android dispositivo conectado ao PC.
  • Selendroid Autรดnomo com dependรชncias, Selendroid Clientes e Selenium Clientes
  • Eclipse Programas
  • Configure JAVA_HOME e ANDROID_HOME

    Passo 1) Na janela, clique com o botรฃo direito em Computador -> Propriedades -> Configuraรงรฃo avanรงada do sistema

    Configurando um Selendroid Meio Ambiente

    Passo 2) Exibiรงรฃo da janela Propriedades do sistema, selecione a guia Avanรงado -> variรกveis โ€‹โ€‹ambientais

    Configurando um Selendroid Meio Ambiente

    Passo 3) A janela Ambiente รฉ exibida, clique em Novo -> Insira uma variรกvel ANDROID_HOME da seguinte forma

    Configurando um Selendroid Meio Ambiente

    O valor da variรกvel รฉ o caminho para o Android-sdks que vocรช jรก instalou.

    Encontre a variรกvel do sistema Path -> Editar -> Adicione a seguinte linha apรณs a linha atual

    Configurando um Selendroid Meio Ambiente

    Configurando um Selendroid Meio Ambiente

    Semelhante ao ANDROID_HOME, adicione uma nova variรกvel JAVA_HOME com o valor abaixo

    Configurando um Selendroid Meio Ambiente

    O valor รฉ o caminho para o seu Java Instalaรงรฃo do JDK

    Etapa 4) Reinicie o seu PC -> Pronto

Como lanรงar Selendroid

Etapa 1) Colocar um aplicativo em teste

Vocรช pode usar Selendroid teste o aplicativo para verificar como Selendroid trabalho (de vidrio para amostrar aplicativo em teste)

Assim que o download for concluรญdo, copie este APK e o acima Selendroid Jar independente arquivo para uma pasta com o nome โ€œGuru99 "

Etapa 2) Inicie o Selendroid

Abra o terminal em Windows e navegue atรฉ a pasta Guru99 criados na etapa 1.

Execute o seguinte comando

Lanรงamento Selendroid

A saรญda serรก exibida da seguinte forma

Lanรงamento Selendroid

Depois de executar este comando, Selendroid-servidor HTTP independente รฉ iniciado! O nรบmero da porta padrรฃo deste servidor รฉ 4444. Todos os dispositivos de hardware, bem como Android Dispositivo Virtual, serรก verificado e reconhecido automaticamente. Selendroid identificarรก o Android versรฃo de destino e tamanho da tela do dispositivo.

Para verificar o Android Para obter informaรงรตes sobre a versรฃo de destino e o dispositivo, vocรช pode executar o seguinte comando. URL em um navegador: http://localhost:4444/wd/hub/status.

Lanรงamento Selendroid

Selendroid comando bรกsico

Esta seรงรฃo apresenta alguns conceitos bรกsicos Selendroid-Linha de comando independente. Vocรช pode usรก-los para configurar o Selendroid ambiente de teste

  1. Configurando a porta de Selendroid

    A porta padrรฃo de Selendroid รฉ 4444. Mas vocรช pode mudar para outra porta adicionando um parรขmetro ao comando para iniciar Selendroid

    Parรขmetro: -porta [nรบmero da porta]

    Por exemplo:

    Selendroid Comando Bรกsico

    No comando acima, 5555 รฉ a nova porta.

Entรฃo o URL para verificar o Android a versรฃo de destino รฉ alterada para: http://localhost:5555/wd/hub/status

  1. Especifique a localizaรงรฃo do aplicativo em teste (arquivo APK binรกrio). Selendroid frequentemente exigia o caminho absoluto para este arquivo

    Parรขmetro: -app [caminho de arquivo]

    Por exemplo:

    Selendroid Comando Bรกsico

    No comando acima, o Selendroid Encontrar automaticamente o arquivo binรกrio com base em โ€œC:\GuruDigite โ€œ99App.apkโ€ para obter as informaรงรตes do aplicativo em teste.

    Verifique o URL http://localhost:4444/wd/hub/status, vocรช verรก esta informaรงรฃo

    Selendroid Comando Bรกsico

  2. Mude a porta Selendroid usa para se comunicar com o servidor de instrumentaรงรฃo. Selendroid usa a porta 8080 como padrรฃo

    Parรขmetro: -selendroidServerPort [nรบmero da porta]

    Exemplo

    Selendroid Comando Bรกsico

    A porta agora foi alterada para 9000

  3. Altere o tempo limite para iniciar emuladores. A unidade รฉ milissegundos.

    Parรขmetro: -timeoutEmulatorStart

    Por padrรฃo, o Selendroid esperarรก 300,000 milissegundos atรฉ que o emulador seja iniciado. Vocรช pode alterar para um novo tempo limite (200,000 ms) por comando

    Selendroid Comando Bรกsico

    Apรณs esse tempo, nosso expirado, se o emulador nรฃo puder iniciar, o Selendroid lanรงarรก o erro de exceรงรฃo (ocorreu um erro ao procurar dispositivos/emuladores.) e interromperรก a execuรงรฃo

  4. Quando vocรช comeรงa o Selendroid comando no terminal, vocรช verรก um log impresso na tela. Vocรช pode alterar o tipo de log que vรช adicionando o seguinte parรขmetro

    Parรขmetro: -logLevel [tipo de registro]

    Os valores de nรญvel de log sรฃo ERROR, WARNING, INFO, DEBUG e VERBOSE. Padrรฃo: ERRO.

    Por exemplo, defina Selendroid para imprimir apenas o log WARNING, vocรช pode usar este comando

    Selendroid Comando Bรกsico

    O Selendroid imprima apenas o log de AVISO

Comece seu primeiro teste com Selendroid

Esta seรงรฃo รฉ um guia passo a passo para criar seu primeiro script de teste usando Selendroid

Suponha que temos um Android aplicaรงรฃo sob nome de teste Guru99App. O aplicativo inclui um campo de texto e um botรฃo chamado โ€œMostrar Textoโ€.

BAIXE O APK AQUI

Primeiro teste com Selendroid

Precisamos executar o seguinte Caso de teste utilizando Selendroid

Casos de teste Condiรงรฃo Saรญda esperada
  1. Inicie o aplicativo
  2. Digite um texto โ€œGuruNUNCA testeโ€ para o campo de texto
  3. Pressione o botรฃo โ€œMostrar Textoโ€
O binรกrio da aplicaรงรฃo em teste estรก disponรญvel

Um dispositivo estรก conectado ao PC

O texto โ€œText Show hereโ€ รฉ alterado para o texto

qual usuรกrio insere em um campo de texto

Passo 1) Crie uma Java projeto em Eclipse

Passo 2) Adicione selรชnio e Selendroid arquivo jar em ambientes eclipse

Botรฃo direito do mouse GuruProjeto 99Test -> Caminho de construรงรฃo -> Adicionar externo Archives

Primeiro teste com Selendroid

Navegue atรฉ a pasta que armazenou os arquivos jar

Existem 3 arquivos jar que devem ser adicionados

  • selendroid-client-0.10.0.jar : Selendroid biblioteca cliente java
  • selendroid-standalone-0.11.0-com-dependรชncias : Selendroid biblioteca de servidor independente
  • selรชnio-java-2.40.0.jar : Selenium Biblioteca de drivers da Web

Selecionar todos -> Escolha Abrir para adicionar um arquivo jar ao projeto

Primeiro teste com Selendroid

Passo 3) apรณs adicionar a biblioteca acima, essas bibliotecas serรฃo adicionadas ร s Bibliotecas de Referรชncia do projeto de teste. Um testador pode usar as APIs dessas bibliotecas para desenvolver o programa de teste

Crie o pacote โ€œcom.guru.testโ€ e adicione o arquivo java โ€œGuru99Test.javaโ€, como abaixo

Botรฃo direito do mouse Guru99 teste -> New -> Pacote

Primeiro teste com Selendroid

Digite com.guru.test no campo Nome em Novo Java Caixa de diรกlogo Pacote ร  Concluir

Primeiro teste com Selendroid

O Eclipse criarรก listas de pastas e subpastas como esta na estrutura do cรณdigo-fonte

Primeiro teste com Selendroid

Passo 4) Instale TestNG pela Eclipse

In Eclipse, Ajuda -> Instale novo software, na caixa de diรกlogo Instalar, clique em Adicionar e digite o seguinte

pressione OK -> Prรณximo para instalar o TestNG

Primeiro teste com Selendroid

Passo 5) Copie o GuruCopie o arquivo 99App.apk para a pasta do aplicativo de teste.

Primeiro teste com Selendroid

Passo 6) Obtenha o ID de um aplicativo em teste.

Suponha que temos um nome de arquivo APK Guru99App.apk. Siga os passos descritos na seรงรฃo anterior e execute o comando no terminal.

Primeiro teste com Selendroid

Abra o seguinte link em um navegador: http://localhost:4444/wd/hub/status.

As informaรงรตes do dispositivo sรฃo exibidas, copie o valor appId โ€œcom.guru99app:1.0โ€

Primeiro teste com Selendroid

Passo 7) Abra o arquivo Guru99Test.java (no cรณdigo de exemplo) e altere conforme o seguinte

Primeiro teste com Selendroid

Para criar uma nova sessรฃo de teste com Selendroid, vocรช deve fornecer o ID do aplicativo no formato: com.guru99app:1.0. Este ID do aplicativo pode ser identificado na etapa 6. Se vocรช nรฃo definir o ID do aplicativo correspondente ao Android dispositivo, a sessรฃo de teste gerarรก um erro e nรฃo serรก iniciada.

Depois de inicializar o dispositivo encontrado, Selendroid cria um servidor selendroid personalizado e instala o Selendroid servidor nele

Selendroid tambรฉm instala o aplicativo em teste e inicia o servidor selendroid no dispositivo

Depois de inicializar a sessรฃo de teste com sucesso, o comando de teste comeรงa a ser executado em um dispositivo. (Como inserir texto, pressione o botรฃoโ€ฆ). Se o teste anexar a sessรฃo de teste, o emulador irรก parar automaticamente

Passo 8) Iniciar a nova sessรฃo de teste

Lanรงar o Selendroid servidor usando o seguinte comando no terminal como na etapa 6

Primeiro teste com Selendroid

Apรณs Selendroid Servidor iniciado, abra o projeto de teste de exemplo. Guru99test em Eclipse, defina um ponto de interrupรงรฃo na linha 77 do arquivo Guru99Test.java, clicando duas vezes na linha 77. -> Um ponto serรก exibido como abaixo

Primeiro teste com Selendroid

Inicie uma sessรฃo de teste clicando com o botรฃo direito do mouse. GuruProjeto 99Test -> Depurar como -> Teste Teste.

Uma sessรฃo de teste comeรงarรก como abaixo

Primeiro teste com Selendroid

Passo 9) Obtenha o ID do elemento GUI de um aplicativo em teste

Apรณs o inรญcio bem-sucedido da sessรฃo de teste, abra o navegador e navegue atรฉ o URL http://localhost:4444/inspector

Vocรช verรก que o aplicativo em teste foi iniciado como abaixo

Primeiro teste com Selendroid

Passe o mouse sobre cada elemento da UI do AUT (Button, TextField, Text Label), o ID de cada elemento serรก destacado no painel direito

Primeiro teste com Selendroid

Apรณs esta etapa, vocรช pode obter o ID de cada elemento da UI acima

  • Botรฃo Mostrar ID do texto: โ€œbtnMostrar"
  • ID do campo de texto: โ€œedtTexto"
  • ID do texto do rรณtulo: โ€œtxtVer"

Esses IDs serรฃo usados โ€‹โ€‹na prรณxima etapa

Passo 10) Entre no programa de teste como abaixo

Um programa de teste usando Selendroid inclui 3 seรงรตes

Teste de configuraรงรฃo:

A seguir estรก o cรณdigo para o teste de configuraรงรฃo, ele configurarรก a condiรงรฃo para uma sessรฃo de teste. Em caso de erro, o Selendroid lanรงarรก a exceรงรฃo e o aplicativo de teste serรก interrompido.

O cรณdigo inclui comentรกrios para explicar cada instruรงรฃo.

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);
					       
		    }
		

Executar teste

Abaixo estรก o cรณdigo para executar um teste. O cรณdigo inclui os comentรกrios

Aqui estรฃo as etapas do teste novamente

  1. Digite o texto โ€œOlรกโ€ Guru"
  2. Clique no botรฃo Mostrar texto
  3. Espere um pouco
  4. Verifique se o aplicativo exibe o texto conforme o usuรกrio o digita em um campo de texto (Ex.: Exibir o texto โ€œOlรกโ€). 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 teste

O cรณdigo a seguir concluirรก o teste interrompendo-o.ping da Selendroid motorista.

 /**
		     * Stop the Selendroid driver
		     * 
		     */
		    @AfterSuite
		    public
					void tearDown() {
					        driver.quit();
			    }

Vocรช pode ver os detalhes no cรณdigo de exemplo incluรญdo neste artigo.

Passo 10) Conecte-se Android dispositivo ao PC via cabo USB. Pontos a observar โ€“

  • Certifique-se de que o dispositivo nรฃo tenha nenhum bloqueio de tela configurado.
  • Os dispositivos devem ser conectados via USB ao computador no qual o componente selendroid-standalone estรก sendo executado.
  • O dispositivo deve instalar pelo menos Android Target Versรฃo API 10

Passo 11) Execute o aplicativo de teste: Clique com o botรฃo direito do mouse Guru99test -> Correr como -> TestNG teste

Primeiro teste com Selendroid

Passo 10) O script comeรงa a ser executado da seguinte forma

Primeiro teste com Selendroid

Passo 12) Apรณs o teste terminar a execuรงรฃo, TestNG gera automaticamente o relatรณrio de teste da seguinte forma

Primeiro teste com Selendroid

Primeiro teste com Selendroid

Bom trabalho, vocรช concluiu o teste agora.

Resumo

  • Selendroid รฉ uma ferramenta muito poderosa para testar Android aplicativo nativo, o aplicativo hรญbrido e tambรฉm o aplicativo da web.
  • Ele pode ser usado em dispositivos reais e tambรฉm no simulador.
  • Ele tambรฉm permite executar testes em paralelo, executando um teste em vรกrios dispositivos.
  • A totalidade Selendroid suรญte รฉ composta por quatro componentes:
    • Cliente de driver da Web,
    • Selendroid-Servidor,
    • Android Aplicativo de driver
    • Selendroid-estar sozinho
  • Para utilizar o Selendroid vocรช precisa Java JDK, Android SDK e Eclipse instalado.

Resuma esta postagem com: