android user-interface testing instrumentation

Pruebas GUI con Instrumentación en Android



user-interface testing (4)

Ha pasado un tiempo que hiciste tu pregunta, pero tal vez mi respuesta todavía sea útil:

Eche un vistazo a Robotium , que admite pruebas de interfaz de usuario de Robotium aplicaciones de Android. Funciona sin instrumentar su código de producción, así que espero que la instrumentación no sea un requisito estricto para usted.

Quiero probar la interfaz de usuario de mis aplicaciones de Android, con eventos clave y botones presionados, etc. He leído alguna documentación que Instrumentation podría usar para este propósito.

¿Alguien con experiencia en el uso de instrumentación para pruebas de interfaz de usuario?


Hay una nueva herramienta de prueba de UI que se lanzó con la revisión 21 de las herramientas del SDK:

UI Automator Test Framework
Un enfoque común para las pruebas de UI es ejecutar las pruebas manualmente y verificar que la aplicación se comporta como se espera. UI Automator es un nuevo marco de prueba de software disponible en Herramientas R21 que le proporciona herramientas para automatizar fácilmente las tareas de prueba de UI. Proporciona una herramienta GUI para escanear y analizar los componentes de la interfaz de usuario de una aplicación de Android (uiautomatorviewer), una biblioteca que contiene API para crear pruebas de IU funcionales personalizadas y un motor de ejecución para automatizar y ejecutar las pruebas en varios dispositivos físicos. UI Automator se ejecuta en Android 4.1 (nivel API 16) o superior. Para obtener más información, diríjase a la documentación de UI Testing .

Fuente: http://android-developers.blogspot.de/2012/11/android-sdk-tools-revision-21.html


La forma oficialmente recomendada de realizar pruebas de interfaz de usuario en Android es la instrumentación, sí. Echa un vistazo a InstrumentationTestRunner . Existen envoltorios para este tipo de funcionalidad que lo hacen un poco menos doloroso de usar, uno de estos es Robotium , otro es Calculon .

Sin embargo, la mayoría de las personas parece estar de acuerdo en estos días en que el marco de prueba de Google es un fracaso. Es muy inestable, muy lento, y las API son terribles, lo que hace que las pruebas sean difíciles de escribir y entender. Por lo tanto, la mayoría de las personas que conozco que ejecutan Robolectric pruebas más grandes optan por Robolectric , que retira las pruebas de UI del dispositivo y Dalvik a una JVM antigua. Ha recorrido un largo camino, y en realidad es muy útil en estos días. Echale un vistazo. El principal inconveniente es, por supuesto, que en realidad no instrumentará la aplicación en un dispositivo o incluso no generará la interfaz de usuario. Hace afirmaciones a nivel de código, por lo que no es la opción correcta para las pruebas de caja negra.

Otra forma de probar su aplicación de caja negra / de extremo a extremo es Selenium + NativeDriver . NativeDriver es una implementación de las API de WebDriver, por lo que puede ejecutar pruebas de estilo Selenium en sus dispositivos Android.

Una herramienta más que mencionar es el propio monkeyrunner Android (no el ejercitador Monkey UI, que simplemente envía eventos aleatorios a un dispositivo, lo que lo hace útil para pruebas de estrés, pero no para pruebas funcionales). monkeyrunner es un puente de dispositivo con guión Python, contra el cual puede enviar pulsaciones de teclas y toques para instrumentar su aplicación. De nuevo, no recomendaría su uso, ya que está plagado de errores y tiene una funcionalidad muy limitada. Sin embargo, puede hacer otras cosas, como tomar capturas de pantalla de su aplicación bajo prueba.


No estoy familiarizado con la instrumentación, pero Android viene con una herramienta llamada "Application Exerciser Monkey" . Genera un flujo de entradas de usuarios aleatorias para probar la aplicación bajo estrés. Es fácil de usar y un poco divertido de ver mientras tu aplicación se vuelve loca bajo la afluencia de clics. ¿Es eso lo que estás buscando?