Arquitetura Appium para teste de aplicativos móveis
Publicados: 2020-06-26Índice
Visão geral do Appium
Appium é uma ferramenta/framework de teste de aplicativo móvel gratuito que fornece automação para aplicativos móveis iOS e Android. Appium é uma arquitetura cliente-servidor que aceita código de teste escrito em Java, Python, Ruby, JavaScript, etc.
Em sua essência, o Appium é um servidor web escrito na linguagem de programação Node.js que cria sessões iOS e Android usando o protocolo JSON wire.
Appium Server executa as seguintes ações
- Recebe uma conexão do cliente na forma de um objeto JSON sobre HTTP
- Iniciar uma sessão e, em seguida, retornar o ID da sessão
- Escuta os comandos emitidos
- Executa esses comandos em um dispositivo móvel
- Responde com uma resposta HTTP
Fonte
Conceitos-chave do Appium
Antes de nos aprofundarmos na arquitetura Appium , vamos primeiro entender os principais conceitos associados à arquitetura Appium .
Cliente Appium
O cliente Appium é um código de script automatizado escrito em qualquer linguagem com a qual você se sinta confortável (como PHP, Java , Phyton, etc.). O cliente Appium contém os detalhes de configuração do dispositivo móvel e do aplicativo junto com a lógica/código para executar os casos de teste.
Servidor Appium
O servidor Appium é um servidor HTTP escrito na linguagem de programação Node.js que recebe solicitações de conexão e comando do cliente Appium em formato JSON e executa esses comandos em um dispositivo móvel. O Appium Server é iniciado antes de invocar o código de automação.

O servidor interage com as plataformas iOS e Android e cria uma sessão para interagir com os dispositivos finais de aplicativos móveis.
Leia: As 20 principais ideias e tópicos de projetos Android em alta para iniciantes
Dispositivo final
O dispositivo final é principalmente um dispositivo móvel em tempo real ou um emulador. Os scripts automatizados são executados no dispositivo final pelo servidor Appium pelos comandos do cliente.
Protocolo de fio JSON
Na arquitetura Appium, o protocolo JSON wire é um mecanismo de transporte usado para estabelecer a comunicação entre o cliente Appium e o servidor Appium. Este protocolo controla o comportamento de diferentes dispositivos móveis em uma sessão. É um conjunto de endpoints pré-definidos expostos via API RESTful. Por exemplo, se um cliente deseja enviar dados para um servidor, o cliente os converte em um objeto JSON e os envia por push para o servidor. O servidor então analisa o objeto JSON recebido e o converte de volta nos dados para uso.

Arquitetura Appium
Vamos agora entender a arquitetura Appium .
Conforme mencionado acima, o servidor Appium é um servidor HTTP que lê as solicitações HTTP das bibliotecas do cliente em um formato JSON e envia essas solicitações para a plataforma apropriada. O servidor Appium reconhece essas solicitações e cria uma sessão de automação com o dispositivo final correspondente. Depois que a sessão é criada, o servidor Appium inicia a execução dos casos de teste no dispositivo final.
O servidor Appium trata as solicitações de forma diferente para iOS e Android, dependendo da plataforma em que está sendo executado. As seções a seguir explicarão como o Appium executa comandos de maneira diferente nessas plataformas.
Appium trabalhando em um dispositivo iOS
Em um dispositivo iOS, o Appium usa a API UIAutomation (biblioteca JavaScript fornecida pela Apple Company) para se conectar aos elementos da interface do usuário do aplicativo.
A figura da arquitetura Appium iOS acima descreve a arquitetura Appium para automação iOS. Vamos decodificar a figura da arquitetura iOS Appium passo a passo:
- O cliente Appium se comunica com o servidor Appium usando o protocolo JSON wire e envia o comando em formato JSON para o servidor.
- O servidor então estabelece uma conexão com o cliente e encaminha a solicitação para o ICS (Instruments Command Server). O servidor Appium também envia um arquivo bootstrap.js para o dispositivo iOS. O ICC (cliente de comando de instrumentos) pega o comando e o executa no arquivo bootstrap.js dentro do ambiente do dispositivo iOS.
- Uma vez concluída a operação acima, os detalhes do log do comando executado são enviados de volta ao servidor pelo cliente.
Appium trabalhando em um dispositivo Android
Em um dispositivo Android, o Appium usaria a estrutura UIAutomator desenvolvida pelos desenvolvedores do Android para interagir com os elementos da interface do usuário do aplicativo. O UI Automator é uma estrutura usada para testar a interface do usuário.

A figura da arquitetura Appium Android acima descreve a arquitetura Appium para automação Android. As figuras acima substituem bootstrap.js por bootstarp.jar.
Aprenda: Android SDK: um tutorial detalhado para iniciantes
Vamos decodificar a figura da arquitetura Android Appium passo a passo
- O cliente Appium se comunica com o servidor Appium usando o protocolo JSON wire e envia o comando em formato JSON para o servidor.
- O servidor Appium estabelece uma conexão com o cliente e encaminha a solicitação para o ICS UiAutomator Controller. O servidor Appium também envia um arquivo bootstrap.jar para o dispositivo Android. Comando UiAutomator o cliente então pega o comando e o executa no arquivo bootstrap.jar dentro do ambiente do dispositivo Android.
- Após a conclusão da operação acima, os detalhes do log do comando executado são enviados de volta ao servidor Appium pelo cliente.
Leia também: Desenvolvedor Full-Stack vs Android: qual você deve escolher
Conclusão
Appium é, sem dúvida, uma das plataformas mais populares para testes de aplicativos móveis. De longe, você aprendeu sobre a visão geral da arquitetura do Appium , fluxo de trabalho e funcionamento do Appium nas plataformas iOS e Android.
Se você estiver interessado em aprender mais sobre desenvolvimento de software full-stack, confira o PG Diploma in Full-stack Software Development do upGrad & IIIT-B, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.