Este projeto é uma solução de automação de testes para aplicativos móveis, utilizando Appium e Selenium para suportar dispositivos Android e iOS. Ele possui uma estrutura modular e escalável, permitindo a fácil manutenção e integração de novos dispositivos ou funcionalidades.
- Introdução
- Pré-requisitos
- Estrutura do Projeto
- Configuração
- Executando os Testes
- Funcionalidades
- Contribuindo
- Licença
Este projeto foi desenvolvido para simplificar a automação de testes em aplicativos móveis. Ele suporta a execução em dispositivos Android e iOS, permite a captura de screenshots e organiza evidências de teste de forma estruturada.
Antes de começar, você precisa ter instalado:
- Python 3.8+
- Appium Server
- Drivers apropriados para dispositivos Android e iOS:
- Android: Android SDK
- iOS: Xcode
Além disso, as seguintes bibliotecas Python devem ser instaladas:
pip install -r requirements.txt
selenium==4.x.x
Appium-Python-Client==2.x.x
pytest==7.x.x
pytest-html==3.x.x
A organização do projeto segue uma estrutura modular:
/tests
/data
test_data.json # Dados de teste em formato JSON
/pages
base_page.py # Classe BasePage
intro_page.py # Classe IntroPage
main_page.py # Classe MainPage
transactions_page.py # Classe TransactionsPage
budget_page.py # Classe BudgetPage
add_budget_page.py # Classe AddBudgetPage
add_expenses_page.py # Classe AddExpensesPage
/tests
transactions_tests.py # Arquivo de testes
/utils
screenshot_util.py # Captura de screenshots
appium_config.py # Configuração do Appium
data_loader.py # Carregamento de dados de teste JSON
/evidencias # Armazena screenshots de evidências
/config
app_config.json # Configurações gerais
/tests/pages
: Contém as classes que representam as telas do aplicativo, encapsulando localizadores e ações./tests/tests
: Contém os arquivos de teste baseados nopytest
./tests/utils
: Funções auxiliares como configuração do driver, captura de evidências e carregamento de dados./config/app_config.json
: Configuração para plataformas e dispositivos.
Edite o arquivo app_config.json
para definir os dispositivos e plataformas usados nos testes:
{
"platforms": [
{
"name": "Android",
"version": "12.0",
"deviceName": "Pixel_4_Emulator",
"appPath": "app/budgetwatch.apk"
},
{
"name": "iOS",
"version": "15.0",
"deviceName": "iPhone 14 Pro Max",
"appPath": "app/budgetwatch.ipa"
}
]
}
Inicie o servidor Appium antes de executar os testes:
appium --base-path /wd/hub
Certifique-se de que o ambiente para Android e iOS esteja configurado corretamente.
Para executar todos os testes, use:
pytest --html=report.html
Para executar testes específicos, use o nome do arquivo de teste:
pytest tests/tests/transactions_tests.py
As screenshots são armazenadas no diretório /tests/evidencias
.
- Suporte a Android e iOS: Configure múltiplos dispositivos simultaneamente.
- Modularidade: Arquitetura baseada em Page Objects.
- Evidências Automatizadas: Captura automática de screenshots.
- Dados Centralizados: Utilização de JSON para dados de teste.
- Relatórios HTML: Geração de relatórios com pytest-html.
- Faça um fork do projeto.
- Crie um branch para sua feature:
git checkout -b minha-feature
. - Commit suas mudanças:
git commit -m 'Adicionei minha feature'
. - Envie para o branch principal:
git push origin minha-feature
. - Crie uma Pull Request.
Este projeto está licenciado sob a MIT License MIT © Raul Batalha