{"id":1347,"date":"2017-03-26T14:38:43","date_gmt":"2017-03-26T14:38:43","guid":{"rendered":"http:\/\/sophyonline.com\/blog\/?p=1347"},"modified":"2020-08-21T18:45:49","modified_gmt":"2020-08-21T18:45:49","slug":"appium-ios","status":"publish","type":"post","link":"http:\/\/sophyonline.com\/blog\/2017\/03\/appium-ios\/","title":{"rendered":"Configuraci\u00f3n de Appium para iOS"},"content":{"rendered":"<h3>Configuraci\u00f3n Appium iOS<\/h3>\n<p>1. Instalar Appium&#8230;en mi caso con sudo (siguiendo las instrucciones de: <a href=\"https:\/\/github.com\/appium\/appium\/blob\/master\/docs\/en\/appium-setup\/running-on-osx.md\">https:\/\/github.com\/appium\/appium\/blob\/master\/docs\/en\/appium-setup\/running-on-osx.md<\/a>)<\/p>\n<pre><code class=\"language-sh\">sudo npm install -g appium<\/code><\/pre>\n<p>2. Instalar Appium Instruments (Without delay), este enlace web se explica las razones <a href=\"https:\/\/github.com\/appium\/appium\/blob\/master\/docs\/en\/advanced-concepts\/iwd_xcode7.md\">https:\/\/github.com\/appium\/appium\/blob\/master\/docs\/en\/advanced-concepts\/iwd_xcode7.md<\/a> y las instrucciones<\/p>\n<pre><code class=\"language-sh\">git clone https:\/\/github.com\/appium\/appium-instruments.git<\/code><\/pre>\n<p>En mi caso, cree un espacio para almacenar el repo<\/p>\n<p><img decoding=\"async\" width=\"686\" alt=\"screen shot 2016-08-04 at 13 52 55\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743457\/01e4cdcc-d503-11e6-818e-a7f3c9d5653d.png\"><\/p>\n<p>3. Luego hay que ejecutar el comando:<\/p>\n<pre><code class=\"language-sh\">sh &lt;appium-instruments&gt;\/bin\/xcode-iwd.sh &lt;path to xcode&gt; &lt;path to appium-instruments&gt;<\/code><\/pre>\n<p><img decoding=\"async\" width=\"863\" alt=\"screen shot 2016-08-04 at 13 53 01\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743469\/2d8e740a-d503-11e6-8cd3-23c9bb475e4c.png\"><\/p>\n<p>4. Hay que autorizar al ordenador para utilizar iOS<\/p>\n<pre><code class=\"language-sh\">sudo authorize-ios<\/code><\/pre>\n<p><img decoding=\"async\" width=\"860\" alt=\"screen shot 2016-08-04 at 13 53 08\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743473\/371d7d22-d503-11e6-9ce2-dfed7b0aedc8.png\"><\/p>\n<p>5. Instalar nappium-doctor <a href=\"https:\/\/github.com\/appium\/appium-doctor\">https:\/\/github.com\/appium\/appium-doctor<\/a><\/p>\n<pre><code class=\"language-sh\">npm install appium-doctor -g<\/code><\/pre>\n<p>6. Comprobamos que todas las dependencias de appium est\u00e1n ok<\/p>\n<pre><code class=\"language-sh\">appium-doctor --ios<\/code><\/pre>\n<p>Nos aparecera algo por el estilo:<a href=\"https:\/\/github.com\/appium\/appium-doctor\"><\/a><\/p>\n<p><img decoding=\"async\" width=\"712\" alt=\"screen shot 2016-08-04 at 13 53 14\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743478\/4e732dc8-d503-11e6-8569-05e6d022fe2b.png\"><\/p>\n<p>En mi caso, no ten\u00eda CLT instalado, al haber actualizado a una nueva versi\u00f3n de Xcode&#8230; por lo que respondemos a s\u00ed, para que el doctor nos instale lo que haga falta :p<\/p>\n<p>Al finalizar, volvemos a ejecutar y nos aparecer\u00e1 un bonito print de que todo est\u00e1 correctamente instalado<\/p>\n<p><img decoding=\"async\" width=\"777\" alt=\"screen shot 2016-08-04 at 13 53 20\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743480\/5268a3ae-d503-11e6-8dcc-62921232dd96.png\"><\/p>\n<p>Existe una app de Appium, que podremos instalar para tener una GUI <a href=\"https:\/\/github.com\/appium\/appium-dot-app\">https:\/\/github.com\/appium\/appium-dot-app<\/a> que seguir\u00e9 comentando en el resto de pasos a continuaci\u00f3n:<\/p>\n<p>7. Instalamos la \u00faltima versi\u00f3n de <a href=\"https:\/\/bitbucket.org\/appium\/appium.app\/downloads\/appium.dmg\">Appium.ion<\/a>, y ejecutamos, arrastramos a Applications<\/p>\n<p>8. Ahora seleccionamos el bot\u00f3n de engranaje y configuramos la direcci\u00f3n del servidor local al <strong>127.0.0.1<\/strong> y el puerto al <strong>4723<\/strong><\/p>\n<p><img decoding=\"async\" width=\"626\" alt=\"screen shot 2016-08-04 at 13 53 25\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743481\/53f72830-d503-11e6-8218-1ab938be748c.png\"><\/p>\n<p>9. Ejecutamos el servidor de Appium haciendo click en Launch<\/p>\n<p><img decoding=\"async\" width=\"660\" alt=\"screen shot 2016-08-04 at 13 53 33\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743490\/6a93bfb8-d503-11e6-945a-cfb27a6ced58.png\"><\/p>\n<p>10. Una vez arrancado el servidor, podremos ejecutar la app haciendo click sobre la lupa<\/p>\n<p>11. Finalmente nos aparecer\u00e1 la secci\u00f3n de insrtrumentos donde podremos tener acceso a los elementos de la app<\/p>\n<p><img decoding=\"async\" width=\"887\" alt=\"screen shot 2016-08-04 at 13 53 41\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743492\/6cd4e752-d503-11e6-84af-f4312c0b7481.png\"><\/p>\n<p><a href=\"https:\/\/github.com\/appium\/appium-dot-app\"><\/a><\/p>\n<h3>Para ejecutar desde un dispositivo:<\/h3>\n<ol>\n<li>Podemos lanzar desde un terminal el server de appium, donde pasamos como par\u00e1metros la versi\u00f3n de la plataforma iOS, el nombre del bundle de la app, el nombre del dispositivo, etc. M\u00e1s informaci\u00f3n de los par\u00e1metros del servidor aqu\u00ed: : <a href=\"https:\/\/github.com\/appium\/appium\/blob\/master\/docs\/en\/writing-running-appium\/server-args.md\">Server Arguments<\/a><\/li>\n<\/ol>\n<pre><code class=\"language-sh\">'\/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\"}'<\/code><\/pre>\n<p>1.2 Y desde la GUI podemos hacerlo de varias formas:<\/p>\n<ul>\n<li>Con un IPA, se usa normalmente cuando queremos full reset de la app.<br \/>\nAbrimos la app de Appium y hacemos click al bot\u00f3n de la manzana,seleccionamos <strong>App Path<\/strong> y buscamos el IPA. Colocamos el resto de par\u00e1metros: <strong>Bundle ID<\/strong> de nuestra app, <strong>Force Device<\/strong>, <strong>Plataform Version<\/strong> (iOS version) y <strong>UUID<\/strong> del dispositivo y seleccionamos full reset.<\/li>\n<\/ul>\n<p><img decoding=\"async\" width=\"882\" alt=\"screen shot 2016-08-04 at 13 53 48\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743494\/71f30b42-d503-11e6-8a24-b9fb440a07e7.png\"><\/p>\n<ul>\n<li>Sin IPA, destildamos la opci\u00f3n <strong>App Path<\/strong> y el resto lo dejamos como la opci\u00f3n con IPA, eso s\u00ed importante tener la app instalada en el dispositivo.<\/li>\n<\/ul>\n<p><img decoding=\"async\" width=\"894\" alt=\"screen shot 2016-08-04 at 13 53 56\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743495\/71f363da-d503-11e6-8071-952a5842d5e3.png\"><\/p>\n<p>2. Seleccionamos la lupa del GUI de Appium y esperamos a ver la respuesta<\/p>\n<p>Si llegaramos a tener alg\u00fan problema con el dispositivo instalaremos con hombrew <strong>ideviceinstaller<\/strong>&#8230;sin embargo, si hemos instalado appium con npm, ya deber\u00edamos tenerlo instalado.<\/p>\n<pre><code class=\"language-sh\">brew install --HEAD ideviceinstaller\n<\/code><\/pre>\n<p>3. Nos aparecer\u00e1 la misma pantalla que en el paso 12 para la manipulaci\u00f3n de elementos de la aplicaci\u00f3n<\/p>\n<h2>Ejecuci\u00f3n de Test<\/h2>\n<p>Podemos leer este tutorial donde emplean Java como lenguaje de ejecuci\u00f3n de los test:<br \/>\nhttps:\/\/help.testobject.com\/docs\/guides\/appium-osx-ios\/<\/p>\n<h2>Nota<\/h2>\n<p>Con anterioridad, Appium y Calabash, nos requerian activar la opci\u00f3n 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.<\/p>\n<p><img decoding=\"async\" width=\"483\" alt=\"screen shot 2016-08-04 at 13 54 10\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743496\/72025908-d503-11e6-967c-7398e40b704e.png\"><br \/>\n<img decoding=\"async\" width=\"483\" alt=\"screen shot 2016-08-04 at 13 54 17\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743530\/4e628594-d504-11e6-96c0-18b7b3cece3a.png\"><br \/>\n<img decoding=\"async\" width=\"479\" alt=\"screen shot 2016-08-04 at 13 54 26\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/724536\/21743500\/7962d3bc-d503-11e6-85b8-0c25b437d474.png\"><\/p>\n<h2>Enlaces revisados:<\/h2>\n<p>https:\/\/blogs.technet.microsoft.com\/antino\/2014\/09\/22\/how-to-set-up-a-basic-working-appium-test-environment\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configuraci\u00f3n Appium iOS 1. Instalar Appium&#8230;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 <a class=\"read-more\" href=\"http:\/\/sophyonline.com\/blog\/2017\/03\/appium-ios\/\">&hellip;&nbsp;<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[11,10],"tags":[12,13,14],"class_list":["post-1347","post","type-post","status-publish","format-standard","hentry","category-appium","category-testing","tag-appium","tag-test","tag-testing"],"_links":{"self":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/1347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/comments?post=1347"}],"version-history":[{"count":11,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/1347\/revisions"}],"predecessor-version":[{"id":1438,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/1347\/revisions\/1438"}],"wp:attachment":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/media?parent=1347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/categories?post=1347"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/tags?post=1347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}