Automatización de Android APK con Espresso

Estoy intentando automatizar una cierta UI de mi uso de Androide (no tengo código de fuente así que estoy utilizando el archivo de APK).

He ido a través de tutorial proporcionado aquí y también algunos tutoriales disponibles en Google, pero todos ellos requieren código fuente.

Si alguien tiene alguna idea de cómo automatizar la interfaz de usuario con Espresso sin código fuente, por favor ayuda.

Estoy utilizando IntelliJ como IDE y app android versión 5.0.2.

He ido a través de tutorial proporcionado aquí y también algunos tutoriales disponibles en Google, pero todos ellos requieren código fuente.

Esto se debe a que Espresso es parte de las pruebas de instrumentación, y requiere código fuente.

Otras herramientas – UI Automator y monkeyrunner, por ejemplo – no requieren código fuente.

Como Espresso es más compatible con versiones anteriores de la versión de Android y también tienen ventaja de rendimiento sobre UIAutomator que por qué quiero usar Espresso

Luego hable con el desarrollador de la aplicación y póngase en contacto con esa persona para probar la aplicación, con acceso completo al código fuente.

Para usar espresso necesitas saber algo sobre los elementos de la interfaz de usuario (ID y tipo). Cuando no tiene el código fuente, puede utilizar la herramienta "uiautomatorviewer" que forma parte del SDK de Android.

http://developer.android.com/tools/testing-support-library/index.html#uia-viewer

La respuesta es sí, se puede ejecutar la prueba de automatización utilizando Espresso sin código fuente de la aplicación.

Espresso se basa en el marco de instrumentación de Android, lo que significa que la prueba de automatización se construye en un único apk de prueba. Esta prueba apk es diferente de la aplicación normal apk:

  1. Hay una instrumentación registrada en AndroidManifest.xml, que se registrará en el sistema Android una vez que se instale el apk

  2. El apk de prueba debe estar firmado usando la misma firma con la aplicación apk, con el fin de ejecutar la prueba de automatización

  3. La prueba apk se ejecuta en el mismo proceso que la aplicación apk

Arriba son los únicos requisitos de cualquier marco de prueba basado en instrumentos tiene. Así que no hay dependencia del código fuente.

Pero ¿por qué encontramos que la mayoría de los tutoriales de Espresso están mezclados con código fuente? Porque simplificará la prueba:

  1. Puede controlar fácilmente el ciclo de vida de la actividad mediante la clase ActivityTestRule.

  2. Puede probar fácilmente las clases definidas por la aplicación.

  3. Puede probar widgets de interfaz de usuario mediante ID de widget

Por el contrario, usted tiene que escribir mucho código de reflexión para obtener las clases que necesita si no compila con el código fuente. Por ejemplo:

  1. Tienes que usar Class.forName para cargar la actividad de entrada y lanzarla

  2. Tienes que usar la reflexión de Java para probar las clases definidas por la aplicación

  3. Tienes que usar información literal para encontrar widgets de interfaz de usuario, porque no tienes el ID de los widgets de la interfaz de usuario

Creo que es debido a las desventajas anteriores, lo que hace que Google prefiera la construcción de prueba de Espresso junto con el código fuente.

Para resumir, está bien ejecutar la prueba de automatización Espresso sin código fuente de la aplicación, pero es mucho más difícil y hacer que los códigos de prueba sean feos.

  • Tamaño de pantalla en Samsung Tablet 10.1
  • ¿Cómo desplazarse por la pantalla en la prueba de espresso android? Necesito validar el texto presente en la pantalla
  • Cuando ejecuto mi código androide UIAutomator, muestra error
  • Proporcionando retraso entre eventos en UiAutomator Android
  • Cómo configurar Appium en Mac OS para ejecutar pruebas automatizadas de clases JAVA en dispositivos Android e iOS
  • Error 'adb not installed' al intentar tomar una instantánea con uiautomatorviewer
  • Android Espresso Ui Test verifica el texto de la etiqueta de ActionPage
  • UiAutomator falla en el dispositivo 4.1.2
  • ¿Cómo puedo probar automáticamente la funcionalidad de las aplicaciones iOS y Android?
  • Cómo inyectar el evento de clic con Android UiAutomation.injectInputEvent
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.