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

AUTOMAÇÃO DE TESTES MOBILE COM APPIUM – PARTE 2

Seguindo a séria de Automação de Testes Mobile com Appium vou apresentar como enviar um testes automatizado para um dispositivo Android. Neste artigo ainda não efetuaremos testes em um dispositivo (passos e resultados esperados), mas iremos validar e internalizar o conceito do DesiredCapabilities (Capacidades), além de configurar o que é necessário para a execução de teste

Introdução

Configurando o ambiente

A configuração do ambiente (executada apenas uma vez na sua máquina) é extremamente importante para que seja possível enviar nossos testes automatizados para um dispositivo. A configuração consiste em:

  • Instalação e configuração do Java no path do sistema operacional
  • Instalação, configuração e atualização do Android SDK
  • Instalação do Appium Server (Appium.exe)
  • Baixar as bibliotecas corretas
  • Projeto inicial com as bibliotecas associadas a este

Estes passos são de extrema importância. Para não deixar este artigo muito longo, siga todos os passos de acordo com o link abaixo, que possui um conjunto de vídeos que ensinam a fazer estas configurações passo-a-passo

http://eliasnogueira.com/appium/pre_condicoes/basi…

Código inicial

Atenção: para conseguir escrever o código inicial é necessário ter executado todas as pré-condições do item acima.

O código inicial, que é o foco deste artigo, é composto sempre por três partes:

  • Definição da aplicação alvo dos testes (DesiredCapabilities)
  • Definição da plataforma, dispositivo e outras configurações (DesiredCapabilities)
  • Inicialização da aplicação sob determinada condição (AndroidDriver)

O código final, escrito passo-a-passo pode ser visualizado abaixo. Note que os comandos estão sendo auto completados através da tecla de atalho CRTL + Espaço no Eclipse IDE.

Parte 1

Há duas formas de definir a aplicação sob testes:

  1. Instalando a app em cada execução (fresh install)
  2. Utilizar a aplicação previamente instalada

Neste artigo utilizaremos a primeira opção (fresh install).

A abordagem do código traz um objeto tipo File chamado diretorioAplicacao que é o caminho onde estará o arquivo .apk
Em seguida criamos um objeto do tipo File chamado arquivoAplicacao que é a composição do diretório da aplicação mais o nome do arquivo com a extensão .apk.

File diretorioAplicacao = new File("C:\\app\triangulo");
File arquivoAplicacao = new File(diretorioAplicacao, "TrianguloApp.apk");

Parte 2

A classe DesiredCapabilities é a responsável por dar determinadas capacidades à plataforma alvo de execução, por isso instanciamos ela (new) para a utilização através do nomecapacidade.

Para informar uma capacidade é necessário utilizar o método setCapability que é uma mapa de chave/valor, por isso possui dois parâmetros:

  • Primeiro parâmetro: tipo de capacidade
  • Segundo parâmetro: valor da capacidade

No tipo de capacidade utilizamos a classe MobileCapabilityType, que é uma classe de suporte onde possui a série da capacidades para todas as plataformas e para o servidor. Para conhecer todas as capacidades do servidor (que estamos usando no código, clique aqui.

Para os valores da capacidade, para o tipo PLATAFORM_NAME, utilizamos a classe MobilePlatform para informar a plataforma. Esta classe já possui todas as plataformas suportadas via código pelo Appium.
Na capacidade DEVICE_NAME, estamos informando como valor que executaremos o teste em um emulador.
Na capacidade APP estamos informando o caminho absoluto para o arquivo.

DesiredCapabilities capacidade = new DesiredCapabilities();capacidade.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);<br>capacidade.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");<br>capacidade.setCapability(MobileCapabilityType.APP, arquivoAplicacao.getAbsolutePath());

Parte 3

Para abrir uma conexão com o dispositivo utilizamos a classe AndroidDriver que, além de abrir a aplicação, vai nos prover uma série de comandos para a interação com os componentes de tela.

Devemos informar para a classe AndroidDriver dois parâmetros:

  • A URL do servidor do Appium.
  • As capacidades (app, plataforma e demais configurações), que nada mais é que o DesiredCapabilities

Neste exemplo, como iremos executar o teste localmente (na nossa máquina) a URL é o localhost (127.0.0.1) mais a porta de comunicação do servidor do Appium (4723) mais o contexto do servidor para que ele gerencie em qual dispositivo executar dado uma determinada capacidade (/wd/hub).

AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capacidade);

Ajustes

Para executar este exemplo é necessário:

  • Criar uma pasta no C:\ chamada app e, dentro dela, uma pasta chamada triangulo, ou modificar a propriedade diretorioApp para uma pasta de sua escolha
  • Fazer o download da aplicação de exemplo TrianguloApp através deste link e colocá-la na pasta app/triangulo, ou na pasta de sua escolha

Execução

Parte 1

É necessário iniciar o servidor do Appium. Para isso abra o Appium no diretório de instalação clicando duas vezes sobre o arquivo Appium.exe. Assim que o Appium abrir, clique no botão de inicio do servidor.

Na tela do Appium será exibido informações sobre a inicialização do servidor.

Parte 2

Com um emulador Android já iniciado, basta ir até o Eclipse IDE e selecionar o menu Run/Run ou através do ícone Run.

Note que a aplicação TrianguloApp será aberta no emulador.

Atenção: no meu código de exemplo na imagem acima o diretórioAplicacao não possui o C:\\, isso porque eu estou executando em um MAC neste exemplo 😉

Considerações finais

Neste artigo aprendemos como iniciar o automação de testes com o Appium de forma prática. Ainda não executamos um teste propriamente dito, com passos e validação dos resultados esperados, mas este ponto é fundamental para aprendermos como iniciar o teste de forma correta.

 

Autor: Elias Nogueira (elias.nogueira@qualister.com.br)

Possui MBA em Teste de Software e a certificação internacional de teste de software CSTE – Certified Software Tester, oferecida pela QAI Brasil. Trabalhou em projetos de engenharia de teste de qualidade de dados (Data Mining, Data Cleasing, Data Profiling, Noisy text analysis) e Georeferenciamento (Marketing de Precisão). É especialista em automação de testes em ferramentas open source e soluções da HP (QTP, LoadRunner, Quality Center). Tem larga experiência em testes em metodologias ágeis e testes manuais e automatizados em aplicativos mobile (Android e iOS). Na Qualister é responsável pela execução de consultoria e treinamentos.

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 *