1. 程式人生 > >Appium在MAC上搭建appium1.7筆記(真機)

Appium在MAC上搭建appium1.7筆記(真機)

自己研究好久ios10的真機測試今天算是成功了。新手發帖,僅供參考。

  • 1,有一個MAC機器,或者虛擬機器,能夠聯網,要求Xcode8+ MAC系統10.11+(我用的是Xcode9 , MAC系統10.12)有一個Apple ID賬號
  • 2,安裝brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 3,安裝libimobiledevice
brew install libimobiledevice --HEAD 
  • 4,安裝carthage
brew install carthage
  • 6,安裝cnpm(由於某種原因,直接用npm下載安裝會有好多網路問題,安裝淘寶的cnpm要比npm好用) https://npm.taobao.org/
npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 7,安裝ios-deploy
cnpm install -g ios-deploy
  • 8,安裝xcpretty 如果安裝出錯,切換個目錄再試試
gem install xcpretty
  • 10,安裝appium1.7.1(到發帖為止,最新版本是1.7.1,要其他版本的跟上"@版本號"就行了)這一步驟若出現安裝jDK彈出框忽略就好;如果想裝appium-desktop,可忽略此條,跳到第16點。
cnpm install -g appium

1-10 以上安裝不要在root使用者下安裝。若出現許可權問題,進入root使用者將檔案許可權更改下。然後退出root使用者繼續安裝即可

chmod -R 777 pathForFile

坑1:會出現安裝失敗,許可權的問題,不切換root使用者的話,可以在每條命令前加sudo,以下命令也一樣

坑2:我的Xcode不是在appstore下載的,是在網上下載的安裝包安裝的,所以安裝過程中如果提示需要安裝xcode,可以嘗試設定下xcode的路徑:sudo xcode-select --switch /你自己安裝的路徑/Xcode.app/Contents/Developer;

檢視xcode安裝路徑可以在 應用程式→xcode.app 單擊右鍵“顯示簡介”→“位置”檢視

  • 11,安裝appium-xcuitest-driver依賴        進入WebDriverAgent安裝目錄。執行bootstrap
cd  /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent (如果WebDriverAgent 所在路徑和此不同,請自行查詢)
mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh

       在執行sh ./Scripts/bootstrap.sh很可能會有因為咱們大中華區域網而網路連線失敗。方法就是去App store下載了一個VPN代理軟體,我下了一個評分最多且免費的,的確很好用。我就不說軟體名稱了。
       再次執行sh ./Scripts/bootstrap.sh 無報錯就OK了

  • 12,用Xcode開啟WebDriverAgent,並且編譯
           進入WebDriverAgent 資料夾,可用如下方法
           雙擊WebDriverAgent.xcodeproj開啟此專案,這個專案由facebook開源 有興趣的話可以研究,可自行百度搜索。在這裡我們的目的就是更改一些配置,讓他能夠編譯成功,首先編譯之前你得有 ID賬號,並且登入你的Xcode賬戶。當然如果有開發者賬號那麼會更好,不過我買不起,但是基於Xcode7之後,蘋果放開了真機除錯,所以沒有開發者賬號。也能在真機上跑起來,直接上截圖。
           編譯WebDriverAgentLib
           編譯WebDriverAgentRunner
           
           若果編譯的過程中有語法錯誤,應該是11步沒有安裝好
坑:如果開啟工程時提示檔案需要解鎖,可以看下這篇文章:http://blog.csdn.net/lizitao/article/details/39475103;編譯的時候要插入真機,並在Xcode中選擇真機(頂部播放\停止按鈕右邊點選可在列表中選擇),否則配置WebDriverAgentRunner簽名時會有錯誤;用虛擬機器時,要把虛擬機器的usb硬體配置為相容usb2.0才可以識別到手機,連線上手機itunes會自動彈出來,如果有彈框詢問就選擇確認,手機上選擇信任電腦;如果簽名的有錯誤是關於BundleID的話,修改成別的BundleID。
  • 13,建立服務WebDriverAgent (手機和MAC都在同一個網段下,且都能連線外網)
           關閉Xcode,進入WebDriverAgent 資料夾
cd  /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真機的udid' test

       執行到最後會發現


       而iphone多了一個WebDriverAgentRunner的app。手動啟動那個app的時候

       原因是我們手機並並沒有信任這個apple id的開發者,到設定-通用-裝置管理(描述檔案) 信任你的apple id就可以了。再次執行上述命令,看到如下圖,就成功了,
  • 14,執行appium
appium -p 4723
JAVA:  DesiredCapabilities cap = new DesiredCapabilities();
 cap.SetCapability(MobileCapabilityType.AutomationName, "XCUITest");
 cap.SetCapability(MobileCapabilityType.PlatformVersion, "10.3.2");
 cap.SetCapability(MobileCapabilityType.DeviceName, "iPhone 7");
 cap.SetCapability(MobileCapabilityType.PlatformName, "iOS");
 cap.SetCapability(MobileCapabilityType.Udid, "c8ff753c91ee2eda9be215e4109513c75b5b30c9");
 cap.SetCapability(MobileCapabilityType.NewCommandTimeout, 3600);
 cap.SetCapability("bundleId", "com.test.app");
 IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(new Uri("http://192.168.0.20:4724/wd/hub"), cap, TimeSpan.FromSeconds(120));Python:# -*- coding: utf-8 -*-
from time import sleep
from appium import webdriver
desired_caps={}
desired_caps['automationName']='XCUITest'
desired_caps['platformName']='IOS'
desired_caps['platformVersion']='10.0.2'
desired_caps['deviceName']='iPhone 5'
desired_caps['bundleId']='com.ctrip.inner.wireless'
desired_caps['udid']='80ec716e5553e4f5a6a24ea2e0b63d3ca4bc4c5c'
desired_caps['newCommandTimeout']=3600
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
sleep(6)
driver.quit()

經過我的驗證,用appleId編譯WDA程式碼的時候需要連結外網。啟動WDA服務的時候手機需要連結到外網。WDA服務啟動完成後可以把手機切回內網,測內網app。(我用的是python語法)

  • 15卡在Setup的解決辦法 如果卡在Setup上,詳細可看https://github.com/facebook/WebDriverAgent/wiki/USB-support 。 可以手動將WDA服務啟動 ,可以執行iproxy 8100 8100設定埠對映。然後再開啟appium程式 啟動引數加上webDriverAgentUrl 值為 "http://localhost:8100" 雖然麻煩,也能解決了。 至今也不能解釋為什麼會卡在SetUp上。appium說是facebook的BUG facebook說是蘋果手機的BUG。然後就沒有然後了據說appium1.6.4已經出了,即使卡在Setup。appium也能跳過去,而不像以前和WDA一起卡在那裡,本來appium也是通過usb線去測的,所以對於appium的話也無所謂。
  • 16 簡單說一下appium-desktop的使用,不得不說UI介面和功能還是可以的。下載地址:https://github.com/appium/appium-desktop/releases/;安裝過程就不說了,執行後,配置host為127.0.0.1,Port為4723,點選start server之後appium就啟動了,想用InSpector查詢元素的話,點選放大鏡,在新開啟的視窗中進行一些配置,如下圖:

配置正確之後,點選start session,等待一會之後就可以檢視元素了,如下圖
  • 17  如果想看app的bundleId。只需要安裝ideviceinstaller就可以了 ideviceinstaller -l 就可以將手機安裝的app列出
sudo brew install ideviceinstaller 如果失敗,先執行:sudo chown -R $USER /usr/local 檢視udid的方法:idevice_id -l

相關推薦

Appium在MAC搭建appium1.7筆記()

自己研究好久ios10的真機測試今天算是成功了。新手發帖,僅供參考。 1,有一個MAC機器,或者虛擬機器,能夠聯網,要求Xcode8+ MAC系統10.11+(我用的是Xcode9 , MAC系統10.12)有一個Apple ID賬號2,安裝brew/usr/bin/ru

Xcode9.0+appium1.6.5環境運行app及遇坑知多少

xc0de9.0 appium1.6.5 真機測試app ios app真機測試 ios app自動化測試 Mac下把appium自動化環境搭建好後,進行真機測試時會碰到相當多的坑, 下面給大家一一列出來並附上解決方法。 一、selenium.common.exceptions.WebDr

Appium 在 MAC 搭建 appium1.6.3 過程

1,有一個MAC機器,或者虛擬機器,能夠聯網,要求Xcode8+ MAC系統10.11+(我用的是Xcode8.2 , MAC系統10.12)有一個Apple ID賬號2,安裝brewusr/bin/ruby -e "$(curl -fsSL https://raw.gi

在VM虛擬機器搭建Hadoop2.7.3+Spark2.1.0完全分散式叢集

1.選取三臺伺服器(CentOS系統64位) 114.55.246.88主節點   114.55.246.77 從節點   114.55.246.93 從節點      之後的操作如果是用普通使用者操作的話也必須知道root使用者的密碼,因為有些操作是得

在Mac mini 搭建Centos 7伺服器

        Mac mini在穩定性和效能上與其他PC相比有很強的優勢,和其價格也要比普通的伺服器低。可以用作小型公司的伺服器。 入職新公司,就買了mac mini做伺服器。昨天早上剛到貨,搞了一天,裝上了centos7, 併成功使用putty登入到了centos7.

IOS自動化測試 在 MAC 搭建 appium1.6.3 過程

1,有一個MAC機器,或者虛擬機器,能夠聯網,要求Xcode8+ MAC系統10.11+(我用的是Xcode8.2 , MAC系統10.12)有一個Apple ID賬號2,安裝brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.

android apk檔案在模擬器執行正常,在中出現解析包錯誤解決辦法集錦

   這幾天遇到了這樣的問題,如果你確定不是apk檔案本身錯誤或是不完整的話,有以下解決辦法可供參考:     1. 用sd卡作為儲存地來安裝,而不用機器內建儲存。     2. 真機android版本比應用程式版本低。     3. 在手機程式選單中點 “設定”進入,

Mac OS 配置Android studio的除錯環境

0:下載並安裝 androidfiletransfer.dmg 檔案,讓你的Mac 1:configure->Project Defaults->Project Structure 2: 複製SDK Location 中的路徑(/Users/a/Libra

在騰訊雲伺服器搭建python2.7+django1.11.1+Mysql

搭建python2.7+django1.11.1+Mysql搭建環境:騰訊雲伺服器linux系統:ubuntu16.04第一步:檢視python版本(ubuntu16.04一般預裝python2.7,所以小編在這裡使用python2.7作為例項)    在命令列輸入 pyth

Xcode5.1.1+ios 7.1.2 免證書調試

pan using 版本號 ons ado 下載 退出 all 替換 Xcode假設不破解。無法真機調試, 也無法編譯真機Release文件。僅僅有付費開通Apple開發人員賬號,才幹申請真機調試。而Xcode進行破解後,結合越獄的iPhone或iPad, 就可以免官

cordova+vue Cordova的環境搭建(android),測試

nod arc jdk1.8 nload 安裝 acl archive 配置環境變量 install 一、安裝node.js   去官網下載node.js(官網地址:https://nodejs.org),按默認路徑安裝。   安裝完後在命令行輸入   $ npm //(測

Redis實戰(二)CentOS 7搭建redis-3.0.2

str 進程 ps 禁用 安裝redis 結果 redis 啟動服務 pro bin 1.安裝redis wget http://download.redis.io/releases/redis-3.0.2.tar.gz tar zxvf redis-3.0.2.tar

【轉2】Appium 1.6.3 在Xcode 8 ()測試環境搭建 經驗總結

原因 ftl 關於 經驗 結束 views 報錯 catch live Appium 1.6.3 在Xcode 8 (真機)測試環境搭建經驗總結 關於 Appium 1.6.3 在Xcode 8, 1真機上環境搭建問題更多,寫此文章,供大家參考,讓大家少走彎路。

安卓第一課:android studio 的環境搭建運行以及遇到的問題

自己的 安卓 structure 最好 not found 創建過程 cor 虛擬 col AS的下載: https://developer.android.com/studio/index.html AS的安裝: android studio, sdk, virtual

appium 1.7.1鏈接測試記錄

appium鏈接真機測試記錄ogon:~ zhouhaijun$ appium[Appium] Welcome to Appium v1.7.1[Appium] Appium REST http interface listener started on 0.0.0.0:4723[HTTP] --> P

Mac 調試cocos2d-x-3.16的test程序

per 編譯 eid -s undle 賬號 rod 打開 none 文章比較長,一個算是新手又不是新手的程序員的解決過程。 一 xcode中打開項目 首先,下載完成cocos2d-x-3.16之後,解壓,然後在根目錄build目錄下雙擊cocos2d_tests.xc

在centos 7搭建web常用軟件和優化

web運維 web代理WEB搭建及優化本文主要是針對web服務的,生產環境會使用的一些軟件,只是簡單陳述,如果有什麽不正確的地方,請指教,謝謝! Web搭建的軟件:httpd,nginx,tomcat代理軟件:squid,varnish數據庫軟件:mariadb,redis,mencache驗證瀏覽方式:el

CentOS 7 搭建nginx 1.6

elinks kcon %d 年月日 日期結尾 bmp 就會 XP c-c 準備要素,編譯環境,創建組,創建被service所管理的腳本,兩種隱藏版本方法,實現主進程用root創建 子進程有nginx 創建,圖片緩存時間 在最新的centos7.3上搭建nginx 1.6

Unity3D之使用Profile查皇冠看體育平臺搭建性能

androi 設置 占用 關閉手機 平臺搭建 pre and 應用程序 unity3 Unity自皇冠體育平臺搭建論壇:haozbbs.com Q1446595067 帶的Profile可以用來對程序性能(內存占用、渲染瓶頸)進行查看、分析,當應用程序發布出來之後,還能通過

在 CentOS 7 搭建 KVM 虛擬化平臺

create 采購 sha 安裝工具 work 文件格式 磁盤 ces 進程調度 KVM 簡介 Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linu