Post on 11-Oct-2015
description
AUTOMAO
Monkey
Objetivo
Estudo de testes android utilizando a ferramenta Monkey.
Descrio Segundo a documentao oficial, o
Monkey um programa que roda sobre um emulador ou dispositivo fsico e gera fluxos pseudo-aleatrios de eventos do usurio como cliques, toques ou gestos. Pode-se usar o Monkey para testes de estresse na aplicao, conforme o nmero de repeties dos testes.
FuncionamentoPara realizar os testes com o Monkey basta instalar a ADB na estao de trabalho (sudo apt-get install android-tools-adb) e rodar o Monkey com o comando 'adb shell monkey -p com.your.package.application -v 500'. Caso no saiba o pacote da aplicao basta procurar nas configuraes do app.
FuncionamentoPacote da aplicao:
Exemplo
Exemplo de execuo do Monkey para o aplicativo Gmail: adb shell monkey -p com.google.android.gm -v 8000
AUTOMAO
MonkeyRunner
Objetivo
Estudo de testes android utilizando a ferramenta MonkeyRunner.
Descrio Diferentemente do Monkey, o MonkeyRunner pode realizar
testes customizados na aplicao; Segundo a documentao oficial "A ferramenta
MonkeyRunner prov uma API para escrita de programas que controlam um dispositivo ou emulador Android de fora do cdigo Android.
Com o MonkeyRunner, pode-se escrever um script Python que instala e executa uma aplicao android;
Atravs desta ferramenta pode-se enviar comandos de toques, cliques e gestos para o dispositivo android;
O MonkeyRunner tambm realiza screenshots das interfaces de usurio e armazena as imagens na estao de trabalho.
Descrio
Resumindo, o MonkeyRunner se assemelha ao Monkey. Porm, o fluxo e entradas no so pseudo-aleatrios, mas definidos pelo desenvolvedor.
Funcionamento Para realizar os testes deve-se importar o MonkeyRunner fornecido pela SDK do Android, para path do S.O. O MonkeyRunner esta localizado em "/sdk/tools/monkeyrunner".
A sintaxe para execuo dos scripts monkeyrunner script.py.
Segundo a documentao, o MonkeyRunner contm 3 classes principais: MonkeyDevice; MonkeyRunner; MonkeyImage.
Funcionamento MonkeyDevice:
Esta classe representa o dispositivo conectado, por ela que se realiza os eventos como touch e press (tocar na tela), drag (arrastar a tela), e at mesmo a funo startActivity() para inicializar o aplicativo.
MonkeyRunner: A classe MonkeyRunner realiza algumas funes
como alert() e sleep(). Porm, a principal funcionalidade da classe a captura da conexo com o dispositivo ou emulador atravs do mtodo waitForConnection().
MonkeyImage: Esta classe basicamente realiza as screenshots e as
armazena em determinados diretrios na estao de trabalho.
Funcionamento
Executa-se
script.py pelo
console
O Script conecta-
se ao device
Instala a apk
no device
Executa os comandos de toques e gestos no device
Salvo as screenshot
s dos resultados na estao
Fluxo do MonkeyRunner:
Exemplo Para exemplificar, foi realizado um pequeno teste no aplicativo
ponto-android. Primeiramente o script insere um ponto e edita outro, ento
deslisa para a lista de pontos e realiza a screenshot da mesma, salvando o arquivo em "./screenshots/listPoints/'arquivo'.png".
Ainda na tela de lista de pontos o programa segue adicionando uma nova data para insero e edio de pontos. Este processo realizado 10 vezes.
O script realiza tratamento de excees, ou seja quando houver erro, a classe MonkeyImage realiza screenshot e salva em "./screenshots/errors/'arquivo'.png";
Aps estes testes, o programa segue testando a exportao dos pontos, tanto para o formato .CSV quanto .JSON;
Ao final, o script toca nos backs do device testando o histrico, at sair da aplicao.
RESULTADOS OBTIDOS Estudo e testes aleatrios com
Monkey realizados com sucesso. Estudo e testes de estresse com
Monkey realizados com sucesso. Estudo e testes com fluxo pre-definido
com MonkeyRunner realizados com sucesso.
No encontrados erros ou no conformidades no aplicativo ponto-android.
CONSIDERAES Monkey
Monkey uma tima e simples ferramenta da ADB para testes de estresse e aleatrios na aplicao.
MonkeyRunner Atravs do MonkeyRunner pode-se criar fluxos de
testes predefinidos para a aplicao, automatizando casos de testes.
Projetos Futuros Aprofundamento na utilizao da ferramenta
MonkeyRunner. Pesquisa e testes de/em outras plataformas como
Robotium, Robolectric, LessPainful e Espresso.
Obrigado.
Emanuel Victor de Oliveira Fonseca emanuel.fonseca@itai.org.br
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17