Skip to content

LeohsPaixao/appium-basico

Repository files navigation

Aprendendo Appium

Projeto de estudo. Conhecendo, sem cursos, a capacidade e a potencialidade do Framework Appium para testes Mobile. Foi usado Appium com o WebdriverIo para fazer os testes, foi escolhido dois aplicativos, que foram adicionados no projeto para os testes.

License Node.js Version Appium Version

Pré-requisito

Versões

  • Node.js: 20.9.0

  • Appium Server: 2.11.3

  • JDK: Instale a versão latest ou a de sua preferencia, logo após coloque JAVA_HOME em suas environment variables com o caminho do jdk instalado.

Há dois ambientes capazes de rodar os testes Mobile, através do Emulador ou pelo Real Device:

Emulador

Será necessário ter o Android Studio ou o Visor para que consiga criar um Emulador para rodar os testes, recomendo que assista este video.

Real Devices

O celular que será utilizado para os testes deve esta com a Opção de Desenvolvedor habilitado para que possa habilitar a opção Depuração. o ADB utilizará desta opção para conectar no celular e rodar os testes. Para mais detalhes assista este video.

Configuração

  1. Clonar o repositório:

     git clone git@github.com:LeohsPaixao/appium-basico.git
     cd appium-basico
     npm install

    Obs.: Rode o comando node -v para verificar se esta na versão certa do projeto antes de rodar npm Install.

    Node: Se não estiver na versão do projeto, 18.0.0, rode o comando nvm use caso tenha o controle de versão NVM em sua máquina. Para mais detalhes, dê uma olhada em NVM Windows.

  2. Instalar Appium e Appium Inspector:

     npm i -g appium@latest --unsafe-perm=true --allow-root

    Após instalar o Appium globalmente em sua máquina, caso queira utilizar o Appium Inspector para ajudar nos testes, baixe a ultima versão aqui. O Appium Inspector é opcional, outra ferramenta de Inspector é o Layout Inspector do Android Studio, para saber mais sobre o Layout Inspector, acesse aqui.

  3. Instalar Driver e Plugins necessários:

    Plugins:

    • Gestures: É responsável pelo testes de gestos como: scroll, swipe e drapNDrop.
    • Images: É necessário este plugin para o Appium Inspector.
     appium plugin install --source=npm appium-gestures-plugin
     appium plugin install images

    Driver:

    • UiAutomator2: Driver para os testes automotivos no Mobile.
     appium driver install uiautomator2

Debugar e/ou adicionar novos testes

É possivel levantar um server para utilizar aplicativos inspectors para facilitar a captura de elementos para os testes.

  1. Iniciar o Appium Server:

    Abra um novo terminal e rode:

     npm start ## Abrirá o Server do Appium na porta 4723 (default)

Executando os Testes

  1. Executar os testes:

     npm test:all ## Rode todos os testes
     npm test:demoapp ./test/specs/nome_do_test.spec.js ## Rode um teste especifico do App DemoApp
     npm test:apidemos ./test/specs/nome_do_test.spec.js ## Rode um teste especifico do App ProductApp

    OBS.: Antes de rodar qualquer desses Scripts, certifique-se que o server esta rodando em um terminal separado.

  2. Exemplos de código:

     // Testando se é possivel fazer login
     describe('-> Login', () => {
        // Antes de todos os it rode os comandos abaixo
        before( async () => {
            await $('~Login').click()
        })
    
        // Bloco de teste
        it('Should be able to complete the login', async () => {
            // Adiciona valores nos inputs e clica no botão Login
           await $('~input-email').addValue('a@example.com')
           await $('~input-password').addValue('12345678')
           await $('~button-LOGIN').click()
    
           // Esperasse encontrar um modal de sucesso
           await expect(
               $('//android.widget.FrameLayout[@resource-id="android:id/content"]')
           ).toBeExisting()
    
           // Clica no botão Ok para tirar o modal de sucesso
           await $('//android.widget.Button[@resource-id="android:id/button1"]').click()
        })
    })

Estrutura do Projeto

 appium-basico/
   |-- .github/
       |-- workflows/
   |-- app/
       |-- apk
   |-- test/
   |   |-- specs/
   |   |-- support/
         |-- desired/
         |-- helpers/
   |-- .appiumrc.json
   |-- .nvmrc
   |-- .npmrc
   |-- package.json
   |-- README.md
   |-- wdio.conf.ts
   |-- ...

Testes Reporter

Allure Reporter Tests #2

Referencias

Obs.: Graças a essas referencias, este projeto se tornou possivel.

License

Este projeto está licenciado sob a Licença MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published