平臺(tái)搭建:tidevice(Windows逆向通信iOS工具)+WebDriverAgent(iOS通信服務(wù))+facebook-wda(iOS測(cè)試框架)
macOS+Xcode:在手機(jī)上安裝WebDriverAgent的時(shí)候需要用到,必須要Xcode工具構(gòu)建,構(gòu)建完就不依賴了。
工具介紹:
1、tidevice
? ? ? ? 在window系統(tǒng)可以跑IOS自動(dòng)化腳本,得力于tidevice這個(gè)工具,tidevice 是阿里開源的一個(gè)基于Python的iOS自動(dòng)化工具,通過逆向iOS通信協(xié)議,模擬xcodebuild與手機(jī)進(jìn)行通信,向手機(jī)發(fā)送特定的指令,來啟動(dòng)WDA,從而可以脫離Mac電腦,能夠在Linux、Windows上運(yùn)行iOS自動(dòng)化。tidevice基于python實(shí)現(xiàn)了libimobiledevice中的功能。
2、WebDriverAgent
????????WebDriverAgent是Facebook 在2015年的 SeleniumConf 大會(huì)上推出了一款iOS移動(dòng)測(cè)試框架。它在 iOS 端實(shí)現(xiàn)了一個(gè) WebDriver server ,通過這個(gè) server 來實(shí)現(xiàn)遠(yuǎn)程控制 iOS 設(shè)備。它主要通過連接XCTest.framework來調(diào)用Apple的API實(shí)現(xiàn)對(duì)設(shè)備的操作。
WebDriverAgent采用C/S架構(gòu),集成appium使用的WebDriver協(xié)議規(guī)范,通信協(xié)議使用Mobile JSON Wire Protocol。
WDAClient:WDA的客戶端,測(cè)試庫facebook-wda 就是 WDA 的 Python 客戶端庫,通過HTTP協(xié)議(Mobile JSON Wire Protocol)與WebDriverAgent進(jìn)行通信。
WebDriverAgentRunner:運(yùn)行在手機(jī)上的WDA server,默認(rèn)監(jiān)聽端口為8100,主要功能包括①接收WDAClient的請(qǐng)求并將操作命令發(fā)送給XCTest.framework。②將響應(yīng)發(fā)送給WDA Client
3、facebook-wda
? ??????facebook-wda 是ATX項(xiàng)目下面的一個(gè)子庫,專門提供 iOS 應(yīng)用的自動(dòng)化測(cè)試,可以通過 ATX 使用這個(gè)庫,當(dāng)然也可以單獨(dú)拿來使用。facebook-wda 這個(gè) Python 庫,通過直接構(gòu)造 HTTP 請(qǐng)求直接跟WebDriverAgent通信。它是一個(gè)非常短小精悍的一個(gè)庫,并不像 appium、macaca 還有一個(gè)中間轉(zhuǎn)發(fā)服務(wù),支持這么多的語言。雖然代碼比較精煉,但是能完成的功能卻非常強(qiáng)大。你能在 appium 里面找到的功能,這個(gè)庫有提供,找不到的功能,這個(gè)庫也有提供。
4、weditor
????????元素定位工具,安卓、IOS都可以用
5、iTunes
????????Windows連接蘋果設(shè)備工具
工具下載和安裝:
?iTunes:
因?yàn)閕Tunes里面有usbmux驅(qū)動(dòng),需要安裝一下它,iTunes安裝成功后,連接上你的iPhone。
- 下載 Windows 10(64 位)版 iTunes 12.10.11
- 下載 Windows 10(32 位)版 iTunes 12.10.11
weditor:
參考Android安裝環(huán)境方法, 使用以下命令安裝weditor
pip3 install -U weditor
啟動(dòng)weditor
python -m weditor
tidevice:
該工具要求python環(huán)境3.6+,使用pip3命令來安裝tidevice,安裝成功后設(shè)置全局環(huán)境變量:
pip3 install -U "tidevice"
查看是否安裝成功:
tidevice version
?查看手機(jī)信息:
tidevice info
查詢應(yīng)用信息:
tidevice applist
啟動(dòng)wda
tidevice -u [設(shè)備 udid] wdaproxy -B [wda 的 bundle Id] --port 8100 # 運(yùn)行 XCTest 并在PC上監(jiān)聽8100端口
運(yùn)行成功后打開瀏覽器訪問: http://127.0.0.1:8100/status,會(huì)看到以下信息:
{
"value" : {
"message" : "WebDriverAgent is ready to accept commands",
"state" : "success",
"os" : {
"testmanagerdVersion" : 28,
"name" : "iOS",
"sdkVersion" : "16.4",
"version" : "16.3.1"
},
"ios" : {
"ip" : "192.168.0.117"
},
"ready" : true,
"build" : {
"time" : "Jun 6 2023 11:05:04",
"productBundleIdentifier" : "com.facebook.WebDriverAgentRunner"
}
},
"sessionId" : null
}
WebDriverAgent:
這篇文章寫得很詳細(xì)了,不再浪費(fèi)時(shí)間了:[facebook-wda]搭建iOS App自動(dòng)化環(huán)境_wda.client_LL-Dynabook的博客-CSDN博客
facebook-wda:
pip3 install -U facebook-wda
簡(jiǎn)單測(cè)試:
import wda
c = wda.Client('http://localhost:8100') # DEVICE_URL
c.session().app_activate("com.apple.Preferences") # 打開設(shè)置
c.sleep(2)
c.home()
具體詳細(xì)方法可以看官方文檔:GitHub - openatx/facebook-wda: Facebook WebDriverAgent Python Client Library (not official)
以上環(huán)境搭建完成了,可以去寫ios app自動(dòng)化腳本了。
備注:
- ? ? 部署iOS測(cè)試平臺(tái)需要蘋果開發(fā)者證書,現(xiàn)在使用個(gè)人Apple ID登陸即可,不需要另外注冊(cè)付費(fèi)開發(fā)者賬號(hào)
- ? ? 個(gè)人版的免費(fèi)證書,每隔7天左右,要手動(dòng)更新開發(fā)者證書;
- ? ? 需要手動(dòng)的在iPhone中選擇信任證書,通用->設(shè)備管理->選擇信任;
- ? ? 最多支持3臺(tái)設(shè)備;
建議:使用公司的企業(yè)賬號(hào)或個(gè)人收費(fèi)賬號(hào)測(cè)試(企業(yè)賬號(hào)可以綁定100臺(tái)也不需要更新證書),不然很頭疼文章來源:http://www.zghlxwxcb.cn/news/detail-691617.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-691617.html
到了這里,關(guān)于Window搭建IOS App自動(dòng)化測(cè)試環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!