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?
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.
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
Por que precisamos Selendroid?
Selendroid รฉ uma รณtima ferramenta de teste. Mas vocรช ainda pode duvidar de sua utilidade.
Esta seรงรฃo apresentarรก os recursos importantes do Selendroid para responder ร pergunta por que vocรช precisa 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 contรฉm 4 componentes principais:
- 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
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)
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
Passo 2) Exibiรงรฃo da janela Propriedades do sistema, selecione a guia Avanรงado -> variรกveis โโambientais
Passo 3) A janela Ambiente รฉ exibida, clique em Novo -> Insira uma variรกvel ANDROID_HOME da seguinte forma
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
Semelhante ao ANDROID_HOME, adicione uma nova variรกvel JAVA_HOME com o valor abaixo
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
A saรญda serรก exibida da seguinte forma
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.
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
- 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:
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
- 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:
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 - 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
A porta agora foi alterada para 9000
- 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
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
- 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
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โ.
Precisamos executar o seguinte Caso de teste utilizando Selendroid
| Casos de teste | Condiรงรฃo | Saรญda esperada |
|---|---|---|
|
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
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
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
Digite com.guru.test no campo Nome em Novo Java Caixa de diรกlogo Pacote ร Concluir
O Eclipse criarรก listas de pastas e subpastas como esta na estrutura do cรณdigo-fonte
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
- Nome: TestNG
- Localizaรงรฃo: https://github.com/selendroid/selendroid
pressione OK -> Prรณximo para instalar o TestNG
Passo 5) Copie o GuruCopie o arquivo 99App.apk para a pasta do aplicativo de teste.
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.
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โ
Passo 7) Abra o arquivo Guru99Test.java (no cรณdigo de exemplo) e altere conforme o seguinte
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
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
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
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
Passe o mouse sobre cada elemento da UI do AUT (Button, TextField, Text Label), o ID de cada elemento serรก destacado no painel direito
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
- Digite o texto โOlรกโ Guru"
- Clique no botรฃo Mostrar texto
- Espere um pouco
- 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
Passo 10) O script comeรงa a ser executado da seguinte forma
Passo 12) Apรณs o teste terminar a execuรงรฃo, TestNG gera automaticamente o relatรณrio de teste da seguinte forma
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.


































