環境:
- Appium version :1.9.1
- Appium-desktop:1.7.1
- Xcode:10.0
- IOS:iPhone5S(10.3.3)
- Android:6.0.1
- Mac:10.13.6
一、需要mac系統里有如下軟件安裝,才可以進行appium環境搭建
1、檢查java是否安裝,系統自帶的就略過如何安裝了
$ java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
未安裝從網上下載java安裝后,配置環境變量 (詳細參照:http://www.micmiu.com/lang/java/set-javahome-on-mac-os-x/)
> vim ~/.bash_profile ...... ...... ...... Swap file "~/.bash_profile.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: E(選擇E編輯) # 按下鍵盤上的“i”鍵,進入編輯狀態。可以看到命令的下方出現了“--INSERT--”字樣,表示成功進入了編輯模式。 export JAVA_HOME=$(/usr/libexec/java_home) # get latest version export PATH=${JAVA_HOME}/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 輸入完成后,按下“Esc”鍵,退出編輯模式。並在此時輸入“:wq”以退出並保存剛剛輸入的內容。
2、檢查homebrew是否安裝
$ brew -v Homebrew >=1.7.1 (shallow or no git repository) Homebrew/homebrew-core (git revision b93d; last commit 2018-10-15) Homebrew/homebrew-cask (git revision 2a21d; last commit 2018-10-15)
未安裝請參考:《【Mac + Python】蘋果系統之安裝Python3.6.x環境》homebrew安裝
3、檢查git是否安裝
$ git --version git version 2.19.0
未安裝git請輸入:
brew install git
4、【可以不安裝】檢查ruby是否安裝,系統自帶忽略安裝
安裝地址參考:《Mac OS X 安裝Ruby》
$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
5、安裝carthage
輸入:
brew install carthage
5、XCode
用來測試IOS APP。
1)在appstore中下載安裝xcode,同時安裝 xcode command line tools
2)在從App Store上下載Xcode后,默認是不會安裝Command Line Tools的,Command Line Tools是在Xcode中的一款工具,可以在命令行中運行C程序。為了配置appium環境,我們需要安裝Xcode Command Line Tools。
參考:《Xcode使用之安裝Xcode Command Line Tools》
<1> 打開終端 輸入xcode-select --install
一路下一步按提示安裝,安裝參考:command line tools 安裝方法
驗證 xcode command line tools 是否安裝成功,可以在此輸入: xcode-select --install 如果安裝了就會提示,已經安裝成功
或者進入Xcode里面,新建項目,再查看是否安裝。
6、Android SDK
測試Android App需要。
參考文章:《Appium移動自動化測試(一)--Mac安裝Appium》
下載地址:http://tools.android-studio.org/index.php/sdk
將下載的 Android SDK 解壓,將得到如下目錄。(具體安裝步驟可以閱讀 SDK Readme.txt)
閱讀 SDK Readme.txt文檔得知:
先cd到android-sdk-macosx文件夾下:
再輸入命令:
tools/android update sdk --no-ui
然后會提示幾個“Do you accept the license 'android-sdk-license-2742d1c5'” 選擇“y”
接着會下載android的SDK,如下:
下載完SDK后,配置環境變量:
> vim ~/.bash_profile ...... ...... ...... Swap file "~/.bash_profile.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: E(選擇E編輯)
# 按下鍵盤上的“i”鍵,進入編輯狀態。可以看到命令的下方出現了“--INSERT--”字樣,表示成功進入了編輯模式。 export ANDROID_HOME=/usr/local/android-sdk-macosx(根據自己的路徑修改) export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools # 輸入完成后,按下“Esc”鍵,退出編輯模式。並在此時輸入“:wq”以退出並保存剛剛輸入的內容。
至此准備條件完畢,接下來安裝appium吧!
二、appium安裝
mac系統安裝appium,有兩種方法,第一種:通過appium.dmg 直接安裝 ,第二種:通過npm安裝(需要VPN)
1、安裝node.js
先檢查node是否安裝
$ node -v v10.7.0
未安裝node則執行:(不推薦)
> brew install node # get node.js 或者直接安裝:Node.js官網下載:https://nodejs.org/zh-cn/download/(直接安裝的node中直接包含了npm,且路徑正確,不存在關聯錯誤的情況)
*安裝node步驟參考如下文章:《Mac 安裝/卸載node和npm的方法》
首先登陸官網查看最新穩定LTS版本:https://nodejs.org/en/
再執行命令:
# nvm 安裝命令: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash # 或者 wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
如果在新的終端輸入 nvm 時提示:command not found: nvm,有可能是以下原因之一:
1) 你的系統可能缺少一個 .bash_profile 文件,你可以創建一個此文件(可通過vi或vim命令),打開復制粘貼以下代碼(安裝nvm成功后終 端的最好3行代碼)進去,保存,然后再次運行安裝命令
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
2) 如果沒有解決問題,打開你的 .bash_profile 文件,並添加以下代碼:source ~/.bashrc
(1)node 安裝
nvm install 10.15.0 #(也可以選擇安裝其他版本)
(2)安裝完成 查看當前版本號:
node -v npm -v # 切換版本 nvm use v+版本號
2、安裝 appium server
參考:《Appium-安裝》
在終端輸入:
npm install -g appium
這個過程可能會比較慢。
由於時間很長我們來看一下課外知識:
==============擴展================
npm是什么東東?npm其實是Node.js的包管理工具(package manager)
因為我們在Node.js上開發時,會用到很多別人寫的JavaScript代碼。如果我們要使用別人寫的某個包,每次都根據名稱搜索一下官方網站,下載代碼,解壓,再使用,非常繁瑣。於是一個集中管理的工具應運而生:大家都把自己開發的模塊打包后放到npm官網上,如果要使用,直接通過npm安裝就可以直接用,不用管代碼存在哪,應該從哪下載。更重要的是,如果我們要使用模塊A,而模塊A又依賴於模塊B,模塊B又依賴於模塊X和模塊Y,npm可以根據依賴關系,把所有依賴的包都下載下來並管理起來。否則,靠我們自己手動管理,肯定既麻煩又容易出錯。
其實npm已經在Node.js安裝的時候順帶裝好了。我們在終端輸入 npm -v 就可以看到npm的版本
$ npm -v 6.2.0
相關自動化知識參考:《【puppeteer+Node.js安裝環境】之步驟》
=================================
但是下載安裝失敗:
解決辦法:《解決APPium國內安裝、升級慢問題》
輸入:
# 安裝: npm --registry http://registry.cnpmjs.org install -g appium
npm install -g appium 此時需要VPN代理來安裝appium server,安裝完成之后輸入appium -v,表示appium server安裝成功
$ appium -v 1.9.1
gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: read ECONNRESET gyp ERR! stack at TLSWrap.onread (net.js:660:25) gyp ERR! System Darwin 17.7.0 gyp ERR! command "/usr/local/Cellar/node/10.7.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/appium/node_modules/heapdump gyp ERR! node -v v10.7.0 gyp ERR! node-gyp -v v3.7.0 gyp ERR! not ok npm WARN optional SKIPPING OPTIONAL DEPENDENCY: heapdump@0.3.9 (node_modules/appium/node_modules/heapdump): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: heapdump@0.3.9 install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 + appium@1.9.1 added 591 packages from 434 contributors in 341.871s ╭───────────────────────────────────────────────────────────────╮ │ │ │ New minor version of npm available! 6.2.0 → 6.4.1 │ │ Changelog: https://github.com/npm/cli/releases/tag/v6.4.1 │ │ Run npm install -g npm to update! │ │ │ ╰───────────────────────────────────────────────────────────────╯
# 卸載appium: npm uninstall -g appium # 重新安裝appium1.6.3: npm install -g appium@1.6.3
3、安裝appium client
appium主站上給出的命令是npm install wd 這應該是老版本的安裝方法:
npm install wd
推薦下面的方法進行安裝:參照:《appium mac 下 安裝及踩坑》
git clone git@github.com:appium/python-client.git cd python-client python setup.py install
或者:
pip install Appium-Python-Client
安裝成功:
Finished processing dependencies for Appium-Python-Client==0.30
4、檢查appium安裝是否成功
appium doctor用來檢查appium的是否成功安裝。手動下載安裝appium doctor的網址在:https://github.com/appium/appium-doctor
也可以在終端執行npm install appium-doctor -g 來安裝 doctor。
npm install appium-doctor -g
安裝完成后,終端輸入appium-doctor 檢測環境是否成功。
appium-doctor
5、啟動appium服務
在終端輸入appium &。輸出下面的信息,則表示appium server啟動成功了。
$ appium & [1] 965$ [Appium] Welcome to Appium v1.9.1 [Appium] Appium REST http interface listener started on 0.0.0.0:4723
6、查看是否運行成功(跟下面桌面程序相關)
瀏覽器打開:
http://0.0.0.0:4723/
顯示:
That URL did not map to a valid JSONWP resource
注:最好再把端口關了,因為下面要用appium桌面程序訪問服務,不然會顯示端口被占用。
# 查看端口使用情況 $ lsof -i tcp:4723 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 1216 xxxxx 13u IPv4 0xe8dfa7a1addb4d97 0t0 TCP *:4723 (LISTEN)
殺死進程:
kill 1216
至此appium 環境搭建完成!!
三、安裝appium桌面程序
需要安裝AppiumDesktop。
下載AppiumDesktop參考下面:
Appium-Server下載地址:https://github.com/appium/appium-desktop/releases(因為我后面做IOS自動化時,用的Xcode是10.0版本,所以下載1.7.1版本的桌面程序,支持appium1.9.1,不然會提示錯誤)
用命令打開程序或者手動打開程序:
# 啟動appium-desktop /Applications/Project/Appium.app/Contents/MacOS/Appium
啟動后進入:
========================================
但是,還有一種用node命令行啟動server,如下
參考:《Appium Mac 下命令行啟動 appium-desktop》
使用命令:node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js
帶參數啟動
在命令行中添加--port、--bootstrap-port、--selendroid-port等appium服務命令行參數:
# 啟動 node /Applications/Project/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js --port 4725 --bootstrap-port 4726 --selendroid-port 8090
========================================
什么是AppiumDesktop?
有人說AppiumDesktop是Appium新版的叫法,也就是在Xcode8之前和之后的叫法。因為Xcode8之前自帶的自動化測試框架叫做uiAutomation,Xcode8之后完全棄用了這一框架,開始使用XCUITest,這導致Appium大修其下層機制,以使用Facebook的WebDriverAgen
,也就是從這個時候在用Appium測試iOS應用的時候必須在iPhone手機上首先安裝一個應用叫:WebDriverAgentRunner。也就是通過這個應用來啟動我們被測應用。
所以AppiumDesktop不是Appium。
AppiumDesktop使用請參考下面:
顧顧314:《AppiumDesktop用法(力求詳盡深入,后期可能會更新)》
四、附錄
參考文章:
victory0943:《Appium for MAC 環境搭建》*
liuchunming033:《Mac上安裝Appium環境》
拾花瓣的人:《Appium移動自動化測試(一)--Mac安裝Appium》*
xm1994:《Appium 在 Android UI 測試中的應用》*