Framework de testing automatizado para aplicaciones móviles utilizando Appium + Jest y Appium + Cucumber con reporte de Allure para pruebas E2E en dispositivos Android.
- Appium - Plataforma de automatización móvil multiplataforma
- Jest - Framework de testing con assertions y mocking integrados
- Cucumber.js - Framework BDD para pruebas en lenguaje natural (Gherkin)
- Allure Report - Framework de reporting avanzado con métricas detalladas
- JavaScript/Node.js - Lenguaje de programación y runtime
- Android Studio - Emulador y herramientas de desarrollo Android
- Descargar e instalar Android Studio
- Configurar Android SDK y AVD Manager
- Crear y configurar un emulador Android
# Instalar Appium globalmente
npm install -g appium
# Instalar driver de Android
appium driver install uiautomator2
# Verificar instalación
appium doctor --android
Configurar las siguientes variables en tu sistema:
export ANDROID_HOME=/path/to/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
export JAVA_HOME=/path/to/java# Clonar el repositorio
git clone [URL_DEL_REPOSITORIO]
# Instalar dependencias
npm install# En una terminal separada
appium# Listar emuladores disponibles
emulator -list-avds
# Iniciar emulador específico
emulator -avd [NOMBRE_DEL_AVD]
# O desde Android Studio: AVD Manager > Play buttonadb devices# Ejecutar todas las pruebas con Jest
npm run test:jest
### Framework Cucumber
```bash
# Ejecutar todas las pruebas con Cucumber
npm run test:cucumber
## Reportes y Resultados
### Generar y visualizar reporte de Allure
```bash
# Servir reporte en vivo (recomendado)
allure serve allure-results
# Generar reporte estático
allure generate allure-results --clean -o allure-report
allure open allure-report
## ⚙️ Configuración
### Capabilities Básicas (Android)
```javascript
const capabilities = {
platformName: 'Android',
platformVersion: '11.0',
deviceName: 'Android Emulator',
app: path.resolve('./apps/app-debug.apk'),
automationName: 'UiAutomator2',
newCommandTimeout: 300,
noReset: false,
fullReset: false
};APPIUM_HOST=localhost
APPIUM_PORT=4723
DEVICE_NAME=Android Emulator
PLATFORM_VERSION=11.0
APP_PATH=./apps/app-debug.apk
IMPLICIT_WAIT=10000##Escribiendo Pruebas
describe('Login Functionality', () => {
test('should login successfully with valid credentials', async () => {
await loginPage.enterEmail('[email protected]');
await loginPage.enterPassword('password123');
await loginPage.tapLoginButton();
await expect(homePage.welcomeMessage).toBeDisplayed();
});
});@mobile @login
Feature: Mobile Login
Como usuario de la aplicación móvil
Quiero poder iniciar sesión
Para acceder a mis datos
Scenario: Login exitoso en dispositivo móvil
Given que la aplicación está abierta
When ingreso el email "[email protected]"
And ingreso la contraseña "password123"
And toco el botón de login
Then debería ver la pantalla principalEste proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Desarrollado con 📱 para testing mobile automatizado de calidad