Macaca依賴的功能模塊非常多俊啼,安裝過(guò)程很復(fù)雜,不過(guò)這是目前所有自動(dòng)化測(cè)試框架的通病瘪贱。
Node.js
請(qǐng)安裝Node.jsv6.0或者更高版本颤介,裝好Node.js后命令行里就已經(jīng)集成npm
工具。
默認(rèn)情況下跟匆,npm命令下載的全局模塊會(huì)存放在系統(tǒng)目錄下异袄,這會(huì)導(dǎo)致后續(xù)操作有很多坑,因此玛臂,需要修改默認(rèn)的全局模塊(node_global)的存放路徑以及緩存(global_cache)的路徑烤蜕。
在用戶目錄下新建node_modules
文件夾,在下面建立node_global
及node_cache
兩個(gè)文件夾迹冤,修改默認(rèn)全局路徑:
$ npm config set prefix "/Users/[用戶名]/node_modules/node_global"
$ npm config set cache "/Users/[用戶名]/node_modules/node_cache"
配置Node環(huán)境變量讽营,讓系統(tǒng)識(shí)別npm
下載的全局模塊:
$ vim ~/.bash_profile
[按下i,顯示insert泡徙,進(jìn)入輸入模式橱鹏,輸入如下配置]
NODE_HOME="/Users/[用戶名]/node_modules/node_global"
export PATH="$NODE_HOME/bin:$PATH"
export NODE_HOME
[按esc,輸入:wq!保存]
$ source ~/.bash_profile
$ echo $NODE_HOME
Android 環(huán)境
安裝JDK1.8堪藐,并配置Java環(huán)境變量:
$ /usr/libexec/java_home
[保存得到JAVA_HOME的路徑]
$ vim ~/.bash_profile
[按下i莉兰,顯示insert,進(jìn)入輸入模式礁竞,輸入如下配置]
JAVA_HOME="[JAVA_HOME的路徑]"
CLASS_PATH="$JAVA_HOME/lib"
export PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME
[按esc糖荒,輸入:wq!保存]
$ source ~/.bash_profile
$ echo $JAVA_HOME
安裝18-25版本中的任一SDK和Android Support Repository,并配置Android環(huán)境變量:
$ vim ~/.bash_profile
[按下i模捂,顯示insert捶朵,進(jìn)入輸入模式蜘矢,輸入如下配置]
ANDROID_HOME="[ANDROID_HOME的路徑]"
export PATH="$ANDROID_HOME/tools:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/emulator:$PATH"
export ANDROID_HOME
[按esc,輸入:wq!保存]
$ source ~/.bash_profile
$ echo $ANDROID_HOME
運(yùn)行android測(cè)試用例前要配置Gradle環(huán)境變量:
$ vim ~/.bash_profile
[按下i泉孩,顯示insert硼端,進(jìn)入輸入模式并淋,輸入如下配置]
GRADLE_HOME="[GRADLE_HOME的路徑]"
export PATH="$GRADLE_HOME/bin:$PATH"
export GRADLE_HOME
[按esc寓搬,輸入:wq!保存]
$ source ~/.bash_profile
$ echo $GRADLE_HOME
iOS 環(huán)境
下載Xcode8.3或者更高版本,安裝Homebrew(一款常用的 MacOS 的包管理器)以使用brew
命令县耽。
安裝usbmuxd
以便于通過(guò)USB通道測(cè)試iOS真機(jī):
$ brew install usbmuxd
安裝ideviceinstaller
句喷、ios-deploy
用來(lái)給真機(jī)安裝App:
$ brew install ideviceinstaller
$ brew install ios-deploy
裝ios-webkit-debug-proxy
以便于測(cè)試App中的WebView:
$ brew install ios-webkit-debug-proxy
安裝carthage
來(lái)構(gòu)建Macaca XCTestWD:
$ brew install carthage
Macaca環(huán)境配置
安裝Macaca命令行工具:
$ npm i -g macaca-cli
安裝不同的驅(qū)動(dòng)以適應(yīng)不同平臺(tái)的支持:
$ npm i macaca-ios -g
$ npm i macaca-android -g
$ npm i macaca-electron -g
$ npm i macaca-chromedriver -g
檢查當(dāng)前Macaca的安裝環(huán)境是否配置成功:
$ macaca doctor
Python環(huán)境配置
因?yàn)槭褂胮ython語(yǔ)言開(kāi)發(fā),所以需要先安裝python的開(kāi)發(fā)環(huán)境兔毙。Mac已經(jīng)有了Python 2.x唾琼,所以就不用再安裝了,不過(guò)為了以后方便澎剥,可以再安裝一個(gè)python3:
xcode-select --install
[查看已有的python2.7版本]
$ python --version
[利用homebrew搜索python3]
$ brew search python
$ brew install python3
安裝完成后可以在/usr/local/Cellar/
下看到python3的文件夾锡溯,接下來(lái)就檢查一下剛剛安裝的python3與系統(tǒng)的python路徑:
$ which python
$ which python3
現(xiàn)在只需要下載安裝unittest等一些Macaca所需的模塊即可:
$ sudo pip install [unittest2的whl文件]
$ [輸入密碼]
$ sudo pip install wd
然后,為了方便開(kāi)發(fā)哑姚,可以下載PyCharm社區(qū)版來(lái)開(kāi)發(fā)python項(xiàng)目祭饭。
執(zhí)行官方示例
將官方示例sample-python克隆到本地:
$ git clone https://github.com/macaca-sample/sample-python.git --depth=1
$ pip install -r requirements.txt
先啟動(dòng)服務(wù)器,添加了--verbose
可以看到詳細(xì)的信息叙量,添加-p 3456
可以設(shè)置端口號(hào):
$ macaca server --verbose
分別執(zhí)行不同平臺(tái)的測(cè)試用例:
$ python tests/macaca-desktop-sample.test.py
$ python tests/macaca-ios-sample.test.py
$ python tests/macaca-android-sample.test.py
如果是使用PyCharm執(zhí)行測(cè)試用例倡蝙,一旦導(dǎo)入unittest模塊,PyCharm就會(huì)自動(dòng)識(shí)別以u(píng)nittest的模式去運(yùn)行绞佩。若是想以python直接執(zhí)行的模式運(yùn)行寺鸥,點(diǎn)開(kāi)右上角的“Edit Configurations”,再點(diǎn)左上角的+號(hào)品山,選擇Python胆建,在右方的配置中選擇要執(zhí)行的用例文件即可。
如果在執(zhí)行Android用例時(shí)肘交,在真機(jī)上很順利笆载,但到了模擬器上,到打開(kāi)百度網(wǎng)頁(yè)那里就報(bào)錯(cuò)Error: chromedriver proxy error with: Error: connect ECONNREFUSED酸些。原因是模擬器里的瀏覽器版本和本機(jī)macaca內(nèi)置的chromedriver的對(duì)應(yīng)關(guān)系問(wèn)題宰译,具體查看Android的Webview版本問(wèn)題,換api19--23之間模擬器一般就可以了魄懂。
特別要注意的是沿侈,官方示例無(wú)法在api22以下的Android系統(tǒng)中執(zhí)行。
iOS真機(jī)調(diào)試前需要重簽名XCTestWD.xcodeproj市栗,Xcode項(xiàng)目所在路徑:xxx/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD.xcodeproj
缀拭,雙擊打開(kāi)Xcode項(xiàng)目咳短,重簽名XCTestWD和XCTestWDUITests,并能正常執(zhí)行即可蛛淋。如果是個(gè)人開(kāi)發(fā)者咙好,iOS上要在“設(shè)置>通用>設(shè)備管理”中信任開(kāi)發(fā)者。