mac 下 配置appium +ios真機環境


mac系統:10.11.6

xcode:7 

appium:1.5.3

iphone: 6 p

1.搭建 appium

安卓的環境:

1.jdk

2.sdk

3.appium

4.配置環境變量

mac下的環境變量是在 登錄用戶的 根目錄下 cd ~/ 下的 .bash_profile中 沒有自己 創建一個

8 # Setting PATH for Python 3.5
  9 # The original version is saved in .bash_profile.pysave
 10 PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"  #配置python3.5
 11 export PATH
 12 export PATH=${PATH}:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/platform-tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/build-t    ools/25.0.0  #配置sdk
 13 export ANDROID_HOME=/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk  #配飾安卓 
 14 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home  #配置java
~                                                                                     

 安裝 python3.5 ,(mac下 自帶python2):

mac 下的軟件包管理工具 為Homebrew,所以下載 Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"(因為網址會經常變化,多關注官網 http://brew.sh)
安裝完以后 ,輸入 brew -v 查看版本:

   Homebrew 1.1.0

   Homebrew/homebrew-core (git revision 1a39; last commit 2016-11-07

說明成功

 

用它來安裝pytho3.5

直接輸入 brew install python3.5

安裝成功后 輸入 python3

能進入python編輯頁面則是 安裝成功

 

5.安裝pip 進到 python3.5 的目錄 下載 pip brew install pip 

下載完成后 就能用pip 下載 python 的 一些擴展包  比如 appium-python-client

我python3.5的 pip路徑為 :

/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages(可以用which找,pip xxxx在這里執行)

以上是安卓的 一些環境 

以下是ios需要的 :

安裝 xcode7 : 這里面有一個坑  ,就是 開始我安裝的 xcode8 ,因為當我ios 啟動真機的時候:報:Could not find Automation.tracetemplate in any of the following locations /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate….

需要先使用Xcode的automation,去保存一份模板。但是Xcode8將automation從Xcode->Open Developer Tool->Instrument中去掉了。所以要從Xcode8切換回Xcode7(可以在安裝一個Xcode7兩者共存)。 

這個 真是 折騰了 我好久!!

 

安裝 node

brew install node 

 

安裝 appium

1.可以用終端安裝

2.使用gui安裝  

 

我因為npm 的下載速度太慢 所以 我采取的是第二種方式 ,直接從官網上直接下載 1.5.3 mac版本 直接安裝

安裝好后 啟動appium

點擊 紅色按鈕檢查 環境 安裝的 是否正常


ok  環境基本搭建好了 開始弄ios真機 ,后面 很多坑:

先說下 appium 要想用真機調試的 前置條件:

1.在真機上跑APPIUM的前提是,手機應該注冊成開發者手機,這樣就可以在Settings的頁面看到 Developer(開發者)這個選項了。

 developer選項里的 Enable UI Automation開啟,不然會報錯:

selenium.common.exceptions.WebDriverException: Message: u'A new session could not be created. (Original error: Instruments crashed on startup)' 

(這個錯誤 可能還和 app簽名有關 ,如果換手機:只要把用這個手機的簽名重新編譯一個APP,就可以了。)

2.開發給你裝的 必須是 debug包 

3.需要有BundleID 找開發要

4.UDID :手機的id 可以用itools等軟件看,當然 xcode也是可以看的

5.mac能監聽到手機的app包  :

ideviceinstaller -l 

顯示如下:

 很可能 你的 ideviceinstaller版本太低 或者 沒有 ,會報錯找不到 這個 ideviceinstaller

ok:

刪除老的並下載最新的 :

brew uninstall ideviceinstaller

brew install ideviceinstaller(網上說 有這樣的 brew install --HEAD ideviceinstaller :我沒有成功)

就OK了

然后這時候 還可能監聽不到:ideviceinstaller Could not connect to lockdownd. Exiting.

appium 會報的錯誤為: 安裝app失敗 大概就是: install xxx app faile

這時候 運行:sudo chmod 777 /var/db/lockdown/

 

6.找到 xocde的版本號 ,有時候會報找不到 xcode的版本號:運行:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

7.跑真機,測試機不能鎖屏,不然會報錯

ok這些 都是我遇到的 問題 ,這些都解決后 ,就能跑起來了

 

python啟動腳本如下:
 
from appium import webdriver
 
desired_caps['platformName']='ios'
desired_caps['platformVersion'] = '9.3.5'
desired_caps['bundleId'] = 'com.wuba.zhuanzhuan'
desired_caps['app'] = os.path.abspath('/Users/a58/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/zhuanzhuan.app')
 
|關鍵字|描述|實例|
|----|-----------|-------|
|`automationName`|你想使用的自動化測試引擎|`Appium` (默認) 或 `Selendroid`|
|`platformName`|你要測試的手機操作系統|`iOS`, `Android`, 或 `FirefoxOS`|
|`platformVersion`|手機操作系統版本|例如: `7.1`, `4.4`|
|`deviceName`|使用的手機類型或模擬器類型|`iPhone Simulator`, `iPad Simulator`, `iPhone Retina 4-inch`, `Android Emulator`, `Galaxy S4`, 等。在 iOS 上,這個關鍵字的值必須是使用 `instruments -s devices` 得到的可使用的設備名稱之一。在 Android 上,這個關鍵字目前不起作用。|
|`app`|`.ipa` or `.apk`文件所在的本地絕對路徑或者遠程路徑,也可以是一個包括兩者之一的`.zip`。 Appium會先嘗試安裝路徑對應的應用在適當的真機或模擬器上。針對Android系統,如果你指定`app-package`和`app-activity`(具體見下面)的話,那么就可以不指定`app`。 **會與 `browserName` 沖突** |比如`/abs/path/to/my.apk`或`http://myapp.com/app.ipa`|
|`browserName`|需要進行自動化測試的手機 web 瀏覽器名稱。如果是對應用進行自動化測試,這個關鍵字的值應為空。|iOS 系統上可以用 'Safari' ,Android 系統上可以用 'Chrome', 'Chromium', 或 'Browser'。|
|`newCommandTimeout`|設置命令超時時間,單位:秒。達到超時時間仍未接收到新的命令時 Appium 會假設客戶端退出然后自動結束會話。|比如 `60`
|`autoLaunch`|Appium是否需要自動安裝和啟動應用。默認值`true`|`true`, `false`|
|`language`|  (Sim/Emu-only) 設定模擬器 ( simulator / emulator ) 的語言。|如: `fr`|
|`locale`|  (Sim/Emu-only) 設定模擬器 ( simulator / emulator ) 的區域設置。|如: `fr_CA`|
|`udid`| 連接的物理設備的唯一設備標識|如: `1ae203187fc012g`|
|`orientation`| (Sim/Emu-only) 在一個設定的方向模式中開始測試|`LANDSCAPE` (橫向)  或 `PORTRAIT` (縱向) |
|`autoWebview`| 直接轉換到 WebView 上下文。 默認值 `false`、|`true`, `false`|
|`noReset`|不要在會話前重置應用狀態。默認值`false`。|`true`, `false`|
|`fullReset`|(iOS) 刪除整個模擬器目錄。(Android) 通過卸載——而不是清空數據——來重置應用狀態。在 Android 上,這也會在會話結束后自動清除被測應用。默認值 `false`|`true`, `false`|
 
wd = webdriver.Remote(' http://127.0.0.1:4723/wd/hub', desired_caps)
 
各項與Android那里的介紹一致。
但是app那里,如果使用的是模擬器,只能用.app文件而不能用.ipa文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM