Tutorial do Selendroid para iniciantes com exemplo

Você já desenvolveu um aplicativo Android e o publicou no Google Play? O que você fará se obtiver uma avaliação de usuário como -

Quando você publica um aplicativo no Google Play, ele deve ser bem testado para evitar possíveis bugs. Há muitos cenários de teste que devem ser executados antes de publicar um aplicativo. Para economizar o esforço de teste, você precisa de uma ferramenta de teste. Uma das melhores ferramentas de teste para aplicativos Android é Selendroid.

O que é Selendroid?

Selendroid é uma estrutura de automação de teste para vários tipos de aplicativos móveis: nativo e híbrido Aplicativo Android e Móvel Rede.

Você pode escrever os testes usando as APIs do cliente Selenium 2. Porque o Selendroid ainda reutiliza a infraestrutura existente do Selenium para a web

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

Por que precisamos do Selendroid?

Selendroid é uma ótima ferramenta de teste. Mas você ainda pode duvidar de sua utilidade.

Esta seção irá apresentar os recursos importantes do Selendroid para responder à pergunta por que você precisa do 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
  • O aplicativo de teste Selendroid pode interagir com vários dispositivos ou simuladores simultaneamente. É uma grande vantagem do Selendroid. Portanto, você pode testar seu aplicativo com vários dispositivos Android para verificar a compatibilidade.
  • Selendroid pode simular ações de usuário humano em um aplicativo, como tocar, deslizar, arrastar e soltar em dispositivos
  • Você pode alterar os dispositivos de hardware (conectar e desconectar) durante o teste sem reiniciar ou interromper o teste. Selendroid reconhece os novos dispositivos automaticamente
  • Correspondendo à versão da API do Android, Selendroid também suporta a nova API do Android (da API 10 à API 19)
  • O Selendroid também possui uma ferramenta de inspeção integrada para ajudá-lo a identificar o elemento de interface do usuário de um aplicativo em teste. Por exemplo, o botão ID, campo de texto, visualização de texto ...

Arquitetura Selendroid

Selendroid é baseado no Estrutura de instrumentação Android . Os testes Selendroid são escritos com base na API do cliente do driver da Web Selenium, portanto, ele oferece suporte à integração total com as estruturas Selenium atuais.

A figura a seguir descreve a arquitetura do Selendroid

Selendroid contém 4 componentes principais:

  • Cliente de driver da web - A biblioteca cliente Java baseada em Selenium. Esta biblioteca deve ser instalada no computador (que é usado para desenvolver os casos de teste)
  • Selendroid-Server - O servidor que funciona está no aplicativo em teste no dispositivo Android ou simulador. Estes são os principais componentes de uma arquitetura Selendroid
  • Driver-App Android - Um driver Android integrado, aplicativo Web View para testar a web móvel.
  • Selendroid-Standalone - Este componente é usado para instalar o servidor Selendroid e o aplicativo em teste (AUT)

Introdução ao Selendroid

Você já sabe a importância do Selendroid. Agora vamos sujar as mãos com o Selendroid.

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

Configurando um ambiente Selendroid

Selendroid pode funcionar em Windows, Linux e Mac OS. Neste tutorial, vamos configurar o Selendroid no Windows OS.

Antes de usar o 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)

    Baixe e instale o Java SDK como software normal

  • Última versão de Android SDK
  • Seu computador deve ter pelo menos um Android Virtual Device (AVD) ou um dispositivo Android real conectado ao PC.
  • Selendroid autônomo com dependências , Cliente Selendroid , e Cliente Selenium
  • Eclipse Programas
  • Configure o JAVA_HOME e o ANDROID_HOME

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

    Passo 2) Exibição da janela Propriedades do sistema, selecione a guia Avançado -> variáveis ​​ambientais

    Etapa 3) A janela Ambiente é exibida, clique em Novo -> Insira uma variável ANDROID_HOME conforme a seguir

    O valor da variável é o caminho para android-sdks que você já instalou.

    Encontre o caminho da variável do sistema -> Editar -> Adicione a seguinte linha após a linha atual

    Semelhante a ANDROID_HOME, adicione uma nova variável JAVA_HOME com o valor abaixo

    O valor é o caminho para a instalação do Java JDK

    Etapa 4) Reinicie o seu PC -> Feito

Como iniciar o Selendroid

Etapa 1) Colocando um aplicativo em teste

Você pode usar o aplicativo de teste Selendroid existente para verificar se o Selendroid funciona ( Ligação para amostra de aplicativo em teste)

Assim que o download for concluído, copie este APK e o acima Jar autônomo do Selendroid arquivo para uma pasta com o nome ' Guru99 '

Etapa 2) Inicie o Selendroid

Abra o terminal no Windows e navegue até a pasta Guru99 criada na etapa 1.

Execute o seguinte comando

A saída será exibida da seguinte forma

Depois de executar este comando, o servidor HTTP autônomo do Selendroid é iniciado! O número da porta padrão deste servidor é 4444. Todos os dispositivos de hardware, bem como o Android Virtual Device, serão verificados e reconhecidos automaticamente. O Selendroid identificará a versão de destino do Android e o tamanho da tela do dispositivo.

Para verificar a versão de destino do Android, bem como as informações do dispositivo, você pode iniciar o seguinte URL em um navegador:

http: // localhost: 4444 / wd / hub / status .

Comando básico do Selendroid

Esta seção apresenta algumas linhas de comando básicas do Selendroid-Standalone. Você pode usá-los para configurar o ambiente de teste Selendroid

  1. Configurando a porta do Selendroid

    A porta padrão do Selendroid é 4444. Mas você pode mudar para outra porta adicionando um parâmetro ao comando para iniciar o Selendroid

    Parâmetro: -port [número da porta]

    Por exemplo:

    No comando acima, 5555 é a nova porta.

Portanto, o URL para verificar a versão de destino do Android é alterado para: http: // localhost: 5555 / wd / hub / status

  1. Especifique a localização do aplicativo em teste (arquivo Binary APK). O Selendroid geralmente exigia o caminho absoluto para este arquivo

    Parâmetro: -app [caminho de arquivo]

    Por exemplo:

    No comando acima, o Selendroid encontra automaticamente o arquivo binário baseado em 'C: Guru99App.apk' para obter as informações do aplicativo em teste.

    Verifique o URL http: // localhost: 4444 / wd / hub / status , você verá esta informação

  2. Altere a porta que o Selendroid usa para se comunicar com o servidor de instrumentação. Selendroid usa a porta 8080 como padrão

    Parâmetros: -selendroidServerPort [número da porta]

    Exemplo

    A porta agora foi alterada para 9000

  3. Altere o tempo limite para iniciar os emuladores. A unidade é milissegundos.

    Parâmetro: -timeoutEmulatorStart

    Por padrão, o Selendroid aguardará 300.000 milissegundos até que o emulador seja iniciado. Você pode mudar para um novo tempo limite (200.000 ms) por comando

    Após este tempo nosso expirou, se o emulador não puder iniciar, o Selendroid irá lançar o erro de exceção (erro ocorreu ao procurar dispositivos / emuladores.) E então parará de funcionar

  4. Ao iniciar o comando Selendroid no terminal, você verá um log impresso na tela. Você pode alterar o tipo de registro que vê adicionando o seguinte parâmetro

    Parâmetro: -logLevel [ tipo de log ]

    Os valores do nível de registro são ERROR, WARNING, INFO, DEBUG e VERBOSE. Padrão: ERROR.

    Por exemplo, defina Selendroid para imprimir apenas o log de AVISO, você pode usar este comando

    O Selendroid apenas imprime 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 aplicativo Android com o nome de teste Guru99App. O aplicativo inclui um campo de texto e um botão com o nome 'Mostrar texto'.

BAIXE O APK AQUI

Precisamos executar o seguinte Caso de teste usando Selendroid

Casos de teste

Doença

Saída esperada:

  1. Inicie o aplicativo
  2. Insira um texto ' Teste Guru99 'para o campo de texto
  3. Pressione o botão 'Mostrar texto'

O binário do aplicativo em teste está disponível

Um dispositivo está conectado ao PC

O texto 'Texto Mostrar aqui' é alterado para o texto

qual usuário insere em um campo de texto

Passo 1) Crie um projeto Java no Eclipse

Passo 2) Adicionar selênio e arquivo jar Selendroid em ambientes eclipse

Clique com o botão direito do mouse no Projeto Guru99Test -> Caminho de construção -> Adicionar Arquivos Externos

Navegue até a pasta que armazenou os arquivos jar

Existem 3 arquivos jar devem ser adicionados

  • selendroid-client-0.10.0.jar: biblioteca cliente Selendroid java
  • selendroid-standalone-0.11.0-with-dependencies: biblioteca do servidor autônomo Selendroid
  • selenium-java-2.40.0.jar: biblioteca do Selenium Web Driver

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

Etapa 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

Guru99Test com o botão direito -> Novo -> Pacote

Digite com.guru.test no campo Nome na caixa de diálogo Novo pacote Java à Concluir

O Eclipse criará listas de pastas e subpastas como esta na estrutura do código-fonte

Passo 4) Instalar TestNG para Eclipse


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

pressione OK -> Avançar para instalar o TestNG

Etapa 5) Copie o Guru99App.apk para a pasta do aplicativo de teste

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

Suponha que temos um arquivo APK chamado Guru99App.apk. Siga o passo que é descrito na seção anterior, execute o comando no terminal

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.on2vhfapp: 1.0'

Etapa 7) Abra o arquivo Guru99Test.java (no código de amostra) e altere conforme a seguir

Para criar uma nova sessão de teste com Selendroid, você deve fornecer o ID do aplicativo no formato: com.on2vhfapp:1.0 . Esta ID de aplicativo pode ser identificada na etapa 6. Se você não definir a ID de aplicativo correspondente ao dispositivo Android, a sessão de teste gerará um erro e não será iniciada.

Depois de inicializar o dispositivo encontrado, o Selendroid cria um servidor selendroid personalizado e instala o servidor Selendroid 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, a execução do comando de teste é iniciada em um dispositivo. (Como inserir texto, pressione o botão ...). Se o teste anexar a sessão de teste, o emulador irá parar automaticamente

Etapa 8) Inicie a nova sessão de teste

Inicie o servidor Selendroid usando o seguinte comando no terminal, como na etapa 6

Depois que o Selendroid Server foi iniciado, abra o projeto de teste de amostra Guru99test no Eclipse, defina um ponto de interrupção na linha 77 no arquivo Guru99Test.java clicando duas vezes na linha 77 -> Um ponto será exibido como abaixo

Inicie uma sessão de teste clicando com o botão direito no projeto Guru99Test -> Depurar como -> Testng Teste.

Uma sessão de teste começará como abaixo

Etapa 9) Obtenha a ID do elemento GUI de um aplicativo em teste

Após o início da sessão de teste com sucesso, abra o navegador e navegue até o URL http: // localhost: 4444 / inspector

Você verá que o aplicativo em teste é iniciado como abaixo

Passe o mouse sobre cada elemento da interface do AUT (botão, campo de texto, rótulo de texto), o ID de cada elemento será destacado no painel direito

Após esta etapa, você pode obter o ID de cada elemento da IU acima

  • Botão Mostrar ID do Texto: ' btnShow '
  • ID do campo de texto: ' edtText '
  • ID do texto do rótulo: ' txtView '

Esses IDs serão usados ​​na próxima etapa

Etapa 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 os comentários para explicar cada uma das afirmações.

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.on2vhfapp: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 'Hello Guru'
  2. Clique em Mostrar botão de texto
  3. Espere um pouco
  4. Verifique se o aplicativo exibe o texto conforme o usuário insere em um campo de texto (por exemplo, exibir o texto 'Hello 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()); } 

Concluir teste

O código a seguir completará o teste parando o driver Selendroid.

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

Você pode ver os detalhes no código de amostra incluído neste artigo.

Etapa 10) Conecte o dispositivo Android ao PC via cabo USB. Pontos a observar -

  • Certifique-se de que o dispositivo não tenha um bloqueio de tela configurado.
  • Os dispositivos devem ser conectados via USB ao computador que o autônomo selendroid componente está em execução.
  • O dispositivo deve instalar pelo menos Android Target Version API 10

Etapa 11) Execute o aplicativo de teste: clique com o botão direito em Guru99test -> Correr como -> Teste TestNG

Etapa 10) O início do script é executado da seguinte forma

Etapa 12) Depois que o teste termina a execução, o TestNG gera automaticamente o relatório de teste conforme a seguir

Bom trabalho, você concluiu o teste agora.

Resumo

Resumo

  • Selendroid é uma ferramenta muito poderosa para testar o aplicativo nativo Android, o aplicativo híbrido, bem como o aplicativo da web.
  • Ele pode ser usado em dispositivos reais e também no simulador.
  • Ele também permite que você execute testes em paralelo, executando um teste em vários dispositivos.
  • Todo o pacote Selendroid é composto por quatro componentes:
    • Cliente de driver da Web,
    • servidor selendroid,
    • Android Driver App
    • Selendroid-stand alone
  • Para usar o Selendroid, você precisa do Java JDK, Android SDK e Eclipse instalados.