Season Mobile com Appium - Ep.03: Robotizando o app do YouTube com o Appium




Olá pessoal, tudo beleza? Aqui é o Murillo Welsi novamente! E seguindo a sequência do artigo anterior, vou mostrar como podemos criar um projeto de automação mobile usando o RobotFramework + Appium + Android Studio. Bora por a mão na massa agora...


A ideia deste artigo é manter a estrutura do projeto a mais simples possível, para que, a partir dele, possamos criar projetos mais escaláveis e seguindo os Design Patterns.

01 - Configurações

Estrutura do projeto

Antes de "codar" nossos testes, vamos montar uma estrutura bem simples do nosso projeto. Criaremos um diretório chamado mobile-tests. Dentro deste diretório, vamos criar dois arquivos:
  • tests.robot
  • variables.robot
Se, assim como eu, você é preguiçoso, execute o comando abaixo para criar a estrutura de uma só vez:

mkdir mobile-tests && cd mobile-tests && touch tests.robot variables.robot



Os comandos acima podem ser executados em sistemas Linux. Em sistemas Windows é necessário ter instalado um Console Emulator, como o Cmder. Para instalar o Cmder, acesse https://cmder.net/.


02 - Importando a AppiumLibrary

Vamos inserir agora as configurações no bloco *** Settings *** . Neste bloco faremos a importação da AppiumLibrary, que nos permitirá fazer uso de várias Keywords de interação com o Appium. 

Consulte a documentação da AppiumLibrary em: https://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html

Note que fizemos também a importação do arquivo variables.robot, que guardará nossas variáveis.


03 - Criando a primeira Keyword

A seguir, faremos um passo muito importante, que será a criação da Keyword que executará o app no nosso Android Virtual Device (AVD). Daremos o nome Open Youtube , e nela implementaremos a Keyword Open Application (disponibilizada pela AppiumLibrary).

Keyword Open Application recebe os parâmetros das Capabilities (mensionada no post anterior) e serão guardas em variáveis:

  • platformName: Qual plataforma mobile será utilizada (Ex: iOS, Android).
  • platformVersion: Versão do S.O mobile (Ex: 10.0, 7.1, 4.4).
  • deviceName: O nome do device ou emulator que será utilizado (Pixel 2 API R).
  • appPackage: O pacote Java do app Android que você deseja executar (com.example.android.myApp, com.android.settings)
  • appActivity: Nome da Activity que deseja executar do seu pacote. Isso geralmente deve ser precedido por "." (por exemplo, .MainActivity em vez de MainActivity). 

Arquivo de Variáveis

Para facilitar a manutenção do nosso código, vamos inserir os valores das Capabilities em variáveis. Para isso, iremos adicioná-las ao arquivo variables.robot:

A variável ${REMOTE_URL} é responsável por indicar o ip do Appium Server. Certifique-se de preencher os dados corretamente, de acordo com as informações do seu ambiente.


04 - Criando a primeiro Test Case

Agora vamos implementar o primeiro Test Case. Vamos dar o nome Open App para este caso de teste, e dentro dele implementaremos a Keyword Open Youtube, criada no passo anterior:

(:

Vamos executar então nosso primeiro teste?


05 - Executando o Test Case

Antes de executar o teste, vamos criar o diretório logs:

mkdir logs

Agora sim podemos executar o teste, executando o comando abaixo:

robot -d logs/ .

O parâmetro -d indica o diretório onde os arquivos de logs e screenshots serão armazenados.

Obs.: Não se esqueça de executar o Appium e o AVD no Android Studio!



Pronto! Nossa automação está funcionando e abrindo o app mobile do YouTube no nosso Virtual Device.


06 - Avançando nos Testes


Localizando Elementos

Para localizar elementos no Appium devemos primeiramente iniciar o Appium:



Selecione o botão da Lupa:



Selecione o JSON de Capabilities ou crie um novo, conforme a imagem:




Selecione o botão Atualizar, para que a tela seja atualizada de acordo com a tela do emulador:






Clique no elemento que deseja localizar. Verifique que do lado direito da tela, as informações serão exibidas.

Faremos uma busca pelo accessibility id:



Clique na Lupa:




Note que um id foi localizado. Clique em Done:





Podemos fazer a busca pelo xpath também, mas muita cautela ao usar kkkk:




A AppiumLibrary aceita os seguintes localizadores:
  • identifier: Click Element | identifier=my_element
  • idClick Element | id=my_element
  • accessibility_idClick Element | accessibility_id=button3
  • xpathClick Element | xpath=//UIATableView/UIATableCell/UIAButton
  • classClick Element | class=UIAPickerWheel


Adicionando ações aos testes

Para finalizarmos, vamos adicionar mais elementos mapeados no arquivo variables.robot:

E adicionaremos também keywords para abrir o app do YouTube, fazer a busca entre outras ações simples, usando funções como Click Element Input Text da biblioteca do Appium:

Vamos rodar novamente os testes, executando o comando:

robot -d logs/ .



Se conferirmos os logs, podemos ver os resultados dos testes:


Vamos finalizando aqui mais um artigo. Acho que conseguimos fazer, ainda que de maneira muito simples, alguns testes usando o RobotFramework + Appium + Android Studio

Espero ter ajudado o pessoal que não conhecia, ou conhecia muito pouco o mundo da automação mobile.

Um grande abraço, e até a próxima!!!

Comentários

  1. Ola tudo bem!! tenho muito interesse na utilização do Robot Framework com Appium!!

    Duvida? utilizo um Appium Server remoto que requer uma conexão via proxy no caso utilizamos no java as classes:
    OkHttpClient e HttpCommandExecutor utilizando "AppiumDriver(HttpCommandExecutor, DesiredCapabilities)" para fazer a conexão no caso do Robot e possível conectar no Appiumserver via proxy?

    Obrigado!!

    ResponderExcluir
  2. Olá, estou com um problema de simular com robot + apiium a ação de deslizar para cima em uma combox, afim de ter as informações contidas neste combox. vc sabe como fazer essa simulação ?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

[ATUALIZADO] Season Libraries - Ep. 01: Library Faker para informações aleatórias e fakes

Novo Curso: Robot Framework com Playwright e GitHub Actions

Season WEB Testing - Ep. 03: Open Browser - Chrome Options