????????Macaca App Inspector,阿里開源的Macaca框架中的一個小工具。App Inspector 是運行在瀏覽器端的移動設(shè)備 UI 查看器轰驳,使用樹狀態(tài)結(jié)構(gòu)查看 UI 布局郭怪,并且能自動生成 XPath胖烛,方便腳本的編寫和生成临扮。
優(yōu)點:1.比較穩(wěn)定毡咏,響應(yīng)速度較快 2.可以給出最簡化的xpath信息以及元素xpath的絕對路徑3.可以支持IOS和Android
缺點:依賴環(huán)境較多陋率,安裝較耗時球化。
1. 安裝node(v9以上才行)、npm------較新版本的node安裝后翘贮,會附帶npm工具赊窥。?
????????$ brew install node
????????$ node -v 、npm -v
2. 安裝 n 工具
????????這個工具是專門用來管理node.js版本的狸页,別懷疑這個工具的名字锨能,是他是他就是他扯再,他的名字就是 "n"
????????$?sudo npm install -g n
3.Macaca命令行工具
????????$?cnpm i -g macaca-cli
????????如果看到如下可愛的??,那恭喜你安裝成功啦址遇!重新安裝則會覆蓋更新熄阻。
4.IOS環(huán)境
a. 請安裝 Xcode9 或者更高版本
b. 請安裝 usbmuxd 以便于通過 USB 通道測試 iOS 真機,不需要測試真機則不用安裝
????????$?brew install usbmuxd
c. 請安裝 ideviceinstaller 用來給真機安裝 App倔约。
????????$?brew install ideviceinstaller
d. 應(yīng)用中如含有 WebView秃殉,請安裝 ios-webkit-debug-proxy
????????$?brew install ios-webkit-debug-proxy
e. 安裝IOS驅(qū)動
????????$?cnpm i macaca-ios -g
備注:使用brew命令需要安裝Homebrew(一款常用的 MacOS 的包管理器)
5.IOS真機環(huán)境
a. 打開XCTestWD并配置證書
// 方法:打開finder,然后按快捷鍵commend+shift+G 輸入/usr/local/lib/node_modules/macaca-ios/node_modules/_xctestwd@1.4.22@xctestwd/XCTestWD/XCTestWD.xcodeproj浸剩,前往钾军,用xcode打開XCTestWD.xcodeproj文件
// 版本不同路徑就會有所區(qū)別,如果找不到绢要,在訪達里搜索XCTestWD.xcodeproj即可找到吏恭;
重新自定義Bundle ID以及Team ID,每個文件都需要更改Bundle ID(加個后綴即可)以及Team ID(免費的個人賬號及收費的開發(fā)者賬號都可以),如下圖所示圈住的內(nèi)容都要改下:
重新編譯XCTestWDUITests
b. 將 TEAM_ID 通過環(huán)境變量傳入覆蓋安裝iOS驅(qū)動
????????$?DEVELOPMENT_TEAM_ID=LZMQ4YGMKZ?cnpm i macaca-ios -g
? ? ? ? // 注意此處的TEAM_ID要填寫Xcode的TEAM_ID代碼
? ????? // TEAM_ID查詢方法如下圖,點擊other重罪,copy紅框內(nèi)代碼即可:
c. 將 TEAM_ID 通過環(huán)境變量傳入覆蓋安裝App Inspector(注意修改TEAM_ID? S:摺!剿配!)
????????$?DEVELOPMENT_TEAM_ID=LZMQ4YGMKZ cnpm install app-inspector -g
6.安裝Android環(huán)境
a. 安裝JDK以及SDK
????????http://www.reibang.com/p/ded56c627c2f
????????http://www.reibang.com/p/fca1efddb595
b. 安裝gradle
? ? 用來構(gòu)建UIAutomatorWD和其它依賴包搅幅。
????????$?brew install gradle
c. 安裝Android驅(qū)動
????????$?cnpm i macaca-android? -g
7.檢查Macaca安裝環(huán)境
????????$?source .bash_profile ??
? ? ? ? ? ? // 如果不限執(zhí)行環(huán)境變量配置文件生效,則檢查時會提示jdk和sdk未配置 ?(點擊查看問題解決)
? ? ? ? ? ? // bash_profile在個人賬號下即默認打開的終端位置下執(zhí)行
????????$?macaca doctor
? ? ? ? ? ? // ??遇到問題1: ?如果已經(jīng)安裝了jdk和sdk且配置了環(huán)境變量但是提示沒有呼胚,則執(zhí)行下$?source .bash_profile茄唐。
? ? ? ? ? ? //??遇到問題2: ?如果macaca doctor提示 Not accepted Android SDK license agreements,如下圖所示:
? ? ? ? ? ? -----解決:在android-sdk目錄下在新建一個licenses文件夾砸讳,并創(chuàng)建一個文件為android-sdk-license的文件名琢融,內(nèi)容為8933bad161af4178b1185d1a37fbf41ea5269c55 ------實踐可行。
? ? ? ? ? ? ? ? ? ? ? ??cd /Users/Cathleen/Library/Android/sdk/android-sdk-macosx
? ? ? ? ? ? ? ? ? ? ? ? mkdir?licenses
? ? ? ? ? ? ? ? ? ? ? ? cd licenses
? ??????????????????????touch?android-sdk-license
? ??????????????????????open android-sdk-license
然后再次執(zhí)行檢查如果是一片綠簿寂,那么恭喜你環(huán)境OK了。
8.命令行啟動App Inspector
????????$?app-inspector -u? UDID? --verbose
? ? ? ? //eg:app-inspector -u? 103fc866d685f37dae974ca9cffa7262451d6383? --verbose
? ? ? ? // UDID如何查詢:http://www.reibang.com/p/0dcc141662af宿亡。
? ? ? ? // 獲取ios simulator模擬器的udid ----$ xcrun simctl list
9.瀏覽器訪問App Inspector
瀏覽器打開地址上圖中的server地址即可(推薦用 Chrome 瀏覽器)常遂。?
eg:http://192.168.11.91:5678/ ?,ip一般不變挽荠,端口貌似是每次都變克胳。
如果出現(xiàn)下圖所以,則說明成功啦
10圈匆、遇到問題
??App Inspector訪問時提示W(wǎng)aiting Device start...漠另,且此時終端返回200并沒有報錯哎
? ? ----原因分析:終端中報錯(?process.env.MACACA_XCTESTWD_ROOT_PATH
undefined) ?、版本兼容性問題跃赚、
? ? ?----解決:
Cathleen@bogon ~ % app-inspector -u? 103fc866d685f37dae974ca9cffa7262451d6383? --verbose
>> port: 5678 was occupied, changed port: 5680
>> server.js:16:12 [master] pid:54558 server start with config:
?{
? port: 5680,
? verbose: true,
? udid: '103fc866d685f37dae974ca9cffa7262451d6383',
? ip: '192.168.11.91',
? host: 'bogon',
? loaded_time: '2020-01-03 21:10:36'
}
>> app-inspector.js:45:12 [master] pid:54558 server start at: http://192.168.11.91:5680
process.env.MACACA_XCTESTWD_ROOT_PATH
undefined
>> xctest-client.js:56:14 [master] pid:54558 project path: /usr/local/lib/node_modules/app-inspector/node_modules/_xctestwd@1.4.22@xctestwd/XCTestWD/XCTestWD.xcodeproj
>> xctest-client.js:283:14 [master] pid:54558 xcode version: 11.3
>> XCTestWD version: 1.4.22
>> xctest-client.js:230:20 [master] pid:54558 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/_xctestwd@1.4.22@xctestwd/XCTestWD/XCTestWD.xcodeproj
>> xctest-client.js:230:20 [master] pid:54558 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/_xctestwd@1.4.22@xctestwd/XCTestWD/XCTestWD.xcodeproj
>> xctest-client.js:230:20 [master] pid:54558 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/_xctestwd@1.4.22@xctestwd/XCTestWD/XCTestWD.xcodeproj
>> xctest-client.js:322:14 [master] pid:54558 killing runnerProc pid: 54561
>> xctest-client.js:242:16 [master] pid:54558 xctest client exit with code: 65, signal: null
? <--GET/
? -->GET/ 200
? <--GET/
? -->GET/ 200
? <--GET/