Integración de MonkeyTalk en iOS
Para los que no sepan que es monkeyTalk, se trata de una herramienta para automatizar flujos de navegación en nuestras apps, es decir, nos sirve para testear la interfaz de usuario.
Para empezar lo primero que tenemos que hacer es crearnos una cuenta en CloudMonkey y después descargarnos el IDE desde este enlace.
Como este tutorial no trata sobre desarrollar en iOS voy a pediros que os descarguéis la app de ejemplo sobre la que vamos a probar MonkeyTalk y en la que ya están incluidas la librerías que hay añadir al proyecto así que solo será necesario incluirlas en caso de sigáis el tutorial con una app propia.
Descarga de app ejemplo aqui:
https://github.com/iAcisclo/MonkeyTalkDemo
Bien una vez descargado el zip desde la web tenemos dos cosas importante la carpeta /agents y la carpeta /MonkeyTalkIDE.
En la carpeta agents vamos a tener la librería que tenemos que incluir a nuestro target de pruebas y en la carpeta MonkeyTalkIDE tenemos el entorno que nos brinda CloudMonkey para crear nuestros proyectos de pruebas y scripts.
Lo primero que vamos hacer es duplicar el target de nuestra app que queremos probar, que va a ser el tarjeta donde incluiremos las siguientes librerías:
- libstdc++.6.0.9.dylib (del sistema)
- libsqlite3.dylib (del sistema)
- lCFNetwork.framework (del sistema)
- QuartzCore.framework (del sistema)
- libMonkeyTalk-2.0.9.a (se encuentra en la carpeta /agentes antes mencionada)
Una vez incluidas las librerías necesarias vamos a editar nuestro Scheme para renombrar el target:
y lo seleccionamos como target a ejecutar en la compilación:
Ahora vamos a abrir el IDE de monkeyTalk
Un vez abierto vamos a File/New/MonkeyTalk Project y creamos un nuevo proyecto:
Vamos a necesitar generar dos Scripts, uno para definir nuestros movimientos por la pantalla y otro para iniciar la simulación, así que vamos a File/New/Script y creamos un script que vamos a llamar TableViewTest que va a ser el que registre los movimientos en nuestra tabla:
Una vez hecho esto vamos a nuestro proyecto de Xcode y nos vamos a buildSettings de nuestro Project y buscamos en la sección de Linking la fila “other linker flags” y añadimos -lstdc++ y _all_load:
y pulsamos command-R para arrancarla en el simulador,cuando esté arrancada vamos al MonkeyTalk IDE y en un botón en la parte superior desplegamos las opciones de linkado seleccionando iOS Simulator:
En las trazas de la consola del IDE deberíamos ver “ Connection type set to: iOS Simulator” que nos indica que ya está linkado correctamente.
Bien vamos a grabar los movimientos que queremos testar así que en la barra superior del MonkeyTalk IDE tenemos un botón con un circulo redondo que indica “record”, lo pulsamos y nos vamos al simulador y hacemos los movimientos que queramos que se registren y cuando acabemos pulsamos en el botón cuadrado negro de Stop.
Como podréis comprobar en el Script TableViewTest se han registrado una serie de entradas que son los clics que hemos realizado en nuestra app:
Ahora vamos a crear un nuevo Script que llamaremos “Run” y nos vamos a su pestaña “MonkeyTalk” que se encuentra en la parte inferior del IDE y escribimos lo siguiente: Script TableViewTest.mt run
Y ya esta! ahora solo hay que pulsar sobre el botón play y el solito ejecutara los mismo movimientos que hemos registrado antes.
Como podéis ver es muy sencillo de configurar y nos ofrece la posibilidad de automatizar flujos completos de navegación de nuestra app.
ya realice todo el proceso, sin embargo en la aplicación de monkey talk no se me habilita el botón de «record», «play», «Stop».
El simulador de IOS ya esta linkeado con monkey talk.
¿Por que puede suceder esto? y ¿Cómo podría solucionarlo?
No puedo descargarme monkeyTalk. ¿Sabes lo que pasa?