Selendroid Tutorial para iniciantes com exemplo
Você já desenvolveu um Android aplicativo e publicá-lo no Google Play? O que você fará se receber 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. Existem vários cenários de teste que devem ser executados antes de publicar um aplicativo. Para salvar o Ensaios esforço, você precisa de uma ferramenta de teste. Uma das melhores ferramentas de teste para Android app é Selendroid.
O que é o 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 alterar os dispositivos de hardware (conectar e desconectar) durante o teste sem reiniciar ou interromper 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 Cliente e Selenium Cliente
- 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 (Ligação 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 criada 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 versão de destino, bem como as informações do dispositivo, você pode iniciar o seguinte 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.
Portanto, 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 encontre 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 - 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
A 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 aplicativo com o nome de teste Guru99App. O aplicativo inclui um campo de texto e um botão com o nome “Mostrar Texto”.
Precisamos executar o seguinte Caso de teste utilização 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
Clique com o botão direito em Projeto Guru99Test -> 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
Clique com o botão direito Guru99Test -> Novo -> Pacote
Digite com.guru.test no campo Nome em Novo Java Caixa de diálogo Pacote à Concluir
A Eclipse criará listas de pastas e subpastas como esta na estrutura do código-fonte
Passo 4) Instale TestNG for 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 Guru99App.apk para a pasta do aplicativo de teste
Passo 6) Obtenha o ID de um aplicativo em teste.
Suponha que temos um arquivo APK chamado Guru99App.apk. Siga o passo 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.guru99app:1.0”
Passo 7) Abra o arquivo Guru99Test.java (no código de exemplo) 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.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 amostra Guru99test em 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 -> 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 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 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 insere em um campo de texto (por exemplo, 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 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 em 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.