¿Existe alguna biblioteca existente para Automatización de controles de IU en IOS

Soy muy nuevo en la progtwigción de IOS. Tengo una tarea para encontrar si puedo automatizar mi UI para la testing. Esto es lo que quiero hacer:

He visto FoneMonkey pero parece que necesita la interacción del usuario grabada manualmente en cada dispositivo.

Cualquier pensamiento o sugerencia son bienvenidos.

  • Lalith

Hola, Lalith, he estado creando algunas testings de automation de interfaz de usuario para una aplicación y está funcionando muy bien. Aunque tiene algunos trucos, creo que debería echar un vistazo a estos enlaces:

http://answers.oreilly.com/topic/1646-how-to-use-uiautomation-to-create-iphone-ui-tests/

http://alexvollmer.com/posts/2010/07/03/working-with-uiautomation/

Si necesita más ayuda, simplemente hágamelo saber. 🙂

Edit1:

En su viewDidLoad de su viewController puede agregar algo como esto:

- (void)viewDidLoad { [super viewDidLoad]; //(Your code...) // I set it to start after 5 seconds... [self performSelector:@selector(startTest) withObject:nil afterDelay:5]; } -(void)startTest{ //took this from the link you posted [myButton sendActionsForControlEvents:UIControlEventTouchUpInside]; } 

Editar 2:

 if([myTextField canBecomeFirstResponder]){ [myTextField becomeFirstResponder]; } 

Apple tiene un marco para la automation basada en javascript a través de instrumentos y las API de accesibilidad. No es 100% increíble lo mejor, pero vale la pena echarle un vistazo.

Instrumentos + tocar el teléfono con el dedo es una buena manera de hacer un análisis de performance "en el mundo real" también.

En general, no he encontrado que valga la pena automatizar las testings de interfaz de usuario. La interfaz de usuario generalmente cambia demasiado para hacer que una especificación funcional funcione less de lo que vale. YMMV.

Una vez que llegue a un punto en el que se sienta cómodo, miraría este marco KIF .

KIF, que significa Keep It Functional, es un marco de testing de integración de iOS. Permite una fácil automation de las aplicaciones de iOS aprovechando los attributes de accesibilidad que el sistema operativo pone a disposition para aquellos con discapacidades visuales.

Puede crear una UIView , a la que agrega "hijos" o subvistas. Las subvisualizaciones contienen la interfaz de usuario de la aplicación.

La vista primaria está configurada para que sea transparente, y captura los toques y los registra. Una vez que se registra, el evento táctil se pasa a las subvistas. Puede enviar sus toques de testing aquí.

Debido a que la vista primaria es transparente, el usuario nunca la ve, pero sigue capturando y procesando events táctiles.

Configurar esto implicaría una buena cantidad de subclasss, y algunas classs (como UIWebView ) introducen dificultades. Pero podría ser factible.

Gracias por toda tu ayuda. Como ya he mencionado en un comentario, debería poder ejecutarlos en el dispositivo iOS como independiente. Podemos usar sendActionsForControlEvents como se describe aquí . Esto es todo lo que necesito por ahora.

Puede considerar SeeTest de Experitest , viene con capacidades de grabación y reproducción muy fáciles.

He estado usando IMAT con bastante éxito para la automation de iOS.

https://code.intuit.com/sf/sfmain/do/viewProject/projects.ginsu

Motivos que me gustan:

  1. Está integrado en la parte superior de la automation de javascript que Apple proporciona y puedes iniciarlo desde Instruments o la línea de command.
  2. Proporciona un test-runner (piense en N-Unit) para la automation de javascript iOS
  3. Proporciona un mecanismo limpio para recuperar elementos de interfaz de usuario (similar a un map de objects utilizado por otras herramientas de automation)
  4. No requiere cambios en el código de su aplicación (no es necesario build con una biblioteca determinada o instrumentar su código)
  5. Proporciona un informe similar a JUnit después de una ejecución de testing al leer el file Plist y esto lo recoge mi herramienta de CI (Teamcity, Jenkins, CruiseControl)