【轉1】Appium 1.6.3 在Xcode 8, iOS 10.2(模擬器)測試環境搭建 經驗總結

來源:互聯網
上載者:User

標籤:ice   tar   rac   執行   官方   string   sudo   開啟終端   目錄   

Appium 1.6.3 在Xcode 8, iOS 10.2(模擬器)測試環境搭建 經驗總結

       關於 Appium 1.6.3 在Xcode 8, 10.2 的iOS模擬器上的問題很多,本人也差點放棄,最終成功運行,確實不容易,故此寫篇文章,供大家參考,讓大家少走彎路。
一、 安裝Appium
(1) 先安裝node-js,然後通過node-js命令安裝 Appium

     在https://nodejs.org/en/download/ 下載 macOS Installer (.pkg) 安裝,原因是簡單、省心,不用配置環境變數,點擊按照嚮導完成即可。
     安裝完後,在命令列終端 npm -v ,查看 node-js版本,目前是  3.10.10
(2)安裝 Appium
    命令列終端 npm install -g appium
著個需要執行一段時間,大家需要有耐心。
可能出現的問題:等待過程中卡著不動, 建議 終止安裝 (control+c),然後重試。如果還不行,用更高的許可權安裝 sudo npm install -g appium 基本上可以安裝成功。
二、 安裝相關的依賴
(1)  安裝 homebrew (關於homebrew介紹,見 安裝 homebrew)
Homebrew的安裝非常簡單,開啟終端複製、粘貼以下命令,斷行符號,搞定(請放心使用,原汁原味的官方安裝方法搬運)
ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
提示如下,表示安裝成功了:
==> Next steps:
- Run `brew help` to get started
- Further documentation: 
    http://docs.brew.sh
(2)安裝carthage,通過 homebrew 安裝
 brew install carthage
(3)安裝 webpack
    npm i -g webpack
 著個非常重要,和WebDriverAgent相關,沒有這個 會報錯:Unable to create new remote session
 安裝 webpack 報錯:
npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "-g" "webpack"
npm ERR! node v6.10.1
npm ERR! npm  v3.10.10
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: ‘EACCES‘,
npm ERR!   syscall: ‘access‘,
npm ERR!   path: ‘/usr/local/lib/node_modules‘ }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "-g" "webpack"
npm ERR! node v6.10.1
npm ERR! npm  v3.10.10
npm ERR! path npm-debug.log.2786948488
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open

npm ERR! Error: EACCES: permission denied, open ‘npm-debug.log.2786948488‘
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, open ‘npm-debug.log.2786948488‘
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!  code: ‘EACCES‘,
npm ERR!   syscall: ‘open‘,
npm ERR!   path: ‘npm-debug.log.2786948488‘ }
npm ERR!
npm ERR!Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/npm-debug.log

錯誤意思是 /usr/local/lib/node_modules 目錄許可權被拒絕

解決方案:進入/usr/local/lib/node_modules 執行: sudo chmod -R a+rwx .  (給這個目錄下所有檔案,檔案夾讀寫可執行許可權)

(4)安裝 WebDriverAgent相關依賴

   進入目錄:cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/

建立目錄:mkdir -p Resources/WebDriverAgent.bundle

   執行: ./Scripts/bootstrap.sh -d
至此mac端的相關依賴安裝結束。
三、iOS 10.2 模擬器

          需要安裝iOS 10.2 的 iPhone 7 模擬器(本文就是針對10.2 iOS模擬器測試,Xcode是 8.2.1)。
四、Appium 測試開始,基於Java。
(1)需要下載最新的 selenium-server-standalone-3.3.1.jar;java-client-5.0.0-BETA6.jar,並加入eclise項目中引用中去。

(2)建立一個Unit測試,如:

 

[java] view plain copy
  1. package com.conversant.cheersApptest;  
  2.   
  3. import io.appium.java_client.ios.IOSDriver;  
  4. import io.appium.java_client.remote.MobileCapabilityType;  
  5. import org.openqa.selenium.By;  
  6. import org.openqa.selenium.remote.DesiredCapabilities;  
  7. import java.net.MalformedURLException;  
  8. import java.net.URL;  
  9. import java.util.concurrent.TimeUnit;  
  10. import junit.framework.TestCase;  
  11.   
  12. public class appCheersTest1 extends TestCase{  
  13.     private IOSDriver wd;  
  14.     public appCheersTest1(){  
  15.           
  16.     }  
  17.     public void test1() throws InterruptedException{  
  18.         DesiredCapabilities capabilities = new DesiredCapabilities();  
  19.         capabilities.setCapability("appium-version", "1.6");  
  20.         capabilities.setCapability("platformName", "iOS");  
  21.         capabilities.setCapability("platformVersion", "10.2");  
  22.         capabilities.setCapability("deviceName", "iPhone 7");  
  23.         capabilities.setCapability("newCommandTimeout",60000);  
  24.         capabilities.setCapability("launchTimeout",60000);  
  25.         capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");  
  26.         capabilities.setCapability("app", "/Users/***/Desktop/cheers_appium/cheersApp.app");  
  27.           
  28.         try {  
  29.             wd =new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);  
  30.         } catch (MalformedURLException e) {  
  31.             // TODO Auto-generated catch block  
  32.             e.printStackTrace();  
  33.         }  
  34.         wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);  
  35.         System.out.println("**********************Cheers Li Appium Testing ******************************");      
  36.           
  37.         wd.close();  
  38.     }  
  39. }  

 

(3)啟動Appium server。命令終端: appium

如:

[Appium] Welcome to Appium v1.6.3
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

(4) 運行測試,就可在模擬器中看到效果。
五、總結

最終發現很多問題,都是許可權和依賴包的問題,這些問題解決了,自然Appium 1.6.3 在Mac Xcode8.2.1和iOS 10.2的模擬器中就能順利運行起來。

過程中遇到問題基本有:(1)在eclipse執行測試,模擬器不斷的重啟 (2)模擬器啟動起來,提示 串連不到模擬器 (3)模擬器中 APP不能啟動

大家如果按照我這篇文章的操作,一般情況下,應該沒有什麼問題。

最後說明下: Xcode8以上,UI automation 被移除掉了,Xcode 8以後,從Appium1.6.0的應用的測試 是基於 facebook的 WebDriver 協議的XCUITest。

這篇文章對我協助很大,大家也可參考:

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session [SOLVED] 

  

【轉1】Appium 1.6.3 在Xcode 8, iOS 10.2(模擬器)測試環境搭建 經驗總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.