Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leohspaixao/appium-basico
https://github.com/leohspaixao/appium-basico
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/leohspaixao/appium-basico
- Owner: LeohsPaixao
- License: mit
- Created: 2023-11-08T15:27:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-20T14:26:47.000Z (2 months ago)
- Last Synced: 2024-11-20T15:34:08.459Z (2 months ago)
- Language: JavaScript
- Size: 105 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Node.js Version](https://img.shields.io/badge/Node.js-%3E=18.0.0-brightgreen.svg)](https://nodejs.org/)
[![Appium Version](https://img.shields.io/badge/Appium-%3E=2.1-brightgreen.svg)](http://appium.io/)## Pré-requisito
- [Node.js](https://nodejs.org/en/download/current)
- [Appium Server](https://appium.io/docs/en/2.1/quickstart/install/)
- [Android Studio](https://developer.android.com/studio?hl=pt-br)
- [Java Development Kit (JDK)](https://www.oracle.com/br/java/technologies/downloads/#jdk21-windows)### 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](https://www.youtube.com/watch?v=N5ALlkXOowI).
#### **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](https://www.youtube.com/watch?v=3vcq2RDhwoc).
## Configuração
1. **Clonar o repositório**:
```bash
git clone [email protected]: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](https://learn.microsoft.com/pt-br/windows/dev-environment/javascript/nodejs-on-windows).
2. **Instalar Appium e Appium Inspector:**
```bash
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](https://github.com/appium/appium-inspector/releases/). O Appium Inspector é opcional, outra ferramenta de Inspector é o Layout Inspector do Android Studio, para saber mais sobre o Layout Inspector, acesse [aqui](https://developer.android.com/studio/debug/layout-inspector?hl=pt-br).
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.```shell
appium plugin install --source=npm appium-gestures-plugin
appium plugin install images
```**Driver:**
- UiAutomator2: Driver para os testes automotivos no Mobile.
```shell
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:
```bash
npm start ## Abrirá o Server do Appium na porta 4723 (default)
```## Executando os Testes
1. **Executar os testes:**
```bash
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:**
```javascript
// 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('[email protected]')
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
```lua
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](https://github.com/LeohsPaixao/appium-basico/assets/42840902/5530be95-aa36-4bc1-9578-dbd904a4cd83)
## Referencias
Obs.: Graças a essas referencias, este projeto se tornou possivel.
- [WebdriverIo API](https://webdriver.io/docs/api)
- [Appium Docs](https://appium.io/docs/en/2.1/)
- [Appium Github](https://github.com/appium/appium)
- [Appium Discuss](https://discuss.appium.io/)## License
Este projeto está licenciado sob a [Licença MIT](LICENSE).