Appium: automação para apps mobile

Parte I

Bruno Carvalho
assert(QA)
6 min readJun 5, 2018

--

Antes de iniciar, tenho uma novidade pra vocês: teremos uma série de artigos contando um pouco sobre o Appium.

O objetivo dessa série é despertar a curiosidade em testes automatizados de software mobile.

Neste artigo, apresentaremos o Appium que é uma framework de testes automatizados mobile.

De onde viemos, para onde vamos?

Dan Cuellar era gerente de desenvolvimento de testes na Zoosk, quando ele encontrou o seguinte problema: a produtividade dos testes em iOS estava muito abaixo do esperado, o que impactava diretamente na quantidade de entregas de software.

A primeira opção para sanar esse problema seria criar poucos cenários de testes, porém ela acarretaria em riscos na entrega final do produto. A segunda opção, escolhida por Dan, foi automatizar os testes. Porém, ele estava bastante insatisfeito com as ferramentas ofertadas na época, tanto pela falta de recursos quanto pela limitação de uso de uma única linguagem de programação.

Em 2012, Dan criou numa nova ferramenta de automação de testes (em conjunto com outros desenvolvedores e empresas), surgindo assim o Appium, uma ferramenta open-source de automação de testes. Desde então, a ferramenta vem sendo aprimorada a partir da contribuição de voluntários e empresas que se organizam através da comunidade e também da realização de diversas conferências.

O que é o Appium?

Nada mais é do que uma ferramenta open-source, multi-plataforma para automação de testes de aplicações nativas, híbridas e com suporte a simuladores e execução em aparelhos reais para plataformas iOS e Android. Com ela é possível automatizar testes mobile independente da linguagem de programação utilizada. Podemos implementar nossos scripts com Ruby, Java, Node.js, PHP, C#, Clojure e Perl.

Pré-requisitos, o que eu preciso instalar?

Para o exemplo que vamos simular neste artigo, é necessário instalar as seguintes aplicações:

  • JDK(Java Development Kit)
  • Appium Server Desktop
  • Android Studio

Vamos usar o Android Studio como um simulador de aplicação para executarmos o nosso exemplo.

Segue os links abaixo de instalação das aplicações citadas acima:

Iniciando o servidor Appium

Até aqui tudo certo pra vocês? Podemos iniciar a aplicação do Appium Desktop Server:

Aplicação do Appium

Podemos iniciar o serviço do Appium através do botão na aplicação Start Server v1.7.1.

#DICA, sempre se preocupe com a porta que o Appium está utilizando e se tem algum serviço dele rodando para não dar conflito.

Ah legal, após iniciarmos o Appium Desktop Server, podemos executar os nossos testes.

Inspecionando os elementos no aplicativo

Antes de iniciarmos inspecionando os elementos no aplicativo, precisamos obter algumas informações do Desired Capabilities.

O que é o Desired Capabilities?

É um conjunto de chaves e valores em um objeto JSON, enviados do Appium Cliente para o Appium Servidor, quando uma nova automação é requerida. Basicamente o Appium trabalha com a arquitetura Cliente-Servidor.

Desired Capabilities

O que significa cada valor na imagem acima?

{

  • “deviceName”: “NomedoCelular ou qualquer nome, por boa prática identificamos com o nome do celular”.
  • “platformName”: “Android ou iOS, plataforma utilizada”.
  • app” : “Caminho do seu aplicativo na automação”.
  • appPackage” : “Pacote do Java que você deseja rodar no Android ”.
  • appActivity” : “Nome da atividade que você deseja iniciar a partir do pacote do Android”.
  • “newCommandTimeout”:“O tempo de espera do Appium dos comandos executados”.

}

Como obter as informações dos valores vistos na imagem acima?

deviceName: verificar qual o nome do seu celular, seja ele simulador de aplicação ou um smartphone.

platformName: qual a plataforma que vou usar na minha automação.

app: qual é o caminho do seu app na automação.

newCommandTimeout : depende quanto tempo o usuário deseja de espera dos comandos.

appPackage e appActivity: devemos seguir os seguintes passos para obter essas informações.

Certificar-se que tem um simulador ou um smartphone rodando ?

Simulador do Android Studio

Vamos adicionar o comando (adb devices) no terminal:

comando adb devices

Se tiver algum device rodando depois do comando executado acima, poderemos seguir para o próximo passo.

Vamos adicionar o comando (adb shell) no terminal:

comando adb shell

Iremos adicionar o comando no terminal (dumpsys window windows | grep -E ‘mCurrentFocus’):

comando para localizar o appPackage e appActivity

Após adicionar o comando acima, podemos ver que na imagem em vermelho que localizamos o AppPackage e o AppActivity, o primeiro em vermelho é o AppPackage e o segundo é o AppActivity, com todas essas informações que comentamos acima, podemos adicionar essas informações no Desired Capabilities.

Primeiro, para inspecionar os elementos do seu aplicativo vamos acessar a aplicação do Appium, e clicar na aba File e na aba New Session Window, temos que adicionar o Desired Capabilities, no canto inferior da aplicação do Appium no JSON Representation, clicando no botão Edit Raw, você pode adicionar as informações do Desired Capabilities, ou através dos campos com os respectivos valores na aplicação do Appium, veja a imagem abaixo:

Aplicação do Appium

Após adicionarmos essas informações, podemos clicar na aba Desired Capabilities e no botão Start Session, lembrando que devemos ter um simulador do Android Studio rodando, conforme veremos nas imagens abaixo:

Aplicação do Appium
Aplicação do Appium

Através da imagens acima, podemos ver os botões Tap, Send Keys e Clear, nessas funções podemos testar os elementos do aplicativo antes de automatizá-las, com o Tap podemos clicar no elemento, o Send Keys envia informações para um TextBox e o Clear apaga informações de um TextBox no aplicativo.

Fique por dentro, do que vem por aí

Neste artigo abordamos alguns passos de como instalar o Appium, como inspecionar os elementos no aplicativo.

Caso, você queira se aprofundar mais nessa framework, acesse o site do Appium, e verifique a documentação oficial da framework:

No meu GitHub, acesse o projeto com todos os passos da instalação de ambiente no README.md:

--

--

Bruno Carvalho
assert(QA)

QA Dev | Interested in Software Development | Music | NFL Fan