Última atualização em 12 de maio de 2020 — Continuous Testing Expert

 

O Appium é uma solução baseada em serviço projetada para simplificar o processo de dimensionamento de testes de aplicativos para uma ampla variedade de dispositivos e ambientes, em um esforço para manter software seguro. O Appium atua como um servidor virtual que envia comandos para frameworks nativos do dispositivo para que ações e scripts de teste sejam tratados de forma autônoma e em escala.

O Appium não apenas coordena testes em milhares (ou dezenas de milhares) de dispositivos reais ou virtualizados, mas também envia dados de volta para o repositório desejado. O mais desejável é que o Appium seja de código aberto! Isso significa que não é apenas 100% gratuito, mas também pode ser personalizado ou integrado para se adequar ao caso de uso desejado.

Digital.ai Continuous Testing aproveita o Appium, entre outras tecnologias, para testar aplicativos rapidamente em uma grande variedade de dispositivos. A estrutura Appium é um componente chave na escalabilidade de testes de aplicativos móveis para serem executados de forma autônoma e contínua. Mais sobre como Digital.ai permite que as empresas usem o Appium pode ser encontrado em Estúdio Appium.

Por que o Appium está se tornando popular para testes de aplicativos móveis e da web?

Testes nos dias anteriores ao Appium
Como o software digital começou a se espalhar para quase todos os lares e bolsos em todo o mundo, os criadores de produtos digitais foram incumbidos de determinar novas maneiras de testar sua tecnologia em uma ampla gama de dispositivos.

Teste manual foi o método principal em um ponto no passado. Envolve tomar as ações reais necessárias para testar o desempenho, descobrir bugs e garantir segurança, conformidade e governança (SCaG). Uma sessão de teste manual consistiria em uma pessoa sentada em frente a uma estação de trabalho, atuando como um usuário de software, usando seu mouse e teclado para interagir com o programa e testar vários aspectos de seu desempenho e integridade.

As equipes de software foram capazes de ir além dos testes manuais lentos e complicados usando scripts de teste. Ao programar um aplicativo de teste para executar uma bateria de ações projetadas para verificar a integridade de um produto, as equipes de desenvolvimento e controle de qualidade foram capazes de dimensionar seus testes além do que os testadores humanos são capazes de realizar.

No entanto, há um limite de escalabilidade, mesmo com ferramentas de teste com script. Diferentes ambientes de dispositivos apresentam novas oportunidades para vulnerabilidades, bugs e problemas não descobertos. Além disso, cada dispositivo tem sua própria estrutura única que um programa de teste deve acomodar. No passado, superar essas barreiras significava codificar um kit de desenvolvimento de software (SDK) exclusivo ou compilar uma versão exclusiva das ferramentas de teste para cada dispositivo. Agora, com o Appium, o acesso a cada dispositivo pode ser feito de forma automática/autônoma e remota.

Entre no Appium: a ferramenta de teste de aplicativos que muda o jogo

O Appium é uma estrutura de automação de testes móveis de plataforma cruzada e tecnologia cruzada de código aberto. Usando o Appium, desenvolvedores e testadores ignoram o processo de criação manual de ferramentas de teste para cada dispositivo. Em vez disso, um Appium Server pode ser criado para retransmitir as instruções diretamente para o dispositivo a partir de um script de teste generalizado.

Nos últimos anos, a Appium fez sucesso no mercado testes de automação móvel segmento. A ferramenta rapidamente se tornou popular porque é independente de plataforma, o que significa que você pode usar o mesmo script de teste para testar aplicativos iOS e Android com alterações mínimas. O Appium oferece suporte a testes automatizados de aplicativos da web e aplicativos nativos, bem como aplicativos híbridos.

O fato de o Appium oferecer suporte a várias linguagens de programação para escrever código de teste — como Python, Ruby, Java, JavaScript, PHP — é outra grande vantagem. Além disso, o Appium permite testar dispositivos reais, emuladores e simuladores.

O desempenho robusto do Appium pode ser atribuído ao protocolo JSON Wire que os clientes Appium usam para interagir com dispositivos móveis por meio do Appium Server. Embora haja uma curva de aprendizado, vale a pena o tempo necessário para aprender, pois torna o teste de automação fácil e eficaz assim que você coloca as mãos nele.

Inicialmente desenvolvido como uma ferramenta CLI, o Appium agora se transformou em um poderoso e vibrante aplicativo de desktop GUI que pode ser executado em distribuições Windows, MAC e Linux.

Arquitetura do AppiumArquitetura do Appium Server

Appium usa arquitetura cliente-servidor. Aqui estão os principais componentes da arquitetura Appium:

1) Servidor Appium: O Appium Server é o componente central da arquitetura Appium. Ele é escrito em Node.js e roda na máquina ou na nuvem. O Appium Server recebe solicitações de bibliotecas de cliente Appium por meio do JSON Wire Protocol e invoca o driver móvel (driver Android/iOS) para se conectar às estruturas de automação de teste nativas correspondentes para executar operações de cliente nos dispositivos. Os resultados do teste são então recebidos e enviados aos clientes. O Appium Server, tem a capacidade de criar várias sessões para executar testes simultaneamente em vários dispositivos.

2) Bibliotecas do cliente Appium: Os clientes Appium solicitam que o servidor inicie uma sessão de automação de teste usando o comando createSession() por meio do protocolo JSON Wire, execute testes em vários dispositivos móveis e receba os demais resultados do Appium Server. As bibliotecas do cliente Appium abrangem vários idiomas, como PHP, Java, Ruby, JavaScript, C#, Python.

3) Protocolo JSON Wire: Na arquitetura cliente-servidor Appium, os clientes Appium se comunicam com o Appium Server por meio do protocolo JSON Wire desenvolvido pela equipe de desenvolvedores do WebDriver. Ele permite que os desenvolvedores acessem endpoints padrão e predefinidos por meio de uma API RESTful. Usando o protocolo JSON Wire, você pode testar sites e aplicativos por meio de um navegador móvel enquanto pode instalar ou desinstalar aplicativos no dispositivo durante a sessão de automação de teste.

4) Driver do Appium: O Appium é independente de plataforma e independente de tecnologia. Para gerenciar com eficiência diferentes plataformas, o Appium usa vários drivers e converte a API em sessões de automação para as plataformas correspondentes.

  1. UiAutomator2: O driver Appium padrão para teste de dispositivos Android
  2. UiAutomator1: Driver Appium para versões mais antigas do Android.
  3. Teste XCUIT: Driver Appium para teste de dispositivo iOS
  4. WinAppDriver: Driver Appium para teste de dispositivos Windows
  5. Expresso: Novo driver Appium para teste de dispositivos Android

5) Estruturas de teste automatizadas: O Appium usa as estruturas nativas de teste automatizado para executar operações de cliente nos dispositivos de teste. Ele se conecta com o bootstrap.js que atua como um servidor TCP e executa comandos de teste nos dispositivos.

  1. Framework UiAutomator: Para testes de dispositivos Android
  2. Framework XCUITest: Para testar aplicativos iOS

Como o Appium funciona?

O Appium Server é escrito em Node.js e usa a arquitetura cliente-servidor, na qual as máquinas clientes se comunicam com o servidor por meio de um protocolo.

Para iniciar uma sessão de teste de automação, a máquina cliente envia uma solicitação ao Appium Server por meio do protocolo JSON Wire. O código de teste pode ser escrito em várias linguagens de programação, como Java, Ruby, Python, PHP, C# e JavaScript. O Appium Server então cria uma nova sessão de automação de teste e chama o driver iOS/Android apropriado. Quando o Appium Server se conectar com as estruturas de teste nativas correspondentes, ele também começará a interagir com o serviço bootstrap (bootstrap.jar/bootstrap.js) que está sendo executado nos dispositivos móveis para executar operações, assim como um usuário faria.

Um recurso extremamente vantajoso do Appium é que ele permite que os desenvolvedores usem o mesmo código de teste para testar dispositivos iOS e Android. No entanto, o desafio aqui é diferenciar entre solicitações de automação de teste de dispositivos iOS e Android. O Appium faz isso observando a opção de recursos desejados. Ao criar uma sessão de solicitação, você deve mencionar os pares chave-valor, como deviceName, platformName, appPackage, appActivity etc. Com base nesses valores, o Appium Server roteia com eficiência as solicitações do cliente para as estruturas de teste correspondentes.

Como o Appium funciona em cada dispositivo

Appium em dispositivos Android

  1. A máquina cliente envia uma solicitação ao Appium Server por meio do protocolo JSON Wire para criar uma nova sessão de automação de teste.
  2. Uma sessão de automação de teste é criada no servidor. O servidor também verifica os recursos desejados. Para testes da plataforma Android, o servidor entra em contato com a estrutura UiAutomator2, que é uma estrutura de automação de teste nativa no Android.
  3. O UiAutomator2 irá se comunicar com o bootstrap.jar que está rodando no dispositivo, atuando como um servidor TCP. Funciona em emuladores, simuladores e também em dispositivos reais.
  4. O Bootstrap.jar recebe os comandos e executa os testes nos dispositivos Android. Ele passa os detalhes do log de teste para o UiAutomator2 que, por sua vez, envia essas informações para o Appium Server. O Bootstrap.jar então passa essas informações para o cliente.

Appium em dispositivos iOS

  1. A máquina cliente envia uma solicitação ao Appium Server por meio do protocolo JSON Wire para criar uma nova sessão de automação de teste.
  2. Uma sessão de automação de teste é criada no servidor. O servidor também verifica os recursos desejados. Para teste da plataforma iOS, o servidor entra em contato com a estrutura XCUITest, que é uma estrutura de automação de teste nativa no iOS que vem com o Apple XCode.
  3. A estrutura XCUITest se comunicará com o bootstrap.js que está sendo executado no dispositivo que atua como um servidor TCP. Funciona em emuladores, simuladores e também em dispositivos reais.
  4. O Bootstrap.js recebe os comandos e executa os testes nos dispositivos iOS. Ele passa os detalhes do log de teste para o XCUITest que, por sua vez, envia essas informações para o Appium Server. Esta informação é então comunicada ao cliente.

O que é JSON Wire Protocol e como ele funciona com o Appium?

JSON Wire Protocol é um padrão popular que facilita a comunicação entre as bibliotecas do cliente e o servidor em um sistema heterogêneo. Sendo uma ferramenta independente de plataforma e idioma, o Appium faz uso desse recurso do JSON Wire Protocol.

JSON é uma forma abreviada de JavaScript Object Notation, em que estruturas de dados complexas são representadas. O protocolo de fio é um mecanismo de transmissão de dados ponto a ponto.

Na arquitetura Appium, a comunicação entre o Appium Server e as bibliotecas cliente é facilitada pelo WebDriver que utiliza o protocolo JSON Wire sobre uma solicitação TTP REST com entradas JSON. Esse arranjo usa o método de serialização e desserialização para converter dados de objeto em formato JSON e vice-versa.

Sendo uma ferramenta multiplataforma, o servidor não precisa entender as linguagens de programação das bibliotecas cliente, mas apenas identificar o protocolo para criar e gerenciar sessões de automação.

A arquitetura do protocolo JSON

  1. Local End: É o lado cliente do protocolo, normalmente bibliotecas cliente escritas em uma linguagem de programação específica.
  2. Extremidade Remota: É o lado do servidor do protocolo
  3. Extremidade intermediária: Sistemas proxy que podem atuar tanto como extremidade remota quanto local.
  4. Nó Endpoint: É a extremidade remota final da estrutura do nó.

A extremidade remota é o servidor que lê as solicitações dos clientes finais locais e escreve as respostas por meio de um soquete TCP.

Por exemplo, você pode usar o comando New Session para criar uma nova sessão do WebDriver para executar operações de teste no nó de extremidade ou usar o comando Find Element para recuperar elementos específicos.

Instalando o aplicativo
O Appium está disponível em duas versões:

  1. Appium Server baseado em CLI
  2. Appium Desktop baseado em GUI (adiciona uma camada GUI ao Appium Server e também oferece Appium Inspector)

Instalação do Appium Server baseada em CLI
O Appium oferece um aplicativo de desktop GUI vibrante que permite gerenciar facilmente as operações de automação de teste. No entanto, ao integrar o teste em seus pipelines de CI, você precisa iniciar o Appium Server usando os scripts. Como tal, você deve instalar o Appium Server como sua primeira etapa.

Instalação do Appium

O Appium está disponível em duas versões.

  1. Appium Server baseado em CLI
  2. Appium Desktop baseado em GUI (adiciona uma camada GUI ao Appium Server e também oferece Appium Inspector)

Instalação do Appium Server baseada em CLI

O Appium oferece um aplicativo de desktop GUI vibrante que permite gerenciar facilmente as operações de automação de teste. No entanto, ao integrar o teste em seus pipelines de CI, você precisa iniciar o Appium Server usando os scripts. Como tal, você deve instalar o Appium Server

Etapa 1: instalar o Node.js

Como o Appium é escrito em Node.js, você precisa primeiro instalar o Node.js para usar o Appium. Visite o site Node.js para baixar o software:

https://nodejs.org/en/download/current/

Instalar o Node.js

Após a conclusão do download, instale o pacote.

Instale o pacote Node.js

Aceite o contrato de licença e prossiga para a próxima tela.

Aceite o contrato de licença

Escolha o caminho Node.js que normalmente é C:Program Filesnodejs

Escolha o caminho Node.js

A próxima tela mostra os componentes que estão sendo instalados. Junto com o Node.js, você precisa de um gerenciador de pacotes. Npm é o gerenciador de pacotes recomendado para Node.js. Portanto, instale também as ferramentas NPM.

instalar as ferramentas NPM

A próxima tela solicitará que você permita a instalação das ferramentas necessárias para compilar os módulos nativos. Você pode selecionar essa opção ou instalá-los manualmente no GitHub quando necessário.

instalação das ferramentas necessárias para compilar módulos nativos

Clique em próximo e conclua a instalação.

concluir a instalação

Após a instalação, verifique se a variável de ambiente contém o caminho de npm e nodejs.

O caminho do sistema mostra o caminho do Node.js e a variável do usuário mostra o caminho do npm.

Clique com o botão direito do mouse em Iniciar->Sistema->Avançado->Variáveis ​​de ambiente

a variável de usuário mostra o caminho npm

Etapa 2: instalar o Appium a partir do prompt de comando

Abra o prompt de comando como administrador e digite o seguinte comando:

npm instalar -g Appium

Instale o Appium a partir do prompt de comando

O gerenciador de pacotes npm iniciará o procedimento de instalação.

o gerenciador de pacotes npm iniciará o procedimento de instalação

Após uma instalação bem-sucedida, você pode começar a usar o Appium.

Para abrir o Appium no prompt de comando, digite Appium seguido do endereço IP e do número da porta do servidor.

Appium -a 127.0.0.1 -p 4723

Após uma instalação bem-sucedida, você pode começar a usar o Appium

Agora, o Appium está em execução e o REST HTTP está escutando no endereço IP (no exemplo acima, localhost 127.0.0.1 e a porta do servidor 4723).

Instalação do Appium Desktop baseada em GUI

Baixe e instale o Appium Desktop

Para baixar e instalar o desktop Appium, visite o site do Appium:

https://Appium.io/

Instalação do Appium Desktop baseada em GUI

Após a instalação bem-sucedida, abra a área de trabalho do Appium.

Abra a área de trabalho do Appium

Na tela de abertura, o Appium solicitará que você insira o endereço IP do host e o número da porta do servidor.

Como o Appium é apenas um servidor HTTP, ele não faz nada sozinho. Você precisa das bibliotecas cliente para solicitar e executar operações em dispositivos finais. Portanto, é importante configurar a porta do servidor ao iniciar o Appium. A porta do servidor é onde o cliente se conecta e se comunica com o Appium. A porta do servidor padrão é 4723. Ao conectar-se às máquinas clientes, você deve especificar esta porta do servidor.

Para alterar a porta do servidor, clique na guia Avançado e você verá uma tela com as configurações do servidor. Insira os detalhes e inicie o servidor.

Iniciar servidor

Se você quiser salvar essas configurações para a próxima vez, salve-as como predefinidas e escolha as configurações da guia predefinidas quando abrir o Appium na próxima vez.

Configurações do servidor Appium

Agora o Appium Desktop está pronto para uso.

Aproveitando o Appium para executar continuous testing

O Appium oferece grandes vantagens, pois o Appium Server pode ser usado para retransmitir solicitações de teste e recuperar dados de teste de forma autônoma. Esta capacidade se encaixa perfeitamente com continuous testing estruturas.

In continuous testing, o aplicativo é testado regularmente durante todo o ciclo de vida do produto. Isso inclui testar indivíduos release constrói antes da integração e também pós-deploymento. Ao executar testes continuamente, as equipes de produto automatizam muitas das tarefas envolvidas no agendamento manual e na construção de testes, enquanto, ao mesmo tempo, os produtos são testados com mais frequência e intensidade para detectar quaisquer problemas, bugs ou vulnerabilidades.

A plataforma SeeTest, parte Digital.ai Continuous Testing, é uma solução ponta a ponta usada para testar dispositivos e navegadores na nuvem ou em uma rede remota. O SeeTest é totalmente compatível com ferramentas como Appium, Selenium, XCUITest e muito mais.

A seção abaixo fornece um procedimento passo a passo para conectar o SeeTest Cloud com o Appium Desktop para Windows:

Conectando o Appium Desktop à plataforma SeeTest

A plataforma SeeTest é uma solução ponta a ponta para testar dispositivos e navegadores na nuvem ou em uma rede remota. O SeeTest é totalmente compatível com ferramentas como Appium, Selenium, XCUITest e muito mais. A seção abaixo fornece um procedimento passo a passo para conectar o SeeTest Cloud com o Appium Desktop para Windows.

Você vai precisar de uma conta SeeTest Cloud válida.

- Inicie o Appium Desktop e inicie uma nova sessão

Depois que o Appium Desktop for iniciado, abra uma 'Nova janela de sessão…'

Janelas de Nova Sessão

- Obtendo a chave de acesso do SeeTest Cloud

Navegue até a IU do SeeTest Cloud e clique no ícone que representa o usuário. Em seguida, clique em Obtenha chave de acesso, conforme mostrado abaixo.

Obtendo a chave de acesso do SeeTest Cloud

Copie a chave de acesso para a área de transferência na caixa de diálogo de chave de acesso aberto.

Nota: Neste caso, nós costumavamos Oferta pública da SeeTest Cloud nas preferências de conexão.

Veja a oferta pública do Cloud Test nas preferências de conexão.

- Especifique as configurações de conexão do SeeTest Cloud e os recursos desejados. A etapa anterior abrirá uma caixa de diálogo para se conectar a um Appium Server. Nesta etapa, especificaremos as preferências de conexão do Appium Server do SeeTest Cloud.

Selecione o Expertest em 'Provedores de Nuvem'

Selecione o Expertest em 'Provedores de Nuvem'

Forneça o URL da nuvem e a chave de acesso.

Defina o recurso “platformName” para iOS ou Android, com base no dispositivo que você gostaria de usar.

Defina o recurso "platformName" para iOS ou Android, com base no dispositivo que você gostaria de usar.

Clique em Iniciar sessão para se conectar ao SeeTest Cloud. Esta etapa conectará ao SeeTest Cloud.

Uma sessão contínua do Appium Desktop para o SeeTest Cloud também está disponível na interface do usuário do SeeTest Cloud. Isso fornece ao usuário um melhor controle sobre o dispositivo.

Clique em Iniciar sessão para se conectar ao SeeTest Cloud

Navegue até a guia Execução na interface do usuário do SeeTest Cloud e clique em depurar para usar a sessão contínua do Appium Desktop.

Este é um recurso muito conveniente porque um usuário de teste pode aproveitar recursos poderosos do SeeTest e do Appium na mesma sessão. O principal benefício desta sessão é que as operações de teste feitas com o SeeTest são mais rápidas e fáceis de usar. O Appium Inspector pode ser usado para inspecionar qualquer elemento na sessão.

SeeTest e Appium na mesma sessão

Claro, se você quiser vê-lo em tempo real, nós o cobrimos com este ótimo vídeo tutorial.

https://www.youtube.com/watch?v=GjX56G0rtEw&feature=emb_logo

Appium é uma solução conveniente para automação continuous testing em escala

Graças a todas as suas qualidades vantajosas e fácil integração com outras suítes de teste, a popularidade do Appium não mostra sinais de diminuir com o passar do tempo. Nossas equipes sempre têm isso em mente enquanto desenvolvemos e release as versões mais recentes do SeeTest.

Quanto às informações na postagem do blog, recomendamos que você marque esta página para sempre ter as informações do tutorial disponíveis. E, naturalmente, recomendamos que, se você ainda não usou nossa integração com o Appium, faça o download e veja por si mesmo.

Você está pronto para escalar sua empresa?

Explore

O que há de novo no mundo da Digital.ai

22 de abril de 2024

O preconceito na máquina: preconceitos de dados de treinamento e seu impacto no código gerado pelos assistentes de código de IA

Explore preconceitos nos dados de treinamento de IA que afetam a geração de código e aprenda estratégias para mitigá-los para um desenvolvimento de IA e inovação de software mais justos.

Saber Mais​
22 de fevereiro de 2024

Como o futurismo está moldando os testes em nuvem: uma previsão

Desbloqueie o futuro dos testes em nuvem: abordagens estratégicas para aproveitar a tecnologia de maneira eficaz, aprimorar a qualidade do software e garantir o sucesso dos negócios.

Saber Mais​
4 de dezembro de 2023

A busca pela qualidade: testes contínuos de software automatizados para a indústria automotiva

Desde a criação de testes com tecnologia de IA até sistemas de autocorreção, descubra como continuous testing e desenvolvimentos inovadores estão moldando o futuro das tecnologias conectadas, safee veículos confiáveis.

Saber Mais​