Android - Teste
A estrutura do Android inclui uma estrutura de teste integrada que ajuda a testar todos os aspectos de seu aplicativo e as ferramentas SDK incluem ferramentas para configurar e executar aplicativos de teste. Esteja você trabalhando no Eclipse com ADT ou trabalhando na linha de comando, as ferramentas do SDK o ajudam a configurar e executar seus testes em um emulador ou dispositivo de destino.
Estrutura de Teste
As ferramentas de construção e teste do Android assumem que os projetos de teste são organizados em uma estrutura padrão de testes, classes de casos de teste, pacotes de teste e projetos de teste.
Ferramentas de teste no Android
Existem muitas ferramentas que podem ser usadas para testar aplicativos Android. Alguns são oficiais como Junit, Monkey e alguns são ferramentas de terceiros que podem ser usadas para testar aplicativos Android. Neste capítulo, vamos explicar essas duas ferramentas para testar aplicativos Android.
- JUnit
- Monkey
JUnit
Você pode usar o JUnit TestCaseclasse para fazer testes de unidade em uma classe que não chama APIs Android. TestCase também é a classe base para AndroidTestCase, que você pode usar para testar objetos dependentes do Android. Além de fornecer a estrutura JUnit, o AndroidTestCase oferece métodos específicos de configuração, desmontagem e ajuda do Android.
Para usar TestCase, estenda sua classe com a classe TestCase e implemente uma chamada de método setUp (). Sua sintaxe é fornecida abaixo -
public class MathTest extends TestCase {
protected double fValue1;
protected double fValue2;
protected void setUp() {
fValue1= 2.0;
fValue2= 3.0;
}
}
Para cada teste, implemente um método que interaja com o aparelho. Verifique os resultados esperados com as asserções especificadas chamando assertTrue (String, boolean) com um booleano.
public void testAdd() {
double result= fValue1 + fValue2;
assertTrue(result == 5.0);
}
Os métodos assert comparam os valores que você espera de um teste com os resultados reais e lançam uma exceção se a comparação falhar.
Assim que os métodos forem definidos, você pode executá-los. Sua sintaxe é fornecida abaixo -
TestCase test= new MathTest("testAdd");
test.run();
Macaco
O UI / Application Exerciser Monkey, geralmente chamado de "monkey", é uma ferramenta de linha de comando que envia fluxos pseudoaleatórios de teclas, toques e gestos para um dispositivo. Você o executa com a ferramenta Android Debug Bridge (adb).
Você pode usá-lo para testar a carga de seu aplicativo e relatar os erros encontrados. Você pode repetir um fluxo de eventos executando a ferramenta a cada vez com a mesma semente de número aleatório.
Características do macaco
O Monkey tem muitos recursos, mas tudo pode ser resumido nessas quatro categorias.
- Opções básicas de configuração
- Restrições operacionais
- Tipos e frequências de eventos
- Opções de depuração
Uso do macaco
Para usar o monkey, abra um prompt de comando e navegue até o seguinte diretório.
android ->sdk ->platform-tools
Uma vez dentro do diretório, conecte seu dispositivo ao PC e execute o seguinte comando.
adb shell monkey -p your.package.name -v 500
Este comando pode ser dividido nessas etapas.
- adb - Android Debug Bridge. Uma ferramenta usada para conectar e enviar comandos para o seu telefone Android a partir de um desktop ou laptop.
- shell - shell é apenas uma interface no dispositivo que traduz nossos comandos em comandos do sistema.
- macaco - o macaco é a ferramenta de teste.
- v - v significa método detalhado.
- 500- é o conut de frequência ou o número de eventos a serem enviados para teste.
Isso também é mostrado na figura -
No comando acima, você executa a ferramenta monkey no aplicativo de IU do Android padrão. Agora, para executá-lo em seu aplicativo, aqui está o que você deve fazer.
finalmente você obterá o acabamento conforme mostrado abaixo
Isso também foi mostrado na figura abaixo. Ao digitar este comando, você está gerando 500 eventos aleatórios para teste.
Exemplo
O exemplo a seguir demonstra o uso de teste. Ele cria um aplicativo básico que pode ser usado para o macaco.
Para experimentar este exemplo, você precisa executá-lo em um dispositivo real e, em seguida, seguir as etapas do macaco explicadas no início.
Passos | Descrição |
---|---|
1 | Você usará o Android Studio para criar um aplicativo Android em um pacote com.tutorialspoint.myapplication. |
2 | Modifique o arquivo src / MainActivity.java para adicionar o código de atividade. |
3 | Modifique o arquivo XML layouta res / layout / activity_main.xml e adicione qualquer componente GUI, se necessário. |
4 | Crie o arquivo src / second.java para adicionar o código de atividade. |
5 | Modifique o arquivo XML de layout res / layout / view.xml e adicione qualquer componente GUI, se necessário. |
6 | Execute o aplicativo e escolha um dispositivo Android em execução, instale o aplicativo nele e verifique os resultados. |
Aqui está o conteúdo de MainActivity.java.
package com.tutorialspoint.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
}
public void button(View v){
Intent in =new Intent(MainActivity.this,second.class);
startActivity(in);
}
}
Aqui está o conteúdo de second.java.
package com.tutorialspoint.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class second extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
Button b1=(Button)findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(second.this,"Thanks",Toast.LENGTH_SHORT).show();
}
});
}
}
Aqui está o conteúdo de activity_main.xml.
No código abaixo abc indica o logotipo de tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UI Animator Viewer"
android:id="@+id/textView"
android:textSize="25sp"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView2"
android:layout_below="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:textColor="#ff36ff15"
android:textIsSelectable="false"
android:textSize="35dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="button"
android:id="@+id/button"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp" />
</RelativeLayout>
Aqui está o conteúdo de view.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button"
android:id="@+id/button2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point "
android:id="@+id/textView3"
android:textColor="#ff3aff22"
android:textSize="35dp"
android:layout_above="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginBottom="90dp" />
</RelativeLayout>
Aqui está o conteúdo de Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
Aqui está o conteúdo de AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tutorialspoint.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".second"></activity>
</application>
</manifest>
Vamos tentar executar seu aplicativo de teste do Android. Presumo que você tenha conectado o seu dispositivo Android Mobile real ao computador. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. Antes de iniciar seu aplicativo, o Android Studio exibirá a janela a seguir para selecionar uma opção onde você deseja executar seu aplicativo Android.
Selecione seu dispositivo móvel como uma opção e, em seguida, verifique seu dispositivo móvel, que exibirá a tela do aplicativo. Agora, basta seguir as etapas mencionadas na parte superior da seção do macaco para realizar o teste neste aplicativo.