BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates
19/08/2017 - 9:21 AM

Primeiros contatos com o script automatizado

Olá,

Tudo bem? No post anterior, desta série de Automação de Testes Funcionais em Aplicativos Móveis com foco em iOS, demonstrei o equivalente ao “Hello World” dos testes automatizados em aplicativos móveis.

Agora, vamos nos aprofundar um pouco mais no script e escrever um pouquinho de código para melhorar a estrutura do script gerado na gravação anterior. Fiz um vídeo para ilustrar e complemento com a linha de raciocínio segue escrita mais abaixo, caso você prefira ler.

Automação de Testes em Aplicativos iOS

Na tela do Instruments, no painel esquerdo inferior, é onde fica o editor de código. É lá que vamos passar boa parte do nosso tempo enquanto fazemos a automação de testes em aplicativos iOS.

Analisando o script gerado, percebemos que é JavaScript. Simples assim: JavaScript.

De cara, dá para reparar que algumas instruções possuem uma “setinha” ao lado. Isto indica que existe mais de uma maneira de fazer a referência ao controle e o Instruments escolheu aquela que pareceu mais adequada. Se você quiser, pode mudar.

Ao clicar na “setinha”, você encontra as opções disponíveis. Isto também é bom para você conhecer as diversas formas de chamada dos controles na tela.

Exemplos de diversas formas de referenciar elementos na tela

Outra coisa que você logo nota é a repetição deselegante de instruções no código. Então, uma forma imediata de melhorar esse código é criar variáveis para os elementos e referenciar essas variáveis ao longo do script.

Assim:

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
var tableView = window.tableViews()[0];
....
tableView.tapWithOptions({tapOffset:{x:0.54,y:0.24}});
var navBar = app.navigationBar();
navBar.leftButton().tap();

Por último, vale cultivar o hábito de colocar mensagens de log no script, através do objeto UIALogger, para fazer uma trilha da execução do script que pode ajudar em atividades de depuração (debug).

A tendência é que os logs tenham relação com as etapas dos cenários de testes que estão sendo automatizados.

Neste caso, coloquei algumas mensagens de log como esta abaixo apenas para exemplificar.

UIALogger.logMessage("Menu Pages");

Compare agora o código original (gerado pela gravação de tela do Instruments) …

var target = UIATarget.localTarget();
target.frontMostApp().mainWindow().tableViews()[0].tapWithOptions({tapOffset:{x:0.54, y:0.24}});
target.frontMostApp().navigationBar().leftButton().tap();
target.frontMostApp().mainWindow().tableViews()[0].tapWithOptions({tapOffset:{x:0.48, y:0.48}});
target.frontMostApp().navigationBar().leftButton().tap();
target.frontMostApp().mainWindow().tableViews()[0].tapWithOptions({tapOffset:{x:0.30, y:0.55}});
target.frontMostApp().navigationBar().leftButton().tap();
target.frontMostApp().mainWindow().tableViews()[0].tapWithOptions({tapOffset:{x:0.46, y:0.64}});
target.frontMostApp().navigationBar().leftButton().tap();
target.frontMostApp().mainWindow().tableViews()[0].tapWithOptions({tapOffset:{x:0.17, y:0.84}});
target.frontMostApp().navigationBar().leftButton().tap();

… e o código mais “organizado”:

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
var tableView = window.tableViews()[0];
UIALogger.logMessage("Menu Stats");
tableView.tapWithOptions({tapOffset:{x:0.54,y:0.24}});
var navBar = app.navigationBar();
navBar.leftButton().tap();
UIALogger.logMessage("Menu Blog Posts");
tableView.tapWithOptions({tapOffset:{x:0.48,y:0.48}});
navBar = app.navigationBar();
navBar.leftButton().tap();
UIALogger.logMessage("Menu Pages");
tableView.tapWithOptions({tapOffset:{x:0.30,y:0.55}});
navBar = app.navigationBar();
navBar.leftButton().tap();
UIALogger.logMessage("Menu Comments");
tableView.tapWithOptions({tapOffset:{x:0.46,y:0.64}});
navBar = app.navigationBar();
navBar.leftButton().tap();
UIALogger.logMessage("Menu Settings");
tableView.tapWithOptions({tapOffset:{x:0.17,y:0.84}});
navBar = app.navigationBar();
navBar.leftButton().tap();

Claro que o código ainda poderia ser refatorado novamente para melhorar mais um pouco, entretanto, com essas mudanças, já atingimos o objetivo que era se familiarizar com o editor dos scripts de testes automatizados para aplicativos iOS.

Espero que você tenha gostado. Por favor, deixe seus comentários mais abaixo. Até a próxima!

Abraços,
Autor deste artigo: Fabrício Fujikawa
Fonte: http://testedesoftware.com/automacao-de-testes-em-aplicativos/522

Sobre Luiz Lohn

Luiz Lohn
Mobile QA Engineer, trabalha há mais de 4 anos com qualidade e teste de software. Atualmente na SocialBase trabalha com automação e testes manuais de Aplicativos Móveis. Fundador do site QUATEST e coordenador do GUTS-SC

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *