Skip to content

reyrg2021/mobile_test_adl_2025

Repository files navigation

Framework de Testing Mobile Automatizado

Framework de testing automatizado para aplicaciones móviles utilizando Appium + Jest y Appium + Cucumber con reporte de Allure para pruebas E2E en dispositivos Android.

Tecnologías Utilizadas

  • 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

Prerrequisitos

1. Instalar Android Studio

  • Descargar e instalar Android Studio
  • Configurar Android SDK y AVD Manager
  • Crear y configurar un emulador Android

2. Instalar Appium

# Instalar Appium globalmente
npm install -g appium

# Instalar driver de Android
appium driver install uiautomator2

# Verificar instalación
appium doctor --android

3. Variables de Entorno

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

Instalación del Proyecto

# Clonar el repositorio
git clone [URL_DEL_REPOSITORIO]

# Instalar dependencias
npm install

Preparación del Entorno

1. Iniciar Servidor Appium

# En una terminal separada
appium

2. Iniciar Emulador Android

# Listar emuladores disponibles
emulator -list-avds

# Iniciar emulador específico
emulator -avd [NOMBRE_DEL_AVD]

# O desde Android Studio: AVD Manager > Play button

3. Verificar Dispositivos Conectados

adb devices

Ejecución de Pruebas

Framework Jest

# 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
};

Variables de Entorno (.env)

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

Ejemplo con Jest

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();
  });
});

Ejemplo con Cucumber

@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 principal

Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.


Desarrollado con 📱 para testing mobile automatizado de calidad

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages