Automação de Testes Mobile com Appium e Selenium
A automação de testes é uma peça-chave para garantir a qualidade em aplicações móveis. Este projeto utiliza as ferramentas Appium e Selenium para criar uma estrutura escalável, suportando dispositivos Android e iOS, com modularidade e captura automática de evidências.
Por que este projeto é útil?
A automação manual de testes pode consumir muito tempo e recursos, especialmente em projetos que envolvem múltiplas plataformas. Este framework simplifica o processo, oferecendo:
- Compatibilidade Multi-Plataforma: Suporte para Android e iOS.
- Relatórios Automatizados: Relatórios HTML claros e organizados.
- Evidências Visuais: Captura automática de screenshots durante os testes.
Estrutura Modular do Projeto
O projeto é organizado para ser intuitivo e fácil de manter. Aqui está uma visão geral:
/tests
/pages # Representação das telas do aplicativo
/tests # Arquivos de testes automatizados
/utils # Funções auxiliares como captura de screenshots
/evidencias # Evidências geradas pelos testes
/config
app_config.json # Configuração para dispositivos e plataformas
Por exemplo, o arquivo base_page.py
encapsula métodos genéricos reutilizáveis, enquanto transactions_tests.py
implementa os testes específicos.
Configuração Simples
-
Atualize o
app_config.json
: Configure os dispositivos e plataformas que serão usados nos testes, incluindo nome, versão e caminho do aplicativo.{ "platforms": [ { "name": "Android", "version": "12.0", "deviceName": "Pixel_4_Emulator", "appPath": "app/budgetwatch.apk" } ] }
-
Inicie o Appium Server: Certifique-se de que o servidor Appium está rodando corretamente antes de executar os testes:
appium --base-path /wd/hub
-
Execute os Testes: Com tudo configurado, inicie os testes com o comando:
pytest --html=report.html
Principais Funcionalidades
- Page Object Model (POM): Arquitetura modular para fácil manutenção.
- Captura de Evidências: Captura screenshots automaticamente para referência.
- Relatórios HTML: Relatórios detalhados e organizados com pytest-html.
- Centralização de Dados: Uso de arquivos JSON para entrada de dados dinâmicos.
Contribuições Bem-Vindas!
Você pode contribuir com melhorias para este projeto. Siga os passos abaixo:
- Faça um fork do repositório.
- Crie um novo branch:
git checkout -b minha-feature
. - Commit suas alterações:
git commit -m "Minha contribuição"
. - Envie para o branch principal:
git push origin minha-feature
. - Crie uma Pull Request com suas alterações.
Licença
Este projeto está licenciado sob a MIT License. MIT © Raul Batalha.