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 é o Selendroid.
- O que é Selendroid?
- Por que precisamos do Selendroid?
- Arquitetura Selendroid
- Introdução ao Selendroid
- Configurando um ambiente Selendroid
- Como lançar o Selendroid
- Comando básico do Selendroid
- Comece seu primeiro teste com Selendroid
O que é Selendroid?
Selendroid é uma estrutura de automação de teste para vários tipos de aplicativo móvel: aplicativo Android nativo e híbrido e web móvel .
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 dispositivos reais
Por que precisamos do 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 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. Assim, 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 na 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 no Selenium. Esta biblioteca deve ser instalada no computador (que é usado para desenvolver os casos de teste)
- Selendroid-Server - O servidor que roda no aplicativo em teste no dispositivo ou simulador Android. Estes são os principais componentes de uma arquitetura Selendroid
- Android Driver-App - 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
- Versão mais recente do 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, Selendroid Client e Selenium Client
- Software Eclipse
- Configure o JAVA_HOME e o ANDROID_HOME
Etapa 1) Na janela, clique com o botão direito em Computador -> Propriedades -> Configuração avançada do sistema
Etapa 2) Exibição da janela Propriedades do sistema, selecione a guia Avançado -> Variáveis de ambiente
Etapa 3) A janela Ambiente será 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 a variável do sistema Caminho -> Editar -> Adicionar 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 seu PC -> Concluído
Como lançar o Selendroid
Etapa 1) Colocando um aplicativo em teste
Você pode usar o aplicativo de teste Selendroid existente para verificar se o Selendroid funciona (link para o aplicativo de amostra em teste)
Assim que o download for concluído, copie este APK e o arquivo jar Selendroid Standalone acima 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 como a seguir
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
- 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
- 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 do 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 a URL http: // localhost: 4444 / wd / hub / status, você verá esta informação
- 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âmetro: -selendroidServerPort [número da porta]
Exemplo
A porta agora foi alterada para 9000
- 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
- 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 denominado "Mostrar texto".
BAIXE O APK AQUI
Precisamos executar o seguinte caso de teste usando Selendroid
Casos de teste |
Doença |
Saída esperada: |
|
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 |
Etapa 1) Crie um projeto Java no Eclipse
Etapa 2) Adicionar selênio e arquivo jar Selendroid em ambientes eclipse
Clique com o botão direito em 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
Clique com o botão direito em Guru99Test -> 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
Etapa 4) Instale TestNG for Eclipse
No Eclipse, Help -> Install New Software, no Install Dialog, clique em Add e digite o seguinte
- Nome: TestNG
- Localização: http://selendroid.io/
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.guru99app: 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.guru99app: 1.0. Este ID de aplicativo pode ser identificado na etapa 6. Se você não definir o 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 automaticamenteEtapa 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 com o botão direito do mouse em Guru99Test project -> Debug As -> Testng Test.
Uma sessão de teste começará como abaixo
Etapa 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 é 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 usando Selendroid* Aplicativo em teste: Guru99App** /públicoclass Guru99Test {// Declare a variável do driver da webdriver WebDriver privado;/ *** Configure o ambiente antes de testar* @throws Exception* /@BeforeSuitepúblicovoid setUp () lança Exception {// Iniciar selendroid-standalone durante o testeSelendroidConfiguration config = new SelendroidConfiguration ();// Adicione o selendroid-test-app ao servidor autônomoconfig.addSupportedApp ("Guru99App.apk");// inicie o servidor autônomoSelendroidLauncher selendroidServer = novo SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Crie os recursos do selendroidSelendroidCapabilities capa = new SelendroidCapabilities ();// Especifique o uso do aplicativo de teste do selendroidcapa.setAut ("com.guru99app: 1.0");// Especifique o uso da API 19 do dispositivo Androidcapa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Não solicite simulador, use um dispositivo realcapa.setEmulator (false);//capa.wait(10000000);// Criar instância do driver Selendroiddriver = novo 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 "Hello Guru"
- Clique em Mostrar botão de 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 "Hello Guru")
/ *** Comece a executar o caso de teste* 01. Digite o texto "Selendroid" no campo de texto* 02. Pressione o botão OK* @throws Exception* /@Testepúblicovoid selendroidTest () lança Exception {// Imprime o logSystem.out.print ("Iniciar a execução do teste");// Encontre o campo de texto de entrada na tela// O id deste campo de texto foi obtido na etapa 9WebElement inputField = driver.findElement (By.id ("edtText"));// Verifique se o campo de texto está habilitado para que o usuário possa inserir o textoAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Insira um texto no campo de textoinputField.sendKeys ("Olá Guru");// clique no botão Mostrar texto// O id deste botão foi obtido na etapa 9Botão WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Atraso para entrar em vigorThread.sleep (5000);// Encontre o rótulo "Texto Mostrar Aqui" na tela// O id deste rótulo foi obtido na etapa 9WebElement txtView = driver.findElement (By.id ("txtView"));// Obtenha a exibição do texto na telaString esperada = txtView.getText ();// Verifique se o texto que o usuário insere no campo de texto é o mesmo que o texto exibido na telaAssert.assertEquals (esperado, inputField.getText ());}
Concluir teste
O código a seguir completará o teste parando o driver Selendroid.
/ *** Pare o driver Selendroid** /@AfterSuitepúblicovoid 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 em que o componente autônomo selendroid está sendo executado.
- 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 -> Executar como -> TestNG test
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, bem como 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 do driver da Web,
- Selendroid-Server,
- Aplicativo de driver Android
- Selendroid-stand alone
- Para usar o Selendroid, você precisa do Java JDK, Android SDK e Eclipse instalados.