Teste Móvel - Estrutura Robotium

Robotium é uma estrutura de teste de código aberto para escrever casos de teste de caixa cinza automática para aplicativos Android. Com o suporte do Robotium, os desenvolvedores de casos de teste podem escrever cenários de teste de função, sistema e aceitação, abrangendo várias atividades Android.

Robotium pode ser usado para testar aplicativos onde o código-fonte está disponível e aplicativos onde apenas o arquivo APK está disponível.

Benefícios do Robotium

  • Fácil de escrever, código mais curto. Tempo mínimo necessário para escrever casos de teste sólidos.

  • Você pode desenvolver casos de teste poderosos, com conhecimento mínimo do aplicativo em teste.

  • A estrutura lida com várias atividades Android automaticamente. A legibilidade dos casos de teste é muito melhorada, em comparação com os testes de instrumentação padrão.

  • Cronometragem e atrasos automáticos.

  • Segue automaticamente a atividade atual.

  • Encontra automaticamente visualizações.

  • Toma automaticamente suas próprias decisões (por exemplo: quando rolar, etc.)

  • Nenhuma modificação na plataforma Android.

  • A execução do teste é rápida.

  • Os casos de teste são mais robustos devido à vinculação do tempo de execução aos componentes da GUI.

  • Integra-se perfeitamente com Maven ou Ant.

Desvantagens do Robotium

  • Robotium não pode lidar com componentes Flash ou da Web.

  • Ele lida com apenas um aplicativo por vez.

  • Ele não pode simular o clique no teclado virtual usando Robotium (é necessário usar 'enterText ()' para inserir texto em um campo EditText)

  • Robotium não pode interagir com as notificações da barra de status - ou seja, puxar para baixo a área de notificação e clicar em uma notificação especificada.

  • Pode ser um pouco lento, especialmente em dispositivos mais antigos.

Como usar o Robotium

Step 1- O pré-requisito para usar o Robotium é o Java SDK (mínimo 1.6). Se você não tiver o Java instalado em seu sistema, siga as etapas abaixo.

  • Baixe JDK e JRE da Oracle Technology Network

  • Aceite o contrato de licença.

  • Instale o JDK e o JRE.

  • Defina a variável de ambiente conforme mostrado na captura de tela abaixo.

Step 2- Baixe o Android Studio a partir do Android Studio

  • Clique duas vezes no exe e execute o instalador.
  • Continue com todas as opções padrão.
  • Defina o ANDROID_HOME.

Step 3 - Instale imagens e ferramentas Android.

  • Clique em SDK Manager -
  • Selecione o pacote necessário. Por exemplo, se estamos construindo um aplicativo para Android 4.4.2, certifique-se de que os seguintes pacotes estejam marcados na seção Ferramentas -

    • Android SDK Tools rev 22.6.3
    • Ferramentas da plataforma Android rev 19.0.1
    • Ferramentas de construção do Android SDK rev 19.1

Step 4 - Crie dispositivos virtuais Android.

  • Abra o Android Studio e clique em AVD Manager na barra de ferramentas. AVDs nos permitem testar e executar nossos aplicativos Android.
  • Use as seguintes configurações para um AVD Nexus5 -

    • Dispositivo - Nexus 5 (4,95, 1080 x 1920; xxhdpi)
    • Destino - APIs x86 do Google (Google Inc.) - API de nível 19
    • (Certifique-se de selecionar o destino com APIs do Google no nome.)
    • CPU - Intel Atom (x86)
    • Marque a caixa para Usar GPU Host
    • Clique OK
  • Agora você deve ver o AVD que criou no AVD Manager, onde pode iniciá-lo, excluí-lo ou criar outro!

Step 5- Arquivo Jar do Robotium Baixe o arquivo Jar do Robotium da RobotiumTech

Teste um aplicativo com Robotium

Para testar um aplicativo com Robotium, siga as etapas abaixo -

Step 1 - Crie um projeto de teste no Android Studio denominado “RobotiumTest”.

Escolha todas as opções padrão até chegar à página principal.

Step 2 - Copie o arquivo jar Robotium para a pasta Lib do projeto.

Step 3 - Adicione a dependência no arquivo build.gradle em src pasta.

androidTestCompile 'com.jayway.android.robotium: robotium-solo-5.5.3'

Step 4 - Sincronize o Gradle.

Step 5 - Crie a classe de teste da seguinte maneira -

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

Step 6- Salve todas as alterações. Certifique-se de que não haja erros.

Step 7- Agora, execute o caso de teste. Se o caso de teste for bem-sucedido, você deverá ver a seguinte saída!