Blog > Automação de Testes Mobile com Appium - Parte 1

26/jul

Neste post iremos aprender sobre a ferramenta Appium para automação de teste para dispositivos móveis. A primeira parte traz aspectos básicos, mas totalmente necessários para qualquer um que deseja iniciar a automação com esta ferramenta.

Introdução

Você já imaginou ter uma ferramenta que você possa automatizar para Android, iOS e FirefoxOS em diferentes linguagens e ainda aproveitar seu conhecimento de Selenium WebDriver?
Pois imagine! Essa ferramenta chama-se Appium - http://appium.io

O foco dos exemplos que virão ao logo dos posts serão desenvolvidos para plataforma Android.

O que é o Appium

Appium é uma ferramenta Open Souce e multi-plataforma para automação de aplicações nativas, híbridas e sites mobile para os principais sistemas operacionais do mercado: Android, iOS (e agora para FirefoxOS).

Tipos de aplicações

  • Nativa: são aquelas desenvolvidas especificamente com os SDK's do Android e iOS, sendo este aplicativo específico para cada plataforma
  • Híbrida: é uma aplicação mobile que é encapsulada em um componente da plataforma para ser exibida. A aplicação em si é instalada para a plataforma (Android ou iOS), mas o conteúdo de ambas é igual. A aplicação é desenvolvida em HTML5, CSS3 e Javascript
  • Site Mobile: são aquelas que acessamos via um browser web através de uma URL

Design

O Appium utiliza os próprios frameworks de teste de cada plataforma. Isso nos traz uma facilidade na escrita de código e a necessidade de não compilar com uma biblioteca específica ou não depender de nenhuma outra biblioteca.

Para isso, Appium utiliza:

A utilização do UIAutomation (iOS) e UIAutomator (Android) é excelente, pois utiliza a biblioteca de testes nativas para cada plataforma, expondo métodos de utilização de forma mais fácil de desenvolver e entender.

Mas Elias, me dá um exemplo...

Olhe a imagem abaixo com exemplo da utilização da biblioteca do UIAutomator (Android) para preencher um campo de texto

Agora olhe a imagem abaixo com exemplo da utilização do Appium para preencher um campo de texto

Viu como o Appium é mais simples? E "por baixo dos panos" ele faz a mesma coisa que o UIAutomator (Android), mas fazendo com que você escreva poucas linhas.

Conceitos

A parte mais importante antes de começar a desenvolver scripts para Android, iOS ou FirefoxOS.

São cinco partes essenciais para o entendimento e utilização do Appium.

Arquitetura Cliente/Servidor

Appium é um servidor web que expõe uma API REST. Ele recebe conexões de um cliente (comandos de uma linguagem de programação), interpreta os comandos recebidos e executa estes comandos no aplicativo móvel (ou site mobile). Ao final uma resposta HTTP é recebida representando o resultado da execução do comando.

Essa arquitetura cliente/servidor nos possibilita:

  • Escrever um script de teste em qualquer linguagem suportada
  • Ter uma máquina com o servidor separada da máquina de execução dos testes
  • Executar os scripts de teste em dispositivos na nuvem

Capacidades (Desired Capabilities)

São um conjunto de chave/valor que são enviados ao Appium Server para informar qual tipo de sessão desejamos iniciar. Ex: uma execução Android em um app nativo com versão 5.0.1 (Lollipop).

Existe uma gama de capacidades. Alguma podemos dizer que efetuam "filtros" (como plataforma, versão da plataforma, etc...) outros de configuração (localidade, orientação, etc...).

É através do Desired Capabilities que informamos em qual dispositivo queremos executar, e quais as configurações iniciais.

Appium Server (servidor)

É o servidor que faz a ligação entre o Appium Client e o dispositivo móvel. Ele é escrito em Node.js, mas tem aplicativos nativos para Windows e Mac. Sempre que desejamos executar testes precisamos iniciar o servidor, diretamente pelo Node.Js por linha de comando ou pelos aplicativos nativos de cada sistema operacional.

Appium Client (cliente)

São as linguagens de programação suportadas pelo Appium (e são muitas). A lista completa de linguagens (bem como suas bibliotecas) podem ser visualizadas neste link.

Sessão

Como o Appuim é um servidor toda a comunicação com o dispositivo é realizada através de uma sessão. O cliente inicializa uma sessão com o servidor via POST / session com um objeto JSON chamado Desired Capabilities. Quando a sessão é criada um ID é atribuido a ela para realizar o envio dos comandos para o dispositivo apropriado.

Considerações finais

Este post visa apresentar os conceitos básicos do Appium, extremamente importantes antes de iniciar qualquer script de automação com ele. Em breve teremos outros pontos para configurar antes de começar a utilizar

POSTS RELACIONADOS

Workshop Gratuito de Appium (Online)

Automatize os testes mobile de suas aplicações mobile Android usando Appium.

AGENDA

CURSOS RELACIONADOS