Configuración Appium iOS
1. Instalar Appium…en mi caso con sudo (siguiendo las instrucciones de: https://github.com/appium/appium/blob/master/docs/en/appium-setup/running-on-osx.md)
sudo npm install -g appium
2. Instalar Appium Instruments (Without delay), este enlace web se explica las razones https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/iwd_xcode7.md y las instrucciones
git clone https://github.com/appium/appium-instruments.git
En mi caso, cree un espacio para almacenar el repo
3. Luego hay que ejecutar el comando:
sh <appium-instruments>/bin/xcode-iwd.sh <path to xcode> <path to appium-instruments>
4. Hay que autorizar al ordenador para utilizar iOS
sudo authorize-ios
5. Instalar nappium-doctor https://github.com/appium/appium-doctor
npm install appium-doctor -g
6. Comprobamos que todas las dependencias de appium están ok
appium-doctor --ios
Nos aparecera algo por el estilo:
En mi caso, no tenía CLT instalado, al haber actualizado a una nueva versión de Xcode… por lo que respondemos a sí, para que el doctor nos instale lo que haga falta :p
Al finalizar, volvemos a ejecutar y nos aparecerá un bonito print de que todo está correctamente instalado
Existe una app de Appium, que podremos instalar para tener una GUI https://github.com/appium/appium-dot-app que seguiré comentando en el resto de pasos a continuación:
7. Instalamos la última versión de Appium.ion, y ejecutamos, arrastramos a Applications
8. Ahora seleccionamos el botón de engranaje y configuramos la dirección del servidor local al 127.0.0.1 y el puerto al 4723
9. Ejecutamos el servidor de Appium haciendo click en Launch
10. Una vez arrancado el servidor, podremos ejecutar la app haciendo click sobre la lupa
11. Finalmente nos aparecerá la sección de insrtrumentos donde podremos tener acceso a los elementos de la app
Para ejecutar desde un dispositivo:
- Podemos lanzar desde un terminal el server de appium, donde pasamos como parámetros la versión de la plataforma iOS, el nombre del bundle de la app, el nombre del dispositivo, etc. Más información de los parámetros del servidor aquí: : Server Arguments
'/Applications/Appium.app/Contents/Resources/node/bin/node' '/usr/local/lib/node_modules/appium/build/lib/main.js' --address "127.0.0.1" --pre-launch --debug-log-spacing --default-capabilities '{"platformVersion":"9.3.1"}' --default-capabilities '{"platformName":"iOS"}' --default-capabilities '{"app":"com.test.something"}' --default-capabilities '{"udid":" youruuidhere"}' --default-capabilities '{"showIOSLog":true}' --default-capabilities '{"deviceName":"iPhone Name"}'
1.2 Y desde la GUI podemos hacerlo de varias formas:
- Con un IPA, se usa normalmente cuando queremos full reset de la app.
Abrimos la app de Appium y hacemos click al botón de la manzana,seleccionamos App Path y buscamos el IPA. Colocamos el resto de parámetros: Bundle ID de nuestra app, Force Device, Plataform Version (iOS version) y UUID del dispositivo y seleccionamos full reset.
- Sin IPA, destildamos la opción App Path y el resto lo dejamos como la opción con IPA, eso sí importante tener la app instalada en el dispositivo.
2. Seleccionamos la lupa del GUI de Appium y esperamos a ver la respuesta
Si llegaramos a tener algún problema con el dispositivo instalaremos con hombrew ideviceinstaller…sin embargo, si hemos instalado appium con npm, ya deberíamos tenerlo instalado.
brew install --HEAD ideviceinstaller
3. Nos aparecerá la misma pantalla que en el paso 12 para la manipulación de elementos de la aplicación
Ejecución de Test
Podemos leer este tutorial donde emplean Java como lenguaje de ejecución de los test:
https://help.testobject.com/docs/guides/appium-osx-ios/
Nota
Con anterioridad, Appium y Calabash, nos requerian activar la opción Accesibilty Options en el simulador donde podremos ver los elementos de accesibilidad remarcados en colorines, en la actualidad, parece que no es necesario, pero igualamente se hace referencia a ello.
Enlaces revisados:
https://blogs.technet.microsoft.com/antino/2014/09/22/how-to-set-up-a-basic-working-appium-test-environment/
Thank you, helped a lot.
Great blog! for iOS dev 🙂