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.
-
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:
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.
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.
-
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 rodarnpm 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. -
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.
-
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
É possivel levantar um server para utilizar aplicativos inspectors para facilitar a captura de elementos para os testes.
-
Iniciar o Appium Server:
Abra um novo terminal e rode:
npm start ## Abrirá o Server do Appium na porta 4723 (default)
-
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.
-
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() }) })
appium-basico/
|-- .github/
|-- workflows/
|-- app/
|-- apk
|-- test/
| |-- specs/
| |-- support/
|-- desired/
|-- helpers/
|-- .appiumrc.json
|-- .nvmrc
|-- .npmrc
|-- package.json
|-- README.md
|-- wdio.conf.ts
|-- ...
Obs.: Graças a essas referencias, este projeto se tornou possivel.
Este projeto está licenciado sob a Licença MIT.