2012-08-30 17 views
14

Tengo que evaluar regularmente la disponibilidad y el funcionamiento de un sitio web de alquiler de películas. Escribí un programa de Windows que puede automatizar un navegador web de acuerdo con un script, por lo que esta tarea está básicamente resuelta. Ahora tengo que automatizar la versión móvil de esta aplicación web: una aplicación nativa de iOS y una aplicación nativa de Android.¿Cómo puedo probar automáticamente la funcionalidad de las aplicaciones iOS y Android?

Estas aplicaciones son de código cerrado, por lo que no se pueden modificar de ninguna manera. Creo que la aplicación de prueba debe implementarse en los dispositivos de prueba (iPhone, iPad, Galaxy Tab, Galaxy S II), pero debo poder controlarla a distancia. Quiero decir, me gustaría crear una conexión entre los dispositivos de prueba y una PC, cargar los guiones de prueba de la PC a los dispositivos, ejecutarlos y descargar los resultados de las pruebas a la PC. El script de prueba debe iniciar la aplicación para probarla, manipular su GUI (rellenar cuadros de edición, botones, etc.) y seguir su respuesta de alguna manera, por ejemplo, analizando la GUI (la existencia de algunos elementos de GUI, sus leyendas, etc.) , analizando capturas de pantalla y/o inspeccionando paquetes de IP.

Escribí muchos programas de prueba similares para Windows: utilicé ShellExecute, PostMessage, FindWindow, la biblioteca WinPcap, etc., así que sé cómo debería funcionar un programa así. Pero como nunca escribí aplicaciones para sistemas operativos móviles, ni siquiera sé si hay API y bibliotecas similares para iOS y Android.

Me gustaría saber por dónde empezar, es decir, qué SDK y herramientas de desarrollador podrían usarse para escribir una aplicación de este tipo. También estoy interesado en soluciones comerciales. Realmente apreciaria cualquier ayuda.

+1

"El script de prueba debe iniciar la aplicación para probar, manipular su GUI (rellenar cuadros de edición, botones, etc.)" no posible para iOS (puede ser posible con jailbreak), no estoy seguro acerca de Android – msk

+0

@MSK Gracias. Estas son malas noticias :(¿Es posible ejecutar una aplicación iOS en Mac OS X, desde un emulador, y automatizarla como si fuera una aplicación de escritorio? – kol

+1

Si usa una macro de mouse/teclado no veo por qué, para Android, puede consultar monkeyrunner http://developer.android.com/tools/help/monkeyrunner_concepts.html – mario

Respuesta

12

me gusta "Calabash-iOS/Calabash-Android" por LessPainful. Eso es lo mejor para mi

  • libre
  • disponible en iPhone y Android
  • de grabación y reproducción
  • prueba en el simulador nativo y

Ellos no tiene un IDE de interfaz gráfica de usuario.Son soluciones basadas en Rubí y es muy fácil de escribir la escritura de casos de prueba, así:

Then I swipe left 
And I wait until I don't see "Please swipe left" 
And take picture 

También puede ser

Then I touch the "login" button 

al toque de un botón, o

Then I fill in "placeholder" with "text to write" 

para escribir algo en un cuadro de texto.

Y el script puede ser compartido por Calabash-iOS y Calabash-Android. Esa característica es conveniente para los desarrolladores que hacen tanto la aplicación iPhoneApp como la de Android.

Pensé que MonkeyTalk era agradable, pero en realidad inestable, al menos en mi entorno.
A veces MonkeyIDE se bloqueó, por lo que tenemos que hacer la depuración de MonkeyTalk ...

Espero que esto te ayude.

+0

¡Muchas gracias! – kol

4

MonkeyTalk parece prometedor. Características del gorila lógica website:

  • gratuito & Open Source
  • Automated prueba de aplicaciones iOS, Android, HTML5 y Adobe Flex
  • multiplataforma de grabación y reproducción
  • nativa de prueba, web, o aplicaciones híbridas, en simuladores de iOS, emuladores Android o dispositivos reales (no se requiere jailbreaking)
  • Todo, desde simples "pruebas de humo" hasta sofisticadas operaciones de datos conjuntos de pruebas

rastreo de paquetes: iOS, Android, Android

3

Si las secuencias de comandos son su solución preferida en Android, puede importar y ejecutar scripts fácilmente después de instalar Scripting Layer for Android. Simplemente descargue el último archivo apk, importe el script y ejecútelo. Esto no está disponible en iOS pero la mitad de tu problema se puede resolver con esto.

4

Selenium ofrece controladores para dispositivos móviles y emuladores. Es un proyecto de Google. Ellos tienen buena documentación. Tiene un IDE para el prototipado rápido de suites de prueba y soporte para muchos lenguajes como ruby, PHP, C#, etc.,

1

Nosotros, en testmunk, escribimos una guía sobre cómo comenzar con la automatización móvil. La guía aborda aspectos específicos de Android y de iOS y enumera todas las herramientas que necesita. Se basa en el marco de código abierto de la calabaza.

El artículo está aquí: http://blog.testmunk.com/tutorial-for-automated-mobile-app-testing-calabash/ en este artículo también encontrarás enlaces a un par de aplicaciones de muestra.

Espero que esto ayude.

+0

El formato previsto de una respuesta SO está destinado a ser independiente. En realidad debe responder la pregunta. Los enlaces y las referencias externas son agradables como retrocesos, pero como mínimo deben resumirse sus partes relevantes. Sugeriría, como mínimo, responder la pregunta a través de una lista de SDK y utilidades mencionadas en su enlace (y quizás su relevancia). para probar) en el answe. – dho

-1

Sé que esta es una publicación anterior, pero cualquiera que lea en 2016 la primera opción para la automatización debe ser Appium (funciona tanto en iOS/Android). Todas las herramientas mencionadas anteriormente tienen que ser compiladas con la aplicación. Appium requiere una compilación con el código de la aplicación. Es muy popular con la variedad de soporte de lenguaje de programación (PHP/JAVA/RUBY/PYTHON). [Enlace]: appium.io y [Link]: https://github.com/appium/appium

Cuestiones relacionadas