esedark
Teléfono Android junto a una estación de desarrollo

android / appium / uiautomator2 / móviles reales

Appium para Android: guía práctica para automatizar apps reales

Un sistema Appium estable controla el estado, usa selectores semánticos, registra evidencia y se detiene si la app cambia.

Appium sirve para probar aplicaciones Android y ejecutar procesos repetitivos autorizados en dispositivos bajo tu control. No autoriza a saltarse accesos, reglas, límites ni consentimiento. Define acciones permitidas y retención de datos antes de conectar el primer móvil.

Entiende la cadena de ejecución

El cliente envía comandos WebDriver a Appium y UiAutomator2 los traduce a acciones Android mediante ADB. El fallo puede estar en cliente, servidor, driver, transporte, Android o app. Fija versiones compatibles y asigna a cada dispositivo un serial y puerto únicos. Consulta UiAutomator2 explicado para desarrolladores backend.

Haz determinista el estado

Empieza cada ejecución con pantalla activa, orientación conocida, idioma y zona horaria esperados, batería suficiente, red estable y versión correcta. Decide explícitamente si reinicias los datos. Verifica paquete, activity, permisos y espacio antes de aceptar trabajo.

Con varios móviles, reparte trabajos mediante una cola. Al terminar, captura la pantalla final y libera la sesión. Pon en cuarentena un móvil con fallos repetidos.

Usa selectores y esperas estables

Prefiere accessibility IDs y después resource IDs. El texto exige controlar idioma y los XPath largos son frágiles. Encapsula pantallas en page objects y espera estados visibles o habilitados en lugar de sleeps fijos.

Recupera sin ocultar defectos

Clasifica fallos de transporte, móvil, aplicación, entrada o flujo. Reintenta solo acciones seguras e idempotentes. Antes de repetir un envío, inspecciona el estado para no duplicarlo. Guarda screenshot, page source, log seguro, serial, versión, ID de correlación y último paso; nunca credenciales ni datos personales innecesarios.

Errores comunes

  • usar XPath para todo
  • compartir puertos entre sesiones
  • suponer estados idénticos
  • usar sleeps fijos
  • reintentar sin reconciliar
  • mezclar lógica y selectores
  • guardar credenciales en logs
  • ejecutar acciones ilimitadas
  • actualizar drivers sin pruebas

Checklist práctico

  • documentar autorización y datos
  • fijar versiones
  • asignar seriales y puertos
  • verificar salud del móvil
  • preferir selectores semánticos
  • usar page objects y esperas
  • limitar reintentos
  • capturar diagnóstico seguro
  • monitorizar éxito y latencia
  • ofrecer pausa y revisión manual

Cuándo contratar a una persona técnica

Contrata a un especialista cuando el prototipo deba ser un servicio, varios modelos trabajen en paralelo o los fallos afecten a clientes. El responsable diseña asignación, recuperación, secretos, métricas y pruebas. El reto es la estabilidad, no lograr un clic aislado.

Conclusión

Una buena automatización Appium genera ejecuciones repetibles y explicables. Para convertir un script frágil en servicio, revisa mis servicios técnicos o contacta conmigo.